From f40284f82f3b328d616a08a4f335fb97f76a7efe Mon Sep 17 00:00:00 2001 From: Mike Morency Date: Wed, 14 Aug 2024 16:44:55 -0400 Subject: [PATCH 1/4] release 4.0.0 --- .ansible-lint | 3 +- .github/workflows/docs-pr.yml | 4 + .github/workflows/sanity-tests.yaml | 17 +- .gitignore | 1 + .yamllint | 1 + config/MANIFEST.yml | 16 + config/api_specifications/8.0.2/api.json | 13 + .../api_specifications/8.0.2/appliance.json | 23794 +++++ config/api_specifications/8.0.2/cis.json | 5999 ++ config/api_specifications/8.0.2/content.json | 11306 +++ config/api_specifications/8.0.2/esx.json | 20032 ++++ config/api_specifications/8.0.2/hvc.json | 867 + config/api_specifications/8.0.2/session.json | 334 + config/api_specifications/8.0.2/stats.json | 2172 + config/api_specifications/8.0.2/vapi.json | 6505 ++ config/api_specifications/8.0.2/vcenter.json | 80473 ++++++++++++++++ config/copy_old_return_blocks.py | 63 + config/generate.yml | 35 + config/modules.yaml | 22 +- config/requirements.txt | 9 + development.md | 96 +- docs/docsite/rst/dev_guide.rst | 28 +- galaxy.yml | 2 +- meta/runtime.yml | 266 +- .../modules/appliance_access_consolecli.py | 15 +- .../appliance_access_consolecli_info.py | 12 +- plugins/modules/appliance_access_dcui.py | 15 +- plugins/modules/appliance_access_dcui_info.py | 12 +- plugins/modules/appliance_access_shell.py | 15 +- .../modules/appliance_access_shell_info.py | 12 +- plugins/modules/appliance_access_ssh.py | 15 +- plugins/modules/appliance_access_ssh_info.py | 12 +- .../modules/appliance_health_applmgmt_info.py | 12 +- .../modules/appliance_health_database_info.py | 12 +- .../appliance_health_databasestorage_info.py | 12 +- plugins/modules/appliance_health_load_info.py | 12 +- plugins/modules/appliance_health_mem_info.py | 12 +- .../appliance_health_softwarepackages_info.py | 12 +- .../modules/appliance_health_storage_info.py | 12 +- plugins/modules/appliance_health_swap_info.py | 12 +- .../modules/appliance_health_system_info.py | 12 +- .../modules/appliance_infraprofile_configs.py | 13 +- .../appliance_infraprofile_configs_info.py | 12 +- .../appliance_localaccounts_globalpolicy.py | 13 +- ...pliance_localaccounts_globalpolicy_info.py | 12 +- .../modules/appliance_localaccounts_info.py | 12 +- plugins/modules/appliance_monitoring_info.py | 12 +- plugins/modules/appliance_monitoring_query.py | 13 +- plugins/modules/appliance_networking.py | 13 +- .../appliance_networking_dns_domains.py | 15 +- .../appliance_networking_dns_domains_info.py | 12 +- .../appliance_networking_dns_hostname.py | 13 +- .../appliance_networking_dns_hostname_info.py | 12 +- .../appliance_networking_dns_servers.py | 15 +- .../appliance_networking_dns_servers_info.py | 12 +- .../appliance_networking_firewall_inbound.py | 17 +- ...liance_networking_firewall_inbound_info.py | 12 +- plugins/modules/appliance_networking_info.py | 12 +- .../appliance_networking_interfaces_info.py | 12 +- .../appliance_networking_interfaces_ipv4.py | 13 +- ...pliance_networking_interfaces_ipv4_info.py | 12 +- .../appliance_networking_interfaces_ipv6.py | 13 +- ...pliance_networking_interfaces_ipv6_info.py | 12 +- .../modules/appliance_networking_noproxy.py | 13 +- .../appliance_networking_noproxy_info.py | 12 +- plugins/modules/appliance_networking_proxy.py | 13 +- .../appliance_networking_proxy_info.py | 12 +- plugins/modules/appliance_ntp.py | 15 +- plugins/modules/appliance_ntp_info.py | 12 +- plugins/modules/appliance_services.py | 15 +- plugins/modules/appliance_services_info.py | 12 +- plugins/modules/appliance_shutdown.py | 15 +- plugins/modules/appliance_shutdown_info.py | 12 +- .../modules/appliance_system_globalfips.py | 13 +- .../appliance_system_globalfips_info.py | 12 +- plugins/modules/appliance_system_storage.py | 15 +- .../modules/appliance_system_storage_info.py | 12 +- plugins/modules/appliance_system_time_info.py | 12 +- .../modules/appliance_system_time_timezone.py | 15 +- .../appliance_system_time_timezone_info.py | 12 +- .../modules/appliance_system_version_info.py | 12 +- plugins/modules/appliance_timesync.py | 15 +- plugins/modules/appliance_timesync_info.py | 12 +- plugins/modules/appliance_update_info.py | 12 +- plugins/modules/appliance_vmon_service.py | 17 +- .../modules/appliance_vmon_service_info.py | 12 +- plugins/modules/content_configuration.py | 53 +- plugins/modules/content_configuration_info.py | 12 +- plugins/modules/content_library_info.py | 232 + plugins/modules/content_library_item_info.py | 29 +- .../content_library_subscriptions_info.py | 251 + plugins/modules/content_locallibrary.py | 479 +- plugins/modules/content_locallibrary_info.py | 16 +- plugins/modules/content_subscribedlibrary.py | 484 +- .../modules/content_subscribedlibrary_info.py | 16 +- plugins/modules/vcenter_cluster_info.py | 12 +- plugins/modules/vcenter_datacenter.py | 14 +- plugins/modules/vcenter_datacenter_info.py | 12 +- plugins/modules/vcenter_datastore_info.py | 12 +- plugins/modules/vcenter_folder_info.py | 12 +- plugins/modules/vcenter_host.py | 14 +- plugins/modules/vcenter_host_info.py | 12 +- plugins/modules/vcenter_network_info.py | 12 +- plugins/modules/vcenter_ovf_libraryitem.py | 181 +- plugins/modules/vcenter_resourcepool.py | 26 +- plugins/modules/vcenter_resourcepool_info.py | 12 +- .../modules/vcenter_storage_policies_info.py | 14 +- plugins/modules/vcenter_vm.py | 101 +- .../modules/vcenter_vm_guest_customization.py | 23 +- ...vcenter_vm_guest_filesystem_directories.py | 14 +- .../modules/vcenter_vm_guest_identity_info.py | 12 +- .../vcenter_vm_guest_localfilesystem_info.py | 12 +- .../vcenter_vm_guest_networking_info.py | 12 +- ...ter_vm_guest_networking_interfaces_info.py | 12 +- ...vcenter_vm_guest_networking_routes_info.py | 12 +- .../vcenter_vm_guest_operations_info.py | 12 +- plugins/modules/vcenter_vm_guest_power.py | 15 +- .../modules/vcenter_vm_guest_power_info.py | 12 +- plugins/modules/vcenter_vm_hardware.py | 23 +- .../vcenter_vm_hardware_adapter_sata.py | 14 +- .../vcenter_vm_hardware_adapter_sata_info.py | 12 +- .../vcenter_vm_hardware_adapter_scsi.py | 24 +- .../vcenter_vm_hardware_adapter_scsi_info.py | 12 +- plugins/modules/vcenter_vm_hardware_boot.py | 13 +- .../vcenter_vm_hardware_boot_device.py | 13 +- .../vcenter_vm_hardware_boot_device_info.py | 12 +- .../modules/vcenter_vm_hardware_boot_info.py | 12 +- plugins/modules/vcenter_vm_hardware_cdrom.py | 32 +- .../modules/vcenter_vm_hardware_cdrom_info.py | 12 +- plugins/modules/vcenter_vm_hardware_cpu.py | 13 +- .../modules/vcenter_vm_hardware_cpu_info.py | 12 +- plugins/modules/vcenter_vm_hardware_disk.py | 26 +- .../modules/vcenter_vm_hardware_disk_info.py | 12 +- .../modules/vcenter_vm_hardware_ethernet.py | 30 +- .../vcenter_vm_hardware_ethernet_info.py | 12 +- plugins/modules/vcenter_vm_hardware_floppy.py | 26 +- .../vcenter_vm_hardware_floppy_info.py | 12 +- plugins/modules/vcenter_vm_hardware_info.py | 12 +- plugins/modules/vcenter_vm_hardware_memory.py | 13 +- .../vcenter_vm_hardware_memory_info.py | 12 +- .../modules/vcenter_vm_hardware_parallel.py | 26 +- .../vcenter_vm_hardware_parallel_info.py | 12 +- plugins/modules/vcenter_vm_hardware_serial.py | 26 +- .../vcenter_vm_hardware_serial_info.py | 12 +- plugins/modules/vcenter_vm_info.py | 12 +- .../modules/vcenter_vm_libraryitem_info.py | 12 +- plugins/modules/vcenter_vm_power.py | 19 +- plugins/modules/vcenter_vm_power_info.py | 12 +- plugins/modules/vcenter_vm_storage_policy.py | 15 +- .../vcenter_vm_storage_policy_compliance.py | 13 +- ...enter_vm_storage_policy_compliance_info.py | 12 +- .../modules/vcenter_vm_storage_policy_info.py | 12 +- plugins/modules/vcenter_vm_tools.py | 21 +- plugins/modules/vcenter_vm_tools_info.py | 12 +- plugins/modules/vcenter_vm_tools_installer.py | 13 +- .../vcenter_vm_tools_installer_info.py | 12 +- .../vcenter_vmtemplate_libraryitems.py | 226 +- .../vcenter_vmtemplate_libraryitems_info.py | 17 +- tests/sanity/ignore-2.16.txt | 132 - tests/sanity/ignore-2.17.txt | 132 - 160 files changed, 154604 insertions(+), 1503 deletions(-) create mode 100644 config/MANIFEST.yml create mode 100644 config/api_specifications/8.0.2/api.json create mode 100644 config/api_specifications/8.0.2/appliance.json create mode 100644 config/api_specifications/8.0.2/cis.json create mode 100644 config/api_specifications/8.0.2/content.json create mode 100644 config/api_specifications/8.0.2/esx.json create mode 100644 config/api_specifications/8.0.2/hvc.json create mode 100644 config/api_specifications/8.0.2/session.json create mode 100644 config/api_specifications/8.0.2/stats.json create mode 100644 config/api_specifications/8.0.2/vapi.json create mode 100644 config/api_specifications/8.0.2/vcenter.json create mode 100755 config/copy_old_return_blocks.py create mode 100644 config/generate.yml create mode 100644 config/requirements.txt create mode 100644 plugins/modules/content_library_info.py create mode 100644 plugins/modules/content_library_subscriptions_info.py diff --git a/.ansible-lint b/.ansible-lint index 18ea7838c..f385629c6 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -6,6 +6,7 @@ exclude_paths: - tests/integration - tests/sanity - modules.yaml + - config skip_list: - - yaml[indentation] + - yaml[indentation] diff --git a/.github/workflows/docs-pr.yml b/.github/workflows/docs-pr.yml index 65c4d69eb..930364533 100644 --- a/.github/workflows/docs-pr.yml +++ b/.github/workflows/docs-pr.yml @@ -23,6 +23,8 @@ jobs: artifact-name: ${{ github.event.repository.name }}_docs_${{ github.event.pull_request.head.sha }}_validate intersphinx-links: | ansible_devel:https://docs.ansible.com/ansible-core/devel/ + provide-link-targets: | + ansible_collections.vmware.vmware.vcsa_settings_module build-docs: permissions: @@ -35,6 +37,8 @@ jobs: init-fail-on-error: false intersphinx-links: | ansible_devel:https://docs.ansible.com/ansible-core/devel/ + provide-link-targets: | + ansible_collections.vmware.vmware.vcsa_settings_module # This job requires that the workflow trigger is pull_request_target. However that trigger uses # whatever version of the workflow is available on main instead of the feature branch. diff --git a/.github/workflows/sanity-tests.yaml b/.github/workflows/sanity-tests.yaml index 17c480d6c..a3cf9a6ac 100644 --- a/.github/workflows/sanity-tests.yaml +++ b/.github/workflows/sanity-tests.yaml @@ -44,7 +44,7 @@ on: # testing against latest version of ansible-test for each ansible-core # version schedule: - - cron: '23 4 * * *' + - cron: "23 4 * * *" concurrency: group: >- @@ -54,11 +54,10 @@ concurrency: cancel-in-progress: true jobs: - -### -# Sanity tests (REQUIRED) -# -# https://docs.ansible.com/ansible/latest/dev_guide/testing_sanity.html + ### + # Sanity tests (REQUIRED) + # + # https://docs.ansible.com/ansible/latest/dev_guide/testing_sanity.html sanity: name: Sanity (Ⓐ${{ matrix.ansible }}) @@ -113,9 +112,9 @@ jobs: # https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection pull-request-change-detection: false - check: # This job does nothing and is only used for the branch protection - # or multi-stage CI jobs, like making sure that all tests pass before - # a publishing job is started. + check: # This job does nothing and is only used for the branch protection + # or multi-stage CI jobs, like making sure that all tests pass before + # a publishing job is started. if: always() needs: diff --git a/.gitignore b/.gitignore index 077e53e45..893c0680e 100644 --- a/.gitignore +++ b/.gitignore @@ -389,5 +389,6 @@ $RECYCLE.BIN/ changelogs/.plugin-cache.yaml manual/source/vmware_rest_scenarios/task_outputs commit_message +config/output tests/integration/inventory.networking manual/build diff --git a/.yamllint b/.yamllint index 0d1e0f8ed..4f9836873 100644 --- a/.yamllint +++ b/.yamllint @@ -15,3 +15,4 @@ rules: ignore: - .github/ - changelogs/fragments/ + - config diff --git a/config/MANIFEST.yml b/config/MANIFEST.yml new file mode 100644 index 000000000..9d4991c3e --- /dev/null +++ b/config/MANIFEST.yml @@ -0,0 +1,16 @@ +collection: + path: "{{ playbook_dir }}/output" + namespace: vmware + name: vmware_rest + requires_ansible: "2.15.0" +plugins: + - type: module_openapi + name: "vmware_rest" + content: cloud + api_object_path: "{{ playbook_dir }}/api_specifications/8.0.2" + resource: "{{ playbook_dir }}" + action: generate_all + unique_key: "" + rm_swagger_json: "" + module_version: "1.0.0" + author: "Ansible Cloud Team" diff --git a/config/api_specifications/8.0.2/api.json b/config/api_specifications/8.0.2/api.json new file mode 100644 index 000000000..67faccbf7 --- /dev/null +++ b/config/api_specifications/8.0.2/api.json @@ -0,0 +1,13 @@ +{ + "files": [ + "content", + "vapi", + "session", + "vcenter", + "stats", + "esx", + "appliance", + "cis", + "hvc" + ] +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/appliance.json b/config/api_specifications/8.0.2/appliance.json new file mode 100644 index 000000000..ae6b3d69f --- /dev/null +++ b/config/api_specifications/8.0.2/appliance.json @@ -0,0 +1,23794 @@ +{ + "swagger": "2.0", + "info": { + "description": "The vCenter Server Appliance is a preconfigured Linux-based virtual machine optimized for running vCenter Server and associated services.", + "title": "appliance", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/appliance/access/consolecli": { + "put": { + "tags": [ + "access/consolecli" + ], + "summary": "Set enabled state of the console-based controlled CLI (TTY1).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceAccessConsolecliSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "access/consolecli" + ], + "summary": "Get enabled state of the console-based controlled CLI (TTY1).", + "parameters": [], + "responses": { + "200": { + "description": "Console-based controlled CLI is enabled.", + "schema": { + "type": "boolean" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/access/dcui": { + "put": { + "tags": [ + "access/dcui" + ], + "summary": "Set enabled state of Direct Console User Interface (DCUI TTY2).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceAccessDcuiSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "access/dcui" + ], + "summary": "Get enabled state of Direct Console User Interface (DCUI TTY2).", + "parameters": [], + "responses": { + "200": { + "description": "DCUI is enabled.", + "schema": { + "type": "boolean" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/access/shell": { + "put": { + "tags": [ + "access/shell" + ], + "summary": "Set enabled state of BASH, that is, access to BASH from within the controlled CLI.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceAccessShellSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "access/shell" + ], + "summary": "Get enabled state of BASH, that is, access to BASH from within the controlled CLI.", + "parameters": [], + "responses": { + "200": { + "description": "Current shell configuration.", + "schema": { + "$ref": "#/definitions/ApplianceAccessShellShellConfig" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/access/ssh": { + "put": { + "tags": [ + "access/ssh" + ], + "summary": "Set enabled state of the SSH-based controlled CLI.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceAccessSshSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "access/ssh" + ], + "summary": "Get enabled state of the SSH-based controlled CLI.", + "parameters": [], + "responses": { + "200": { + "description": "SSH-based controlled CLI is enabled.", + "schema": { + "type": "boolean" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/health/applmgmt": { + "get": { + "tags": [ + "health/applmgmt" + ], + "summary": "Get health status of applmgmt services.", + "parameters": [], + "responses": { + "200": { + "description": "health status", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/database": { + "get": { + "tags": [ + "health/database" + ], + "summary": "Returns the health status of the database.", + "parameters": [], + "responses": { + "200": { + "description": "Health status of the database", + "schema": { + "$ref": "#/definitions/ApplianceHealthDatabaseInfo" + } + }, + "500": { + "description": "if issue in retrieving health of the database", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/database-storage": { + "get": { + "tags": [ + "health/databasestorage" + ], + "summary": "Get database storage health.", + "parameters": [], + "responses": { + "200": { + "description": "Database storage health", + "schema": { + "$ref": "#/definitions/ApplianceHealthDatabasestorageHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/load": { + "get": { + "tags": [ + "health/load" + ], + "summary": "Get load health.", + "parameters": [], + "responses": { + "200": { + "description": "Load health.", + "schema": { + "$ref": "#/definitions/ApplianceHealthLoadHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/mem": { + "get": { + "tags": [ + "health/mem" + ], + "summary": "Get memory health.", + "parameters": [], + "responses": { + "200": { + "description": "Memory health.", + "schema": { + "$ref": "#/definitions/ApplianceHealthMemHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/settings": { + "get": { + "tags": [ + "health_check_settings" + ], + "summary": "Get health settings for vCenter Server.", + "parameters": [], + "responses": { + "200": { + "description": "health settings.", + "schema": { + "$ref": "#/definitions/ApplianceHealthCheckSettingsSettingSpec" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "health_check_settings" + ], + "summary": "Set health settings based on provided healthSpec", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceHealthCheckSettingsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/health/software-packages": { + "get": { + "tags": [ + "health/softwarepackages" + ], + "summary": "Get information on available software updates available in the remote vSphere Update Manager repository. Red indicates that security updates are available. Orange indicates that non-security updates are available. Green indicates that there are no updates available. Gray indicates that there was an error retreiving information on software updates.", + "parameters": [], + "responses": { + "200": { + "description": "software updates available.", + "schema": { + "$ref": "#/definitions/ApplianceHealthSoftwarepackagesHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/storage": { + "get": { + "tags": [ + "health/storage" + ], + "summary": "Get storage health.", + "parameters": [], + "responses": { + "200": { + "description": "Storage health.", + "schema": { + "$ref": "#/definitions/ApplianceHealthStorageHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/swap": { + "get": { + "tags": [ + "health/swap" + ], + "summary": "Get swap health.", + "parameters": [], + "responses": { + "200": { + "description": "Swap health", + "schema": { + "$ref": "#/definitions/ApplianceHealthSwapHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/system": { + "get": { + "tags": [ + "health/system" + ], + "summary": "Get overall health of system.", + "parameters": [], + "responses": { + "200": { + "description": "System health", + "schema": { + "$ref": "#/definitions/ApplianceHealthSystemHealthLevel" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + } + }, + "/api/appliance/health/system/lastcheck": { + "get": { + "tags": [ + "health/system" + ], + "summary": "Get last check timestamp of the health of the system.", + "parameters": [], + "responses": { + "200": { + "description": "System health last check timestamp", + "schema": { + "type": "string", + "format": "date-time" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "lastcheck" + } + }, + "/api/appliance/health/{item}/messages": { + "get": { + "tags": [ + "health" + ], + "summary": "Get health messages.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "item", + "description": "ID of the data item\nThe parameter must be an identifier for the resource type: appliance.health." + } + ], + "responses": { + "200": { + "description": "List of the health messages", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNotification" + } + } + }, + "404": { + "description": "Unknown health item", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "messages" + } + }, + "/api/appliance/infraprofile/configs": { + "get": { + "tags": [ + "infraprofile/configs" + ], + "summary": "List all the profiles which are registered.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of profiles with description are registered.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsProfileInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/infraprofile/configs?action=export": { + "post": { + "tags": [ + "infraprofile/configs" + ], + "summary": "Exports the desired profile specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsExport" + } + } + ], + "responses": { + "200": { + "description": "Configuration specification JSON in string format.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no profile associated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/infraprofile/configs?action=import&vmw-task=true": { + "post": { + "tags": [ + "infraprofile/configs" + ], + "summary": "Imports the desired profile specification.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsImportProfileTask" + } + } + ], + "responses": { + "202": { + "description": "Import version.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no profile associated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "400": { + "description": "If there is another operation in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_profile$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/infraprofile/configs?action=validate&vmw-task=true": { + "post": { + "tags": [ + "infraprofile/configs" + ], + "summary": "Validates the desired profile specification.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsValidateTask" + } + } + ], + "responses": { + "202": { + "description": "Result of validation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no profile associated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "validate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/local-accounts": { + "post": { + "tags": [ + "local_accounts" + ], + "summary": "Create a new local user account.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "If a username is invalid (username is validated against [a-zA-Z0-9][a-zA-Z0-9\\-\\.@]*[a-zA-Z0-9] pattern)", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "local_accounts" + ], + "summary": "Get a list of the local user accounts.", + "parameters": [], + "responses": { + "200": { + "description": "List of identifiers\nThe result will contain identifiers for the resource type: appliance.local_accounts.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/local-accounts/global-policy": { + "put": { + "tags": [ + "local_accounts/policy" + ], + "summary": "Set the global password policy.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsPolicySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if passed policy values are < -1 or > 99999", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "local_accounts/policy" + ], + "summary": "Get the global password policy.", + "parameters": [], + "responses": { + "200": { + "description": "Global password policy", + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsPolicyInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/local-accounts/{username}": { + "put": { + "tags": [ + "local_accounts" + ], + "summary": "Set local user account properties.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "local_accounts" + ], + "summary": "Get the local user account information.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name" + } + ], + "responses": { + "200": { + "description": "Local user account information", + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsInfo" + } + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "local_accounts" + ], + "summary": "Update selected fields in local user account properties.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceLocalAccountsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "local_accounts" + ], + "summary": "Delete a local user account.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/logging/forwarding": { + "put": { + "tags": [ + "logging/forwarding" + ], + "summary": "Sets the configuration for forwarding log messages to remote log servers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceLoggingForwardingSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if an invalid configuration is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is any internal error during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "logging/forwarding" + ], + "summary": "Returns the configuration for forwarding log messages to remote logging servers.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the configuration for forwarding log messages to remote logging servers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceLoggingForwardingConfig" + } + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/logging/forwarding?action=test": { + "post": { + "tags": [ + "logging/forwarding" + ], + "summary": "Validates the current log forwarding configuration by checking the liveness of the remote machine and optionally sending a test diagnostic log message from the appliance to all configured logging servers to allow manual end-to-end validation. The message that is sent is: \"This is a diagnostic log test message from vCenter Server.\"", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceLoggingForwardingTest" + } + } + ], + "responses": { + "200": { + "description": "Information about the status of the connection to each of the remote logging servers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceLoggingForwardingConnectionStatus" + } + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/monitoring": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitored items list", + "parameters": [], + "responses": { + "200": { + "description": "list of names", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceMonitoringMonitoredItem" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/monitoring/query": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitoring data.", + "parameters": [ + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "monitored item IDs Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.monitoring.", + "required": true + }, + { + "in": "query", + "name": "interval", + "type": "string", + "enum": [ + "MINUTES30", + "HOURS2", + "MINUTES5", + "DAY1", + "HOURS6" + ], + "description": "Monitoring.IntervalType enumerated type Defines interval between the values in hours and mins, for which aggregation will apply", + "required": true + }, + { + "in": "query", + "name": "function", + "type": "string", + "enum": [ + "COUNT", + "MAX", + "AVG", + "MIN" + ], + "description": "Monitoring.FunctionType enumerated type Defines aggregation function", + "required": true + }, + { + "in": "query", + "name": "start_time", + "type": "string", + "description": "Start time in UTC", + "required": true + }, + { + "in": "query", + "name": "end_time", + "type": "string", + "description": "End time in UTC", + "required": true + } + ], + "responses": { + "200": { + "description": "list of MonitoredItemData structure", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceMonitoringMonitoredItemData" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "query", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/monitoring/{stat_id}": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitored item info", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "stat_id", + "description": "statistic item id\nThe parameter must be an identifier for the resource type: appliance.monitoring." + } + ], + "responses": { + "200": { + "description": "MonitoredItem structure", + "schema": { + "$ref": "#/definitions/ApplianceMonitoringMonitoredItem" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking": { + "get": { + "tags": [ + "networking" + ], + "summary": "Get Networking information for all configured interfaces.", + "parameters": [], + "responses": { + "200": { + "description": "The Map of network configuration info for all interfaces.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInfo" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "networking" + ], + "summary": "Enable or Disable ipv6 on all interfaces", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/dns/domains": { + "post": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Add domain to DNS search domains.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsDomainsAdd" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + }, + "put": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Set DNS search domains.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsDomainsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Get list of DNS search domains.", + "parameters": [], + "responses": { + "200": { + "description": "List of domains.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/dns/hostname": { + "put": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Set the Fully Qualified Domain Name.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Get the Fully Qualified Doman Name.", + "parameters": [], + "responses": { + "200": { + "description": "FQDN.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/dns/hostname?action=test": { + "post": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Test the Fully Qualified Domain Name.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameTest" + } + } + ], + "responses": { + "200": { + "description": "FQDN status", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameTestStatusInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/dns/servers": { + "post": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Add a DNS server. This method fails if mode argument is \"dhcp\"", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersAdd" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + }, + "put": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Set the DNS server configuration. If you set the mode argument to \"DHCP\", a DHCP refresh is forced.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Get DNS server configuration.", + "parameters": [], + "responses": { + "200": { + "description": "DNS server configuration.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersDNSServerConfig" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/dns/servers?action=test": { + "post": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Test if dns servers are reachable.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersTest" + } + } + ], + "responses": { + "200": { + "description": "DNS reacable status", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersTestStatusInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/firewall/inbound": { + "put": { + "tags": [ + "networking/firewall/inbound" + ], + "summary": "Set the ordered list of firewall rules to allow or deny traffic from one or more incoming IP addresses. This overwrites the existing firewall rules and creates a new rule list. Within the list of traffic rules, rules are processed in order of appearance, from top to bottom. For example, the list of rules can be as follows: AddressPrefixInterface NamePolicy 10.112.0.10*REJECT 10.112.0.10nic0ACCEPT In the above example, the first rule drops all packets originating from 10.112.0.1 and\n the second rule accepts all packets originating from 10.112.0.1 only on nic0. In effect, the second rule is always ignored which is not desired, hence the order has to be swapped. When a connection matches a firewall rule, further processing for the connection stops, and the appliance ignores any additional firewall rules you have set.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingFirewallInboundSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/firewall/inbound" + ], + "summary": "Get the ordered list of firewall rules. Within the list of traffic rules, rules are processed in order of appearance, from top to bottom. When a connection matches a firewall rule, further processing for the connection stops, and the appliance ignores any additional firewall rules you have set.", + "parameters": [], + "responses": { + "200": { + "description": "List of address-based firewall rules.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingFirewallInboundRule" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/interfaces": { + "get": { + "tags": [ + "networking/interfaces" + ], + "summary": "Get list of available network interfaces, including those that are not yet configured.", + "parameters": [], + "responses": { + "200": { + "description": "List of InterfaceInfo structures.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesInterfaceInfo" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/interfaces/{interface_name}": { + "get": { + "tags": [ + "networking/interfaces" + ], + "summary": "Get information about a particular network interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "Network interface information.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesInterfaceInfo" + } + }, + "404": { + "description": "if the specified interface is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/interfaces/{interface_name}/ipv4": { + "put": { + "tags": [ + "networking/interfaces/ipv4" + ], + "summary": "Set IPv4 network configuration for specific network interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to update, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Set" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the IP is used as PNID", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/interfaces/ipv4" + ], + "summary": "Get IPv4 network configuration for specific NIC.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "The Network interface to query, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "The IPv4 configuration for the queried NIC.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Info" + } + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/interfaces/{interface_name}/ipv6": { + "put": { + "tags": [ + "networking/interfaces/ipv6" + ], + "summary": "Set IPv6 network configuration for specific interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to update, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Set" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "The specified NIC is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/interfaces/ipv6" + ], + "summary": "Get IPv6 network configuration for specific interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to query, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "IPv6 configuration.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Info" + } + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/noproxy": { + "put": { + "tags": [ + "networking/no_proxy" + ], + "summary": "Sets servers for which no proxy configuration should be applied. This operation sets environment variables. In order for this operation to take effect, a logout from appliance or a service restart is required. If IPv4 is enabled, \"127.0.0.1\" and \"localhost\" will always bypass the proxy (even if they are not explicitly configured).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingNoProxySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/no_proxy" + ], + "summary": "Returns servers for which no proxy configuration will be applied.", + "parameters": [], + "responses": { + "200": { + "description": "List of servers for which no proxy configuration will be applied.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/proxy": { + "get": { + "tags": [ + "networking/proxy" + ], + "summary": "Gets proxy configuration for all configured protocols.", + "parameters": [], + "responses": { + "200": { + "description": "Proxy configuration for all configured protocols.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceNetworkingProxyConfig" + } + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/proxy/{protocol}": { + "put": { + "tags": [ + "networking/proxy" + ], + "summary": "Configures which proxy server to use for the specified protocol. This operation sets environment variables for using proxy. In order for this configuration to take effect a logout / service restart is required.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "The protocol for which proxy should be set." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingProxySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "networking/proxy" + ], + "summary": "Gets the proxy configuration for a specific protocol.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "The protocol whose proxy configuration is requested." + } + ], + "responses": { + "200": { + "description": "Proxy configuration for a specific protocol.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingProxyConfig" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "networking/proxy" + ], + "summary": "Deletes a proxy configuration for a specific protocol.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "ID whose proxy is to be deleted." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking/proxy/{protocol}?action=test": { + "post": { + "tags": [ + "networking/proxy" + ], + "summary": "Tests a proxy configuration by testing the connection to the proxy server and test host.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "Protocol whose proxy is to be tested." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNetworkingProxyTest" + } + } + ], + "responses": { + "200": { + "description": "Status of proxy settings.", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingProxyTestResult" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking?action=change&vmw-task=true": { + "post": { + "tags": [ + "networking" + ], + "summary": "Changes the Hostname/IP of the management network of vCenter appliance. The Hostname/IP change invokes the PNID change process which involves LDAP entry modification, updating registry entries, configuration files modification and network configuration changes. vCenter server is expected to be down for few minutes during these changes", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceNetworkingChangeTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if another change task is in progress", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "change$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/networking?action=reset": { + "post": { + "tags": [ + "networking" + ], + "summary": "Reset and restarts network configuration on all interfaces, also this will renew the DHCP lease for DHCP IP address.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "reset", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/ntp": { + "put": { + "tags": [ + "ntp" + ], + "summary": "Set NTP servers. This method updates old NTP servers from configuration and sets the input NTP servers in the configuration. If NTP based time synchronization is used internally, the NTP daemon will be restarted to reload given NTP configuration. In case NTP based time synchronization is not used, this method only replaces servers in the NTP configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNtpSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "ntp" + ], + "summary": "Get the NTP configuration status. If you run the 'timesync.get' command, you can retrieve the current time synchronization method (NTP- or VMware Tools-based). The 'ntp' command always returns the NTP server information, even when the time synchronization mode is not set to NTP. If the time synchronization mode is not NTP-based, the NTP server status is displayed as down.", + "parameters": [], + "responses": { + "200": { + "description": "List of NTP servers.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/ntp?action=test": { + "post": { + "tags": [ + "ntp" + ], + "summary": "Test the connection to a list of ntp servers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceNtpTest" + } + } + ], + "responses": { + "200": { + "description": "List of test run statuses.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNtpTestRunStatus" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery": { + "get": { + "tags": [ + "recovery" + ], + "summary": "Gets the properties of the appliance Recovery subsystem.", + "parameters": [], + "responses": { + "200": { + "description": "Structure containing the properties of the Recovery subsystem.", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryInfo" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/job": { + "post": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Initiate backup.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobCreate" + } + } + ], + "responses": { + "201": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobBackupJobStatus" + } + }, + "400": { + "description": "A backup or restore is already in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsFeatureInUse" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Get list of backup jobs", + "parameters": [], + "responses": { + "200": { + "description": "list of BackupJob IDs\nThe result will contain identifiers for the resource type: appliance.recovery.backup.job.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/job/details": { + "get": { + "tags": [ + "recovery/backup/job/details" + ], + "summary": "Returns detailed information about the current and historical backup jobs.", + "parameters": [ + { + "in": "query", + "name": "jobs", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of backup jobs that can match the filter.\nIf unset the filter will match all the backup jobs.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.recovery.backup.job. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "Map of backup job identifier to Info Structure.\nThe key in the result map will be an identifier for the resource type: appliance.recovery.backup.job.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobDetailsInfo" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/job/{id}": { + "get": { + "tags": [ + "recovery/backup/job" + ], + "summary": "See backup job progress/result.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "ID (ID of job)\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobBackupJobStatus" + } + }, + "404": { + "description": "if backup associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/job/{id}?action=cancel": { + "post": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Cancel the backup job.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "ID (ID of job)\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobReturnResult" + } + }, + "404": { + "description": "if backup associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/parts": { + "get": { + "tags": [ + "recovery/backup/parts" + ], + "summary": "Gets a list of the backup parts.", + "parameters": [], + "responses": { + "200": { + "description": "Information about each of the backup parts.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupPartsPart" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/parts/{id}": { + "get": { + "tags": [ + "recovery/backup/parts" + ], + "summary": "Gets the size (in MB) of the part.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Identifier of the part.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.parts." + } + ], + "responses": { + "200": { + "description": "long Size of the part in megabytes.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/schedules": { + "post": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Creates a schedule", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the schedule with the given id already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Returns a list of existing schedules with details", + "parameters": [], + "responses": { + "200": { + "description": "Map of schedule id to Info Structure\nThe key in the result map will be an identifier for the resource type: appliance.recovery.backup.schedule.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesInfo" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/schedules/{schedule}": { + "get": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Returns an existing schedule information based on id", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + } + ], + "responses": { + "200": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesInfo" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Updates a schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if provided with invalid schedule specification.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Deletes an existing schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/schedules/{schedule}?action=run": { + "post": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Initiate backup with the specified schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRun" + } + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobBackupJobStatus" + } + }, + "400": { + "description": "if a backup or restore is already in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsFeatureInUse" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "run", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/system-name/{system_name}/archives/{archive}?action=get": { + "post": { + "tags": [ + "recovery/backup/system_name/archive" + ], + "summary": "Returns the information for backup corresponding to given backup location and system name.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "system_name", + "description": "System name identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "archive", + "description": "Archive identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name.archive." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameArchiveGet" + } + } + ], + "responses": { + "200": { + "description": "Info Structure.", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameArchiveInfo" + } + }, + "404": { + "description": "if backup does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/system-name/{system_name}/archives?action=list": { + "post": { + "tags": [ + "recovery/backup/system_name/archive" + ], + "summary": "Returns information about backup archives corresponding to given backup location and system name, which match the Archive.FilterSpec.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "system_name", + "description": "System name identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameArchiveList" + } + } + ], + "responses": { + "200": { + "description": "Commonly used information about the backup archives.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameArchiveSummary" + } + } + }, + "404": { + "description": "if combination of locSpec and system name does not refer to an existing location on the backup server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup/system-name?action=list": { + "post": { + "tags": [ + "recovery/backup/system_name" + ], + "summary": "Returns a list of system names for which backup archives exist under locSpec.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameList" + } + } + ], + "responses": { + "200": { + "description": "list of system names\nThe result will contain identifiers for the resource type: appliance.recovery.backup.system_name.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if locSpec doesn't refer to an existing location on the backup server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/backup?action=validate": { + "post": { + "tags": [ + "recovery/backup" + ], + "summary": "Check for backup errors without starting backup.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupValidate" + } + } + ], + "responses": { + "200": { + "description": "ReturnResult Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryBackupReturnResult" + } + }, + "400": { + "description": "A backup or restore is already in progress", + "schema": { + "$ref": "#/definitions/VapiStdErrorsFeatureInUse" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/reconciliation/job": { + "get": { + "tags": [ + "recovery/reconciliation/job" + ], + "summary": "Get reconciliation job progress/result.", + "parameters": [], + "responses": { + "200": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryReconciliationJobInfo" + } + }, + "404": { + "description": "if there is no running reconciliation job.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "recovery/reconciliation/job" + ], + "summary": "Initiate reconciliation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryReconciliationJobCreate" + } + } + ], + "responses": { + "201": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryReconciliationJobInfo" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/restore/job": { + "get": { + "tags": [ + "recovery/restore/job" + ], + "summary": "See restore job progress/result.", + "parameters": [], + "responses": { + "200": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobRestoreJobStatus" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "recovery/restore/job" + ], + "summary": "Initiate restore.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobCreate" + } + } + ], + "responses": { + "201": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobRestoreJobStatus" + } + }, + "400": { + "description": "Restore is allowed only after deployment and before firstboot", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/restore/job?action=cancel": { + "post": { + "tags": [ + "recovery/restore/job" + ], + "summary": "Cancel the restore job", + "parameters": [], + "responses": { + "200": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobReturnResult" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/recovery/restore?action=validate": { + "post": { + "tags": [ + "recovery/restore" + ], + "summary": "Get metadata before restore", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreValidate" + } + } + ], + "responses": { + "200": { + "description": "Metadata Structure", + "schema": { + "$ref": "#/definitions/ApplianceRecoveryRestoreMetadata" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/services": { + "get": { + "tags": [ + "services" + ], + "summary": "Lists details of vCenter services.", + "parameters": [], + "responses": { + "200": { + "description": "Map of service identifiers to service Info structures.\nThe key in the result map will be an identifier for the resource type: appliance.services.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceServicesInfo" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/services/{service}": { + "get": { + "tags": [ + "services" + ], + "summary": "Returns the state of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose state is being queried.\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "200": { + "description": "Service Info structure.", + "schema": { + "$ref": "#/definitions/ApplianceServicesInfo" + } + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/services/{service}?action=restart": { + "post": { + "tags": [ + "services" + ], + "summary": "Restarts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to restart\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop or start operation is in progress, issuing a restart operation will lead to this error.\nif a restart operation is issued on a service which has startup type StartupType#DISABLED", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "restart", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/services/{service}?action=start": { + "post": { + "tags": [ + "services" + ], + "summary": "Starts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to start\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop or restart operation is in progress, the start operation will not be allowed.\nif start operation is issued on a service which has startup type StartupType#DISABLED.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/services/{service}?action=stop": { + "post": { + "tags": [ + "services" + ], + "summary": "Stops a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to stop\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop operation is in progress, issuing another stop operation will lead to this error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/shutdown": { + "get": { + "tags": [ + "shutdown" + ], + "summary": "Get details about the pending shutdown action.", + "parameters": [], + "responses": { + "200": { + "description": "Configuration of pending shutdown action.", + "schema": { + "$ref": "#/definitions/ApplianceShutdownShutdownConfig" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/shutdown?action=cancel": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Cancel pending shutdown action.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/shutdown?action=poweroff": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Power off the appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceShutdownPoweroff" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "poweroff", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/shutdown?action=reboot": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Reboot the appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceShutdownReboot" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "reboot", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/support-bundle": { + "get": { + "tags": [ + "support_bundle" + ], + "summary": "Get list of support-bundles generated.", + "parameters": [ + { + "in": "query", + "name": "size", + "type": "integer", + "description": "Size specifies the maximum number of results to return.\nIf unset defaults to 50." + }, + { + "in": "query", + "name": "available", + "type": "boolean", + "description": "Filter only downloadable details." + }, + { + "in": "query", + "name": "creation_status", + "type": "string", + "enum": [ + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "description": "" + } + ], + "responses": { + "200": { + "description": "List of support bundle details.", + "schema": { + "$ref": "#/definitions/ApplianceSupportBundleListResult" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/support-bundle/components": { + "get": { + "tags": [ + "support_bundle/components" + ], + "summary": "Get list of components/manifests included in the support bundle. Manifests for a component specifies the files for a particular component that all needs to be collected as part of support bundle.", + "parameters": [], + "responses": { + "200": { + "description": "A map of components with it's group. The keys in the map are group names and values in the map are a list of components in the group.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/support-bundle?vmw-task=true": { + "post": { + "tags": [ + "support_bundle" + ], + "summary": "Create a support bundle.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceSupportBundleCreateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/global-fips": { + "get": { + "tags": [ + "system/security/global_fips" + ], + "summary": "Get current appliance FIPS settings.", + "parameters": [], + "responses": { + "200": { + "description": "Current FIPS settings state.", + "schema": { + "$ref": "#/definitions/ApplianceSystemSecurityGlobalFipsInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get" + }, + "put": { + "tags": [ + "system/security/global_fips" + ], + "summary": "Enable/Disable Global FIPS mode for the appliance. \nCaution: Changing the value of this setting will reboot the Appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceSystemSecurityGlobalFipsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update" + } + }, + "/api/appliance/system/storage": { + "get": { + "tags": [ + "system/storage" + ], + "summary": "Get disk to partition mapping.", + "parameters": [], + "responses": { + "200": { + "description": "list of mapping items", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceSystemStorageStorageMapping" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/storage?action=resize": { + "post": { + "tags": [ + "system/storage" + ], + "summary": "Resize all partitions to 100 percent of disk size.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "resize", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/storage?action=resize-ex": { + "post": { + "tags": [ + "system/storage" + ], + "summary": "Resize all partitions to 100 percent of disk size.", + "parameters": [], + "responses": { + "200": { + "description": "List of the partitions with the size before and after resizing", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceSystemStorageStorageChange" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "resize_ex", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/time": { + "get": { + "tags": [ + "system/time" + ], + "summary": "Get system time.", + "parameters": [], + "responses": { + "200": { + "description": "System time", + "schema": { + "$ref": "#/definitions/ApplianceSystemTimeSystemTimeStruct" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/time/timezone": { + "put": { + "tags": [ + "system/time/timezone" + ], + "summary": "Set time zone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceSystemTimeTimezoneSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if passed arguments are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "system/time/timezone" + ], + "summary": "Get time zone.", + "parameters": [], + "responses": { + "200": { + "description": "Time zone name.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if timezone cannot be read.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/uptime": { + "get": { + "tags": [ + "system/uptime" + ], + "summary": "Get the system uptime.", + "parameters": [], + "responses": { + "200": { + "description": "system uptime", + "schema": { + "type": "number", + "format": "double" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/system/version": { + "get": { + "tags": [ + "system/version" + ], + "summary": "Get the version.", + "parameters": [], + "responses": { + "200": { + "description": "version information about the appliance", + "schema": { + "$ref": "#/definitions/ApplianceSystemVersionVersionStruct" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/timesync": { + "put": { + "tags": [ + "timesync" + ], + "summary": "Set time synchronization mode.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceTimesyncSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "timesync" + ], + "summary": "Get time synchronization mode.", + "parameters": [], + "responses": { + "200": { + "description": "Time synchronization mode.", + "schema": { + "$ref": "#/definitions/ApplianceTimesyncTimeSyncMode" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update": { + "get": { + "tags": [ + "update" + ], + "summary": "Gets the current status of the appliance update.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the appliance.", + "schema": { + "$ref": "#/definitions/ApplianceUpdateInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending": { + "get": { + "tags": [ + "update/pending" + ], + "summary": "Checks if there are any eligible updates.", + "parameters": [ + { + "required": true, + "in": "query", + "name": "source_type", + "description": "{ 1. The Pending.SourceType enumerated type defines the supported types of sources of updates. }, { 2. type of the source }", + "type": "string", + "enum": [ + "LAST_CHECK", + "LOCAL", + "LOCAL_AND_ONLINE" + ] + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "url", + "description": "specific URL to check at\nIf unset then URL is taken from the policy settings" + }, + { + "required": false, + "type": "boolean", + "in": "query", + "name": "enable_list_major_upgrade_versions", + "description": "checks and lists if there are eligible major version upgrades available. Possible values are true and false\nwhen set to true it allows listing of across version upgrade When not specified lists only minor updates available" + } + ], + "responses": { + "200": { + "description": "List of the update summaries", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceUpdateSummary" + } + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "source is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}": { + "get": { + "tags": [ + "update/pending" + ], + "summary": "Gets update information", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "200": { + "description": "Update", + "schema": { + "$ref": "#/definitions/ApplianceUpdatePendingInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update of this version is already installed", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}?action=install": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts operation of installing the appliance update. Will fail is the update is not staged", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceUpdatePendingInstall" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error\nGeneric error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if appliance update state prevents running an update or not staged", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "install", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}?action=precheck": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Runs update precheck", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "200": { + "description": "PrecheckResult", + "schema": { + "$ref": "#/definitions/ApplianceUpdatePendingPrecheckResult" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if another operation is in progress", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "precheck", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}?action=stage": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts staging the appliance update. The updates are searched for in the following order: staged, CDROM, URL", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if appliance update state prevents staging", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "stage", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}?action=stage-and-install": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts operation of installing the appliance update. Will stage update if not already staged The updates are searched for in the following order: staged, CDROM, URL", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceUpdatePendingStageAndInstall" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error\nGeneric error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if appliance update state prevents running an update", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "stage_and_install", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending/{version}?action=validate": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Validates the user provided data before the update installation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplianceUpdatePendingValidate" + } + } + ], + "responses": { + "200": { + "description": "Issues struct with the issues found during the validation", + "schema": { + "$ref": "#/definitions/ApplianceNotifications" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if appliance update state prevents running an check", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/pending?action=rollback": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts the update rollback operation such that the vCenter is reverted to a state before update installation. It will remove any changes done by update-install operation on the vCenter. \nCaution: This operation will perform a reboot of appliance.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if there is no valid snapshot present on the vCenter", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if appliance update state prevents running a rollback operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "rollback", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/policy": { + "put": { + "tags": [ + "update/policy" + ], + "summary": "Sets the automatic update checking and staging policy.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceUpdatePolicySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "update/policy" + ], + "summary": "Gets the automatic update checking and staging policy.", + "parameters": [], + "responses": { + "200": { + "description": "Structure containing the policy for the appliance update.", + "schema": { + "$ref": "#/definitions/ApplianceUpdatePolicyInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update/staged": { + "get": { + "tags": [ + "update/staged" + ], + "summary": "Gets the current status of the staged update", + "parameters": [], + "responses": { + "200": { + "description": "Info structure with information about staged update", + "schema": { + "$ref": "#/definitions/ApplianceUpdateStagedInfo" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if nothing is staged", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "update/staged" + ], + "summary": "Deletes the staged update", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/update?action=cancel": { + "post": { + "tags": [ + "update" + ], + "summary": "Request the cancellation the update operation that is currently in progress.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "Current task is not cancellable", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config": { + "get": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Returns information about a profile. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the specified profile.", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If given version is different than the latest one.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no profile or version associated with profile or version in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Creates a Profile. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigCreate" + } + } + ], + "responses": { + "201": { + "description": "ID of newly-created profile.\nThe result will be an identifier for the resource type: appliance.vcenter.settings.v1.config.profile.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Deletes a profile. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Write.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any other operation running on the same profile.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the profile is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config-current": { + "get": { + "tags": [ + "vcenter/settings/v1/config_current" + ], + "summary": "Returns the current state of the vCenter. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Infraprofile.Read.", + "parameters": [ + { + "required": false, + "in": "query", + "name": "invoker_type", + "description": "{ 1. The ConfigCurrent.InvokerType enumerated type contains the possible invoker type, to be passed on to plugins to understand the consumer. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments. }, { 2. }", + "type": "string", + "enum": [ + "USER", + "INTERNAL" + ] + }, + { + "required": false, + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "in": "query", + "name": "components", + "description": "" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config/{version}?action=scan&vmw-task=true": { + "post": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Scans all the components in the profiles against the applied profile. result of this operation can be queried by calling the api cis/tasks/{task-id} where the task-id is the response of this operation. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "version of the profile.\nThe parameter must be an identifier for the resource type: appliance.vcenter.settings.v1.config.version." + } + ], + "responses": { + "202": { + "description": "Result of the scan operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no profile associated with profile in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "scan$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config?action=apply-desired-state&vmw-task=true": { + "post": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Apply the specified DesiredState spec to the vCenter. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigApplyDesiredStateTask" + } + } + ], + "responses": { + "202": { + "description": "ApplyResult containing the status and progress of Apply operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If validation of the desired-state spec fails. The value of the data field of Error will be a structure that contains all the fields defined in Config.ApplyResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "apply_desired_state$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config?action=check-desired-state&vmw-task=true": { + "post": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Validate (Check) the specified DesiredState spec containing configurations, and verify if it can be applied to the vCenter. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigCheckDesiredStateTask" + } + } + ], + "responses": { + "202": { + "description": "Desired State spec validation results.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check_desired_state$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/appliance/vcenter/settings/v1/config?action=scan-desired-state&vmw-task=true": { + "post": { + "tags": [ + "vcenter/settings/v1/config" + ], + "summary": "Scans all the components in the desired state against the applied profile. result of this operation can be queried by calling the api cis/tasks/{task-id} where the task-id is the response of this operation. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigScanDesiredStateTask" + } + } + ], + "responses": { + "202": { + "description": "Result of the scan operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "scan_desired_state$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/appliance/access/consolecli": { + "put": { + "tags": [ + "access/consolecli" + ], + "summary": "Set enabled state of the console-based controlled CLI (TTY1).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.access.consolecli_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1consolecli/put" + } + }, + "get": { + "tags": [ + "access/consolecli" + ], + "summary": "Get enabled state of the console-based controlled CLI (TTY1).", + "parameters": [], + "responses": { + "200": { + "description": "Console-based controlled CLI is enabled.", + "schema": { + "$ref": "#/definitions/appliance.access.consolecli_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1consolecli/get" + } + } + }, + "/rest/appliance/access/dcui": { + "put": { + "tags": [ + "access/dcui" + ], + "summary": "Set enabled state of Direct Console User Interface (DCUI TTY2).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.access.dcui_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1dcui/put" + } + }, + "get": { + "tags": [ + "access/dcui" + ], + "summary": "Get enabled state of Direct Console User Interface (DCUI TTY2).", + "parameters": [], + "responses": { + "200": { + "description": "DCUI is enabled.", + "schema": { + "$ref": "#/definitions/appliance.access.dcui_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1dcui/get" + } + } + }, + "/rest/appliance/access/shell": { + "put": { + "tags": [ + "access/shell" + ], + "summary": "Set enabled state of BASH, that is, access to BASH from within the controlled CLI.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.access.shell_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1shell/put" + } + }, + "get": { + "tags": [ + "access/shell" + ], + "summary": "Get enabled state of BASH, that is, access to BASH from within the controlled CLI.", + "parameters": [], + "responses": { + "200": { + "description": "Current shell configuration.", + "schema": { + "$ref": "#/definitions/appliance.access.shell_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1shell/get" + } + } + }, + "/rest/appliance/access/ssh": { + "put": { + "tags": [ + "access/ssh" + ], + "summary": "Set enabled state of the SSH-based controlled CLI.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.access.ssh_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1ssh/put" + } + }, + "get": { + "tags": [ + "access/ssh" + ], + "summary": "Get enabled state of the SSH-based controlled CLI.", + "parameters": [], + "responses": { + "200": { + "description": "SSH-based controlled CLI is enabled.", + "schema": { + "$ref": "#/definitions/appliance.access.ssh_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1access~1ssh/get" + } + } + }, + "/rest/appliance/health/applmgmt": { + "get": { + "tags": [ + "health/applmgmt" + ], + "summary": "Get health status of applmgmt services.", + "parameters": [], + "responses": { + "200": { + "description": "health status", + "schema": { + "$ref": "#/definitions/appliance.health.applmgmt_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1applmgmt/get" + } + } + }, + "/rest/appliance/health/database": { + "get": { + "tags": [ + "health/database" + ], + "summary": "Returns the health status of the database.", + "parameters": [], + "responses": { + "200": { + "description": "Health status of the database", + "schema": { + "$ref": "#/definitions/appliance.health.database_resp" + } + }, + "400": { + "description": "if issue in retrieving health of the database", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1database/get" + } + } + }, + "/rest/appliance/health/database-storage": { + "get": { + "tags": [ + "health/databasestorage" + ], + "summary": "Get database storage health.", + "parameters": [], + "responses": { + "200": { + "description": "Database storage health", + "schema": { + "$ref": "#/definitions/appliance.health.databasestorage_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1database-storage/get" + } + } + }, + "/rest/appliance/health/load": { + "get": { + "tags": [ + "health/load" + ], + "summary": "Get load health.", + "parameters": [], + "responses": { + "200": { + "description": "Load health.", + "schema": { + "$ref": "#/definitions/appliance.health.load_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1load/get" + } + } + }, + "/rest/appliance/health/mem": { + "get": { + "tags": [ + "health/mem" + ], + "summary": "Get memory health.", + "parameters": [], + "responses": { + "200": { + "description": "Memory health.", + "schema": { + "$ref": "#/definitions/appliance.health.mem_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1mem/get" + } + } + }, + "/rest/appliance/health/settings": { + "get": { + "tags": [ + "health_check_settings" + ], + "summary": "Get health settings for vCenter Server.", + "parameters": [], + "responses": { + "200": { + "description": "health settings.", + "schema": { + "$ref": "#/definitions/appliance.health_check_settings_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1settings/get" + } + }, + "patch": { + "tags": [ + "health_check_settings" + ], + "summary": "Set health settings based on provided healthSpec", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.health_check_settings_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1settings/patch" + } + } + }, + "/rest/appliance/health/software-packages": { + "get": { + "tags": [ + "health/softwarepackages" + ], + "summary": "Get information on available software updates available in the remote vSphere Update Manager repository. Red indicates that security updates are available. Orange indicates that non-security updates are available. Green indicates that there are no updates available. Gray indicates that there was an error retreiving information on software updates.", + "parameters": [], + "responses": { + "200": { + "description": "software updates available.", + "schema": { + "$ref": "#/definitions/appliance.health.softwarepackages_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1software-packages/get" + } + } + }, + "/rest/appliance/health/storage": { + "get": { + "tags": [ + "health/storage" + ], + "summary": "Get storage health.", + "parameters": [], + "responses": { + "200": { + "description": "Storage health.", + "schema": { + "$ref": "#/definitions/appliance.health.storage_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1storage/get" + } + } + }, + "/rest/appliance/health/swap": { + "get": { + "tags": [ + "health/swap" + ], + "summary": "Get swap health.", + "parameters": [], + "responses": { + "200": { + "description": "Swap health", + "schema": { + "$ref": "#/definitions/appliance.health.swap_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1swap/get" + } + } + }, + "/rest/appliance/health/system": { + "get": { + "tags": [ + "health/system" + ], + "summary": "Get overall health of system.", + "parameters": [], + "responses": { + "200": { + "description": "System health", + "schema": { + "$ref": "#/definitions/appliance.health.system_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1system/get" + } + } + }, + "/rest/appliance/health/system/lastcheck": { + "get": { + "tags": [ + "health/system" + ], + "summary": "Get last check timestamp of the health of the system.", + "parameters": [], + "responses": { + "200": { + "description": "System health last check timestamp", + "schema": { + "$ref": "#/definitions/appliance.health.system.lastcheck_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "lastcheck", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1system~1lastcheck/get" + } + } + }, + "/rest/appliance/health/{item}/messages": { + "get": { + "tags": [ + "health" + ], + "summary": "Get health messages.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "item", + "description": "ID of the data item\nThe parameter must be an identifier for the resource type: appliance.health." + } + ], + "responses": { + "200": { + "description": "List of the health messages", + "schema": { + "$ref": "#/definitions/appliance.health.messages_resp" + } + }, + "404": { + "description": "Unknown health item", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "messages", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1health~1{item}~1messages/get" + } + } + }, + "/rest/appliance/local-accounts": { + "get": { + "tags": [ + "local_accounts" + ], + "summary": "Get a list of the local user accounts.", + "parameters": [], + "responses": { + "200": { + "description": "List of identifiers\nThe result will contain identifiers for the resource type: appliance.local_accounts.", + "schema": { + "$ref": "#/definitions/appliance.local_accounts.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts/get" + } + } + }, + "/rest/appliance/local-accounts/global-policy": { + "put": { + "tags": [ + "local_accounts/policy" + ], + "summary": "Set the global password policy.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.local_accounts.policy_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1global-policy/put" + } + }, + "get": { + "tags": [ + "local_accounts/policy" + ], + "summary": "Get the global password policy.", + "parameters": [], + "responses": { + "200": { + "description": "Global password policy", + "schema": { + "$ref": "#/definitions/appliance.local_accounts.policy_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1global-policy/get" + } + } + }, + "/rest/appliance/local-accounts/{username}": { + "put": { + "tags": [ + "local_accounts" + ], + "summary": "Set local user account properties.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.local_accounts_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1{username}/put" + } + }, + "get": { + "tags": [ + "local_accounts" + ], + "summary": "Get the local user account information.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name" + } + ], + "responses": { + "200": { + "description": "Local user account information", + "schema": { + "$ref": "#/definitions/appliance.local_accounts_resp" + } + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1{username}/get" + } + }, + "post": { + "tags": [ + "local_accounts" + ], + "summary": "Create a new local user account.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.local_accounts_create" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts/post" + } + }, + "patch": { + "tags": [ + "local_accounts" + ], + "summary": "Update selected fields in local user account properties.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.local_accounts_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1{username}/patch" + } + }, + "delete": { + "tags": [ + "local_accounts" + ], + "summary": "Delete a local user account.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "username", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the account is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1local-accounts~1{username}/delete" + } + } + }, + "/rest/appliance/logging/forwarding": { + "put": { + "tags": [ + "logging/forwarding" + ], + "summary": "Sets the configuration for forwarding log messages to remote log servers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.logging.forwarding_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if there is any internal error during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1logging~1forwarding/put" + } + }, + "get": { + "tags": [ + "logging/forwarding" + ], + "summary": "Returns the configuration for forwarding log messages to remote logging servers.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the configuration for forwarding log messages to remote logging servers.", + "schema": { + "$ref": "#/definitions/appliance.logging.forwarding_resp" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1logging~1forwarding/get" + } + } + }, + "/rest/appliance/logging/forwarding?action=test": { + "post": { + "tags": [ + "logging/forwarding" + ], + "summary": "Validates the current log forwarding configuration by checking the liveness of the remote machine and optionally sending a test diagnostic log message from the appliance to all configured logging servers to allow manual end-to-end validation. The message that is sent is: \"This is a diagnostic log test message from vCenter Server.\"", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/appliance.logging.forwarding_test" + } + } + ], + "responses": { + "200": { + "description": "Information about the status of the connection to each of the remote logging servers.", + "schema": { + "$ref": "#/definitions/appliance.logging.forwarding.test_resp" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1logging~1forwarding?action=test/post" + } + } + }, + "/rest/appliance/monitoring": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitored items list", + "parameters": [], + "responses": { + "200": { + "description": "list of names", + "schema": { + "$ref": "#/definitions/appliance.monitoring.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1monitoring/get" + } + } + }, + "/rest/appliance/monitoring/query": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitoring data.", + "parameters": [ + { + "in": "query", + "name": "item.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "monitored item IDs Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.monitoring.", + "required": true + }, + { + "in": "query", + "name": "item.interval", + "type": "string", + "enum": [ + "MINUTES30", + "HOURS2", + "MINUTES5", + "DAY1", + "HOURS6" + ], + "description": "Monitoring.IntervalType enumerated type Defines interval between the values in hours and mins, for which aggregation will apply", + "required": true + }, + { + "in": "query", + "name": "item.function", + "type": "string", + "enum": [ + "COUNT", + "MAX", + "AVG", + "MIN" + ], + "description": "Monitoring.FunctionType enumerated type Defines aggregation function", + "required": true + }, + { + "in": "query", + "name": "item.start_time", + "type": "string", + "description": "Start time in UTC", + "required": true + }, + { + "in": "query", + "name": "item.end_time", + "type": "string", + "description": "End time in UTC", + "required": true + } + ], + "responses": { + "200": { + "description": "list of MonitoredItemData structure", + "schema": { + "$ref": "#/definitions/appliance.monitoring.query_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "query", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1monitoring~1query/get" + } + } + }, + "/rest/appliance/monitoring/{stat_id}": { + "get": { + "tags": [ + "monitoring" + ], + "summary": "Get monitored item info", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "stat_id", + "description": "statistic item id\nThe parameter must be an identifier for the resource type: appliance.monitoring." + } + ], + "responses": { + "200": { + "description": "MonitoredItem structure", + "schema": { + "$ref": "#/definitions/appliance.monitoring_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1monitoring~1{stat_id}/get" + } + } + }, + "/rest/appliance/networking": { + "get": { + "tags": [ + "networking" + ], + "summary": "Get Networking information for all configured interfaces.", + "parameters": [], + "responses": { + "200": { + "description": "The Map of network configuration info for all interfaces.", + "schema": { + "$ref": "#/definitions/appliance.networking_resp" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking/get" + } + }, + "patch": { + "tags": [ + "networking" + ], + "summary": "Enable or Disable ipv6 on all interfaces", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking/patch" + } + } + }, + "/rest/appliance/networking/dns/domains": { + "post": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Add domain to DNS search domains.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.domains_add" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1domains/post" + } + }, + "put": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Set DNS search domains.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.domains_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1domains/put" + } + }, + "get": { + "tags": [ + "networking/dns/domains" + ], + "summary": "Get list of DNS search domains.", + "parameters": [], + "responses": { + "200": { + "description": "List of domains.", + "schema": { + "$ref": "#/definitions/appliance.networking.dns.domains.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1domains/get" + } + } + }, + "/rest/appliance/networking/dns/hostname": { + "put": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Set the Fully Qualified Domain Name.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.hostname_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1hostname/put" + } + }, + "get": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Get the Fully Qualified Doman Name.", + "parameters": [], + "responses": { + "200": { + "description": "FQDN.", + "schema": { + "$ref": "#/definitions/appliance.networking.dns.hostname_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1hostname/get" + } + } + }, + "/rest/appliance/networking/dns/hostname/test": { + "post": { + "tags": [ + "networking/dns/hostname" + ], + "summary": "Test the Fully Qualified Domain Name.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.hostname_test" + } + } + ], + "responses": { + "200": { + "description": "FQDN status", + "schema": { + "$ref": "#/definitions/appliance.networking.dns.hostname.test_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1hostname?action=test/post" + } + } + }, + "/rest/appliance/networking/dns/servers": { + "post": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Add a DNS server. This method fails if mode argument is \"dhcp\"", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.servers_add" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1servers/post" + } + }, + "put": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Set the DNS server configuration. If you set the mode argument to \"DHCP\", a DHCP refresh is forced.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.servers_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1servers/put" + } + }, + "get": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Get DNS server configuration.", + "parameters": [], + "responses": { + "200": { + "description": "DNS server configuration.", + "schema": { + "$ref": "#/definitions/appliance.networking.dns.servers_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1servers/get" + } + } + }, + "/rest/appliance/networking/dns/servers/test": { + "post": { + "tags": [ + "networking/dns/servers" + ], + "summary": "Test if dns servers are reachable.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.dns.servers_test" + } + } + ], + "responses": { + "200": { + "description": "DNS reacable status", + "schema": { + "$ref": "#/definitions/appliance.networking.dns.servers.test_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1dns~1servers?action=test/post" + } + } + }, + "/rest/appliance/networking/firewall/inbound": { + "put": { + "tags": [ + "networking/firewall/inbound" + ], + "summary": "Set the ordered list of firewall rules to allow or deny traffic from one or more incoming IP addresses. This overwrites the existing firewall rules and creates a new rule list. Within the list of traffic rules, rules are processed in order of appearance, from top to bottom. For example, the list of rules can be as follows: AddressPrefixInterface NamePolicy 10.112.0.10*REJECT 10.112.0.10nic0ACCEPT In the above example, the first rule drops all packets originating from 10.112.0.1 and\n the second rule accepts all packets originating from 10.112.0.1 only on nic0. In effect, the second rule is always ignored which is not desired, hence the order has to be swapped. When a connection matches a firewall rule, further processing for the connection stops, and the appliance ignores any additional firewall rules you have set.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.firewall.inbound_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1firewall~1inbound/put" + } + }, + "get": { + "tags": [ + "networking/firewall/inbound" + ], + "summary": "Get the ordered list of firewall rules. Within the list of traffic rules, rules are processed in order of appearance, from top to bottom. When a connection matches a firewall rule, further processing for the connection stops, and the appliance ignores any additional firewall rules you have set.", + "parameters": [], + "responses": { + "200": { + "description": "List of address-based firewall rules.", + "schema": { + "$ref": "#/definitions/appliance.networking.firewall.inbound_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1firewall~1inbound/get" + } + } + }, + "/rest/appliance/networking/interfaces": { + "get": { + "tags": [ + "networking/interfaces" + ], + "summary": "Get list of available network interfaces, including those that are not yet configured.", + "parameters": [], + "responses": { + "200": { + "description": "List of InterfaceInfo structures.", + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces/get" + } + } + }, + "/rest/appliance/networking/interfaces/{interface_name}": { + "get": { + "tags": [ + "networking/interfaces" + ], + "summary": "Get information about a particular network interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "Network interface information.", + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces_resp" + } + }, + "404": { + "description": "if the specified interface is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces~1{interface_name}/get" + } + } + }, + "/rest/appliance/networking/interfaces/{interface_name}/ipv4": { + "put": { + "tags": [ + "networking/interfaces/ipv4" + ], + "summary": "Set IPv4 network configuration for specific network interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to update, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv4_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces~1{interface_name}~1ipv4/put" + } + }, + "get": { + "tags": [ + "networking/interfaces/ipv4" + ], + "summary": "Get IPv4 network configuration for specific NIC.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "The Network interface to query, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "The IPv4 configuration for the queried NIC.", + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv4_resp" + } + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces~1{interface_name}~1ipv4/get" + } + } + }, + "/rest/appliance/networking/interfaces/{interface_name}/ipv6": { + "put": { + "tags": [ + "networking/interfaces/ipv6" + ], + "summary": "Set IPv6 network configuration for specific interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to update, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "The specified NIC is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces~1{interface_name}~1ipv6/put" + } + }, + "get": { + "tags": [ + "networking/interfaces/ipv6" + ], + "summary": "Get IPv6 network configuration for specific interface.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "interface_name", + "description": "Network interface to query, for example, \"nic0\".\nThe parameter must be an identifier for the resource type: appliance.networking.interfaces." + } + ], + "responses": { + "200": { + "description": "IPv6 configuration.", + "schema": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6_resp" + } + }, + "404": { + "description": "if the specified NIC is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1interfaces~1{interface_name}~1ipv6/get" + } + } + }, + "/rest/appliance/networking/noproxy": { + "put": { + "tags": [ + "networking/no_proxy" + ], + "summary": "Sets servers for which no proxy configuration should be applied. This operation sets environment variables. In order for this operation to take effect, a logout from appliance or a service restart is required. If IPv4 is enabled, \"127.0.0.1\" and \"localhost\" will always bypass the proxy (even if they are not explicitly configured).", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.no_proxy_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1noproxy/put" + } + }, + "get": { + "tags": [ + "networking/no_proxy" + ], + "summary": "Returns servers for which no proxy configuration will be applied.", + "parameters": [], + "responses": { + "200": { + "description": "List of servers for which no proxy configuration will be applied.", + "schema": { + "$ref": "#/definitions/appliance.networking.no_proxy_resp" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1noproxy/get" + } + } + }, + "/rest/appliance/networking/proxy": { + "get": { + "tags": [ + "networking/proxy" + ], + "summary": "Gets proxy configuration for all configured protocols.", + "parameters": [], + "responses": { + "200": { + "description": "Proxy configuration for all configured protocols.", + "schema": { + "$ref": "#/definitions/appliance.networking.proxy.list_resp" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1proxy/get" + } + } + }, + "/rest/appliance/networking/proxy/{protocol}": { + "put": { + "tags": [ + "networking/proxy" + ], + "summary": "Configures which proxy server to use for the specified protocol. This operation sets environment variables for using proxy. In order for this configuration to take effect a logout / service restart is required.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "The protocol for which proxy should be set." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.proxy_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1proxy~1{protocol}/put" + } + }, + "get": { + "tags": [ + "networking/proxy" + ], + "summary": "Gets the proxy configuration for a specific protocol.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "The protocol whose proxy configuration is requested." + } + ], + "responses": { + "200": { + "description": "Proxy configuration for a specific protocol.", + "schema": { + "$ref": "#/definitions/appliance.networking.proxy_resp" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1proxy~1{protocol}/get" + } + }, + "delete": { + "tags": [ + "networking/proxy" + ], + "summary": "Deletes a proxy configuration for a specific protocol.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "ID whose proxy is to be deleted." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1proxy~1{protocol}/delete" + } + } + }, + "/rest/appliance/networking/proxy/{protocol}?action=test": { + "post": { + "tags": [ + "networking/proxy" + ], + "summary": "Tests a proxy configuration by testing the connection to the proxy server and test host.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "protocol", + "description": "Protocol whose proxy is to be tested." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking.proxy_test" + } + } + ], + "responses": { + "200": { + "description": "Status of proxy settings.", + "schema": { + "$ref": "#/definitions/appliance.networking.proxy.test_resp" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking~1proxy~1{protocol}?action=test/post" + } + } + }, + "/rest/appliance/networking?action=change&vmw-task=true": { + "post": { + "tags": [ + "networking" + ], + "summary": "Changes the Hostname/IP of the management network of vCenter appliance. The Hostname/IP change invokes the PNID change process which involves LDAP entry modification, updating registry entries, configuration files modification and network configuration changes. vCenter server is expected to be down for few minutes during these changes", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.networking_change_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/appliance.networking.change_task_resp" + } + }, + "400": { + "description": "if another change task is in progress", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "change$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking?action=change/post" + } + } + }, + "/rest/appliance/networking?action=reset": { + "post": { + "tags": [ + "networking" + ], + "summary": "Reset and restarts network configuration on all interfaces, also this will renew the DHCP lease for DHCP IP address.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "reset", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1networking?action=reset/post" + } + } + }, + "/rest/appliance/ntp": { + "put": { + "tags": [ + "ntp" + ], + "summary": "Set NTP servers. This method updates old NTP servers from configuration and sets the input NTP servers in the configuration. If NTP based time synchronization is used internally, the NTP daemon will be restarted to reload given NTP configuration. In case NTP based time synchronization is not used, this method only replaces servers in the NTP configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.ntp_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1ntp/put" + } + }, + "get": { + "tags": [ + "ntp" + ], + "summary": "Get the NTP configuration status. If you run the 'timesync.get' command, you can retrieve the current time synchronization method (NTP- or VMware Tools-based). The 'ntp' command always returns the NTP server information, even when the time synchronization mode is not set to NTP. If the time synchronization mode is not NTP-based, the NTP server status is displayed as down.", + "parameters": [], + "responses": { + "200": { + "description": "List of NTP servers.", + "schema": { + "$ref": "#/definitions/appliance.ntp_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1ntp/get" + } + } + }, + "/rest/appliance/ntp/test": { + "post": { + "tags": [ + "ntp" + ], + "summary": "Test the connection to a list of ntp servers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.ntp_test" + } + } + ], + "responses": { + "200": { + "description": "List of test run statuses.", + "schema": { + "$ref": "#/definitions/appliance.ntp.test_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "test", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1ntp?action=test/post" + } + } + }, + "/rest/appliance/recovery": { + "get": { + "tags": [ + "recovery" + ], + "summary": "Gets the properties of the appliance Recovery subsystem.", + "parameters": [], + "responses": { + "200": { + "description": "Structure containing the properties of the Recovery subsystem.", + "schema": { + "$ref": "#/definitions/appliance.recovery_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery/get" + } + } + }, + "/rest/appliance/recovery/backup/job": { + "post": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Initiate backup.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job_create" + } + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job.create_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1job/post" + } + }, + "get": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Get list of backup jobs", + "parameters": [], + "responses": { + "200": { + "description": "list of BackupJob IDs\nThe result will contain identifiers for the resource type: appliance.recovery.backup.job.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job.list_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1job/get" + } + } + }, + "/rest/appliance/recovery/backup/job/details": { + "get": { + "tags": [ + "recovery/backup/job/details" + ], + "summary": "Returns detailed information about the current and historical backup jobs.", + "parameters": [ + { + "in": "query", + "name": "filter.jobs", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of backup jobs that can match the filter.\nIf unset the filter will match all the backup jobs.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.recovery.backup.job. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "Map of backup job identifier to Info Structure.\nThe key in the result map will be an identifier for the resource type: appliance.recovery.backup.job.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job.details.list_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1job~1details/get" + } + } + }, + "/rest/appliance/recovery/backup/job/{id}": { + "get": { + "tags": [ + "recovery/backup/job" + ], + "summary": "See backup job progress/result.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "ID (ID of job)\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job_resp" + } + }, + "404": { + "description": "if backup associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1job~1{id}/get" + } + } + }, + "/rest/appliance/recovery/backup/job/{id}/cancel": { + "post": { + "tags": [ + "recovery/backup/job" + ], + "summary": "Cancel the backup job.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "ID (ID of job)\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.job." + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.job.cancel_resp" + } + }, + "404": { + "description": "if backup associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1job~1{id}?action=cancel/post" + } + } + }, + "/rest/appliance/recovery/backup/parts": { + "get": { + "tags": [ + "recovery/backup/parts" + ], + "summary": "Gets a list of the backup parts.", + "parameters": [], + "responses": { + "200": { + "description": "Information about each of the backup parts.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.parts.list_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1parts/get" + } + } + }, + "/rest/appliance/recovery/backup/parts/{id}": { + "get": { + "tags": [ + "recovery/backup/parts" + ], + "summary": "Gets the size (in MB) of the part.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Identifier of the part.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.parts." + } + ], + "responses": { + "200": { + "description": "long Size of the part in megabytes.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.parts_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1parts~1{id}/get" + } + } + }, + "/rest/appliance/recovery/backup/schedules": { + "get": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Returns a list of existing schedules with details", + "parameters": [], + "responses": { + "200": { + "description": "Map of schedule id to Info Structure\nThe key in the result map will be an identifier for the resource type: appliance.recovery.backup.schedule.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.list_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules/get" + } + } + }, + "/rest/appliance/recovery/backup/schedules/update/{schedule}": { + "put": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Updates a schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules~1{schedule}/patch" + } + } + }, + "/rest/appliance/recovery/backup/schedules/{schedule}": { + "get": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Returns an existing schedule information based on id", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + } + ], + "responses": { + "200": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules_resp" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules~1{schedule}/get" + } + }, + "post": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Creates a schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules_create" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules/post" + } + }, + "delete": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Deletes an existing schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules~1{schedule}/delete" + } + } + }, + "/rest/appliance/recovery/backup/schedules/{schedule}?action=run": { + "post": { + "tags": [ + "recovery/backup/schedules" + ], + "summary": "Initiate backup with the specified schedule", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "schedule", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules_run" + } + } + ], + "responses": { + "200": { + "description": "BackupJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.run_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if schedule associated with id does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "run", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1schedules~1{schedule}?action=run/post" + } + } + }, + "/rest/appliance/recovery/backup/system-name": { + "get": { + "tags": [ + "recovery/backup/system_name" + ], + "summary": "Returns a list of system names for which backup archives exist under locSpec.", + "parameters": [ + { + "in": "query", + "name": "loc_spec.location", + "type": "string", + "description": "Backup location URL.", + "required": true + }, + { + "in": "query", + "name": "loc_spec.location_user", + "type": "string", + "description": "Username for the given location.\nIf unset authentication will not be used.", + "required": false + }, + { + "in": "query", + "name": "loc_spec.location_password", + "type": "string", + "description": "Password for the given location.\nIf unset authentication will not be used.", + "required": false + } + ], + "responses": { + "200": { + "description": "list of system names\nThe result will contain identifiers for the resource type: appliance.recovery.backup.system_name.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.system_name.list_resp" + } + }, + "404": { + "description": "if locSpec doesn't refer to an existing location on the backup server.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1system-name?action=list/post" + } + } + }, + "/rest/appliance/recovery/backup/system-name/{system_name}/archives": { + "get": { + "tags": [ + "recovery/backup/system_name/archive" + ], + "summary": "Returns information about backup archives corresponding to given backup location and system name, which match the Archive.FilterSpec.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "system_name", + "description": "System name identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name." + }, + { + "in": "query", + "name": "loc_spec.location", + "type": "string", + "description": "Backup location URL.", + "required": true + }, + { + "in": "query", + "name": "loc_spec.location_user", + "type": "string", + "description": "Username for the given location.\nIf unset authentication will not be used.", + "required": false + }, + { + "in": "query", + "name": "loc_spec.location_password", + "type": "string", + "description": "Password for the given location.\nIf unset authentication will not be used.", + "required": false + }, + { + "in": "query", + "name": "filter_spec.start_timestamp", + "type": "string", + "description": "Backup must have been taken on or after this time to match the filter.\nIf unset the filter will match oldest backups." + }, + { + "in": "query", + "name": "filter_spec.end_timestamp", + "type": "string", + "description": "Backup must have been taken on or before this time to match the filter.\nIf unset the filter will match most recent backups." + }, + { + "in": "query", + "name": "filter_spec.comment_substring", + "type": "string", + "description": "Backup comment must contain this string to match the filter.\nIf unset the filter will match backups with any comment." + }, + { + "in": "query", + "name": "filter_spec.max_results", + "type": "integer", + "description": "Limit result to a max count of most recent backups.\nIf unset it defaults to 128." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the backup archives.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.system_name.archive.list_resp" + } + }, + "404": { + "description": "if combination of locSpec and system name does not refer to an existing location on the backup server.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1system-name~1{system_name}~1archives?action=list/post" + } + } + }, + "/rest/appliance/recovery/backup/system-name/{system_name}/archives/{archive}": { + "get": { + "tags": [ + "recovery/backup/system_name/archive" + ], + "summary": "Returns the information for backup corresponding to given backup location and system name.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "system_name", + "description": "System name identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "archive", + "description": "Archive identifier.\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.system_name.archive." + }, + { + "in": "query", + "name": "spec.location", + "type": "string", + "description": "Backup location URL.", + "required": true + }, + { + "in": "query", + "name": "spec.location_user", + "type": "string", + "description": "Username for the given location.\nIf unset authentication will not be used.", + "required": false + }, + { + "in": "query", + "name": "spec.location_password", + "type": "string", + "description": "Password for the given location.\nIf unset authentication will not be used.", + "required": false + } + ], + "responses": { + "200": { + "description": "Info Structure.", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.system_name.archive_resp" + } + }, + "404": { + "description": "if backup does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup~1system-name~1{system_name}~1archives~1{archive}?action=get/post" + } + } + }, + "/rest/appliance/recovery/backup/validate": { + "post": { + "tags": [ + "recovery/backup" + ], + "summary": "Check for backup errors without starting backup.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.backup_validate" + } + } + ], + "responses": { + "200": { + "description": "ReturnResult Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.backup.validate_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1backup?action=validate/post" + } + } + }, + "/rest/appliance/recovery/reconciliation/job": { + "get": { + "tags": [ + "recovery/reconciliation/job" + ], + "summary": "Get reconciliation job progress/result.", + "parameters": [], + "responses": { + "200": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job_resp" + } + }, + "404": { + "description": "if there is no running reconciliation job.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1reconciliation~1job/get" + } + }, + "post": { + "tags": [ + "recovery/reconciliation/job" + ], + "summary": "Initiate reconciliation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job_create" + } + } + ], + "responses": { + "200": { + "description": "Info Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job.create_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1reconciliation~1job/post" + } + } + }, + "/rest/appliance/recovery/restore/job": { + "get": { + "tags": [ + "recovery/restore/job" + ], + "summary": "See restore job progress/result.", + "parameters": [], + "responses": { + "200": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.restore.job_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1restore~1job/get" + } + }, + "post": { + "tags": [ + "recovery/restore/job" + ], + "summary": "Initiate restore.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.restore.job_create" + } + } + ], + "responses": { + "200": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.restore.job.create_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1restore~1job/post" + } + } + }, + "/rest/appliance/recovery/restore/job/cancel": { + "post": { + "tags": [ + "recovery/restore/job" + ], + "summary": "Cancel the restore job", + "parameters": [], + "responses": { + "200": { + "description": "RestoreJobStatus Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.restore.job.cancel_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1restore~1job?action=cancel/post" + } + } + }, + "/rest/appliance/recovery/restore/validate": { + "post": { + "tags": [ + "recovery/restore" + ], + "summary": "Get metadata before restore", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.recovery.restore_validate" + } + } + ], + "responses": { + "200": { + "description": "Metadata Structure", + "schema": { + "$ref": "#/definitions/appliance.recovery.restore.validate_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1recovery~1restore?action=validate/post" + } + } + }, + "/rest/appliance/services": { + "get": { + "tags": [ + "services" + ], + "summary": "Lists details of vCenter services.", + "parameters": [], + "responses": { + "200": { + "description": "Map of service identifiers to service Info structures.\nThe key in the result map will be an identifier for the resource type: appliance.services.", + "schema": { + "$ref": "#/definitions/appliance.services.list_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1services/get" + } + } + }, + "/rest/appliance/services/{service}": { + "get": { + "tags": [ + "services" + ], + "summary": "Returns the state of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose state is being queried.\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "200": { + "description": "Service Info structure.", + "schema": { + "$ref": "#/definitions/appliance.services_resp" + } + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1services~1{service}/get" + } + } + }, + "/rest/appliance/services/{service}/restart": { + "post": { + "tags": [ + "services" + ], + "summary": "Restarts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to restart\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the restart operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "restart", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1services~1{service}?action=restart/post" + } + } + }, + "/rest/appliance/services/{service}/start": { + "post": { + "tags": [ + "services" + ], + "summary": "Starts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to start\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the start operation. Timeout occurs when the service takes longer than StartTimeout to start.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1services~1{service}?action=start/post" + } + } + }, + "/rest/appliance/services/{service}/stop": { + "post": { + "tags": [ + "services" + ], + "summary": "Stops a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to stop\nThe parameter must be an identifier for the resource type: appliance.services." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop operation is in progress, issuing another stop operation will lead to this error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1services~1{service}?action=stop/post" + } + } + }, + "/rest/appliance/shutdown": { + "get": { + "tags": [ + "shutdown" + ], + "summary": "Get details about the pending shutdown action.", + "parameters": [], + "responses": { + "200": { + "description": "Configuration of pending shutdown action.", + "schema": { + "$ref": "#/definitions/appliance.shutdown_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1shutdown/get" + } + } + }, + "/rest/appliance/shutdown/cancel": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Cancel pending shutdown action.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1shutdown?action=cancel/post" + } + } + }, + "/rest/appliance/shutdown/poweroff": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Power off the appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.shutdown_poweroff" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "poweroff", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1shutdown?action=poweroff/post" + } + } + }, + "/rest/appliance/shutdown/reboot": { + "post": { + "tags": [ + "shutdown" + ], + "summary": "Reboot the appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.shutdown_reboot" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "reboot", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1shutdown?action=reboot/post" + } + } + }, + "/rest/appliance/system/storage": { + "get": { + "tags": [ + "system/storage" + ], + "summary": "Get disk to partition mapping.", + "parameters": [], + "responses": { + "200": { + "description": "list of mapping items", + "schema": { + "$ref": "#/definitions/appliance.system.storage.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1storage/get" + } + } + }, + "/rest/appliance/system/storage/resize": { + "post": { + "tags": [ + "system/storage" + ], + "summary": "Resize all partitions to 100 percent of disk size.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "resize", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1storage?action=resize/post" + } + } + }, + "/rest/appliance/system/storage?action=resize-ex": { + "post": { + "tags": [ + "system/storage" + ], + "summary": "Resize all partitions to 100 percent of disk size.", + "parameters": [], + "responses": { + "200": { + "description": "List of the partitions with the size before and after resizing", + "schema": { + "$ref": "#/definitions/appliance.system.storage.resize_ex_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "resize_ex", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1storage?action=resize-ex/post" + } + } + }, + "/rest/appliance/system/time": { + "get": { + "tags": [ + "system/time" + ], + "summary": "Get system time.", + "parameters": [], + "responses": { + "200": { + "description": "System time", + "schema": { + "$ref": "#/definitions/appliance.system.time_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1time/get" + } + } + }, + "/rest/appliance/system/time/timezone": { + "put": { + "tags": [ + "system/time/timezone" + ], + "summary": "Set time zone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.system.time.timezone_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1time~1timezone/put" + } + }, + "get": { + "tags": [ + "system/time/timezone" + ], + "summary": "Get time zone.", + "parameters": [], + "responses": { + "200": { + "description": "Time zone name.", + "schema": { + "$ref": "#/definitions/appliance.system.time.timezone_resp" + } + }, + "400": { + "description": "if timezone cannot be read.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1time~1timezone/get" + } + } + }, + "/rest/appliance/system/uptime": { + "get": { + "tags": [ + "system/uptime" + ], + "summary": "Get the system uptime.", + "parameters": [], + "responses": { + "200": { + "description": "system uptime", + "schema": { + "$ref": "#/definitions/appliance.system.uptime_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1uptime/get" + } + } + }, + "/rest/appliance/system/version": { + "get": { + "tags": [ + "system/version" + ], + "summary": "Get the version.", + "parameters": [], + "responses": { + "200": { + "description": "version information about the appliance", + "schema": { + "$ref": "#/definitions/appliance.system.version_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1system~1version/get" + } + } + }, + "/rest/appliance/timesync": { + "put": { + "tags": [ + "timesync" + ], + "summary": "Set time synchronization mode.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.timesync_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1timesync/put" + } + }, + "get": { + "tags": [ + "timesync" + ], + "summary": "Get time synchronization mode.", + "parameters": [], + "responses": { + "200": { + "description": "Time synchronization mode.", + "schema": { + "$ref": "#/definitions/appliance.timesync_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1timesync/get" + } + } + }, + "/rest/appliance/update": { + "get": { + "tags": [ + "update" + ], + "summary": "Gets the current status of the appliance update.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the appliance.", + "schema": { + "$ref": "#/definitions/appliance.update_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update/get" + } + } + }, + "/rest/appliance/update/pending": { + "get": { + "tags": [ + "update/pending" + ], + "summary": "Checks if there are any eligible updates.", + "parameters": [ + { + "in": "query", + "name": "source_type", + "description": "The Pending.SourceType enumerated type defines the supported types of sources of updates.", + "type": "string", + "enum": [ + "LAST_CHECK", + "LOCAL", + "LOCAL_AND_ONLINE" + ], + "required": true + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "url", + "description": "specific URL to check at\nIf unset then URL is taken from the policy settings" + }, + { + "required": false, + "type": "boolean", + "in": "query", + "name": "enable_list_major_upgrade_versions", + "description": "checks and lists if there are eligible major version upgrades available. Possible values are true and false\nwhen set to true it allows listing of across version upgrade When not specified lists only minor updates available" + } + ], + "responses": { + "200": { + "description": "List of the update summaries", + "schema": { + "$ref": "#/definitions/appliance.update.pending.list_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "source is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending/get" + } + } + }, + "/rest/appliance/update/pending/{version}": { + "get": { + "tags": [ + "update/pending" + ], + "summary": "Gets update information", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "200": { + "description": "Update", + "schema": { + "$ref": "#/definitions/appliance.update.pending_resp" + } + }, + "400": { + "description": "if the update of this version is already installed", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_in_desired_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}/get" + } + } + }, + "/rest/appliance/update/pending/{version}?action=install": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts operation of installing the appliance update. Will fail is the update is not staged", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.update.pending_install" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if appliance update state prevents running an update or not staged", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "install", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}?action=install/post" + } + } + }, + "/rest/appliance/update/pending/{version}?action=precheck": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Runs update precheck", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "200": { + "description": "PrecheckResult", + "schema": { + "$ref": "#/definitions/appliance.update.pending.precheck_resp" + } + }, + "400": { + "description": "if another operation is in progress", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "precheck", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}?action=precheck/post" + } + } + }, + "/rest/appliance/update/pending/{version}?action=stage": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts staging the appliance update. The updates are searched for in the following order: staged, CDROM, URL", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if appliance update state prevents staging", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "stage", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}?action=stage/post" + } + } + }, + "/rest/appliance/update/pending/{version}?action=stage-and-install": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Starts operation of installing the appliance update. Will stage update if not already staged The updates are searched for in the following order: staged, CDROM, URL", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.update.pending_stage_and_install" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if appliance update state prevents running an update", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "stage_and_install", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}?action=stage-and-install/post" + } + } + }, + "/rest/appliance/update/pending/{version}?action=validate": { + "post": { + "tags": [ + "update/pending" + ], + "summary": "Validates the user provided data before the update installation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Update version\nThe parameter must be an identifier for the resource type: appliance.update.pending." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.update.pending_validate" + } + } + ], + "responses": { + "200": { + "description": "Issues struct with the issues found during the validation", + "schema": { + "$ref": "#/definitions/appliance.update.pending.validate_resp" + } + }, + "400": { + "description": "if appliance update state prevents running an check", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if the update is not found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1pending~1{version}?action=validate/post" + } + } + }, + "/rest/appliance/update/policy": { + "put": { + "tags": [ + "update/policy" + ], + "summary": "Sets the automatic update checking and staging policy.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.update.policy_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1policy/put" + } + }, + "get": { + "tags": [ + "update/policy" + ], + "summary": "Gets the automatic update checking and staging policy.", + "parameters": [], + "responses": { + "200": { + "description": "Structure containing the policy for the appliance update.", + "schema": { + "$ref": "#/definitions/appliance.update.policy_resp" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1policy/get" + } + } + }, + "/rest/appliance/update/staged": { + "get": { + "tags": [ + "update/staged" + ], + "summary": "Gets the current status of the staged update", + "parameters": [], + "responses": { + "200": { + "description": "Info structure with information about staged update", + "schema": { + "$ref": "#/definitions/appliance.update.staged_resp" + } + }, + "400": { + "description": "if nothing is staged", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1staged/get" + } + }, + "delete": { + "tags": [ + "update/staged" + ], + "summary": "Deletes the staged update", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update~1staged/delete" + } + } + }, + "/rest/appliance/update?action=cancel": { + "post": { + "tags": [ + "update" + ], + "summary": "Request the cancellation the update operation that is currently in progress.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Current task is not cancellable", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "session is not authenticated", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "session is not authorized to perform this operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_appliance.json#/paths/~1api~1appliance~1update?action=cancel/post" + } + } + }, + "/rest/appliance/vmon/service": { + "get": { + "tags": [ + "vmon/service" + ], + "summary": "Lists details of services managed by vMon.", + "parameters": [], + "responses": { + "200": { + "description": "Map of service identifiers to service Info structures.\nThe key in the result map will be an identifier for the resource type: appliance.vmon.Service.", + "schema": { + "$ref": "#/definitions/appliance.vmon.service.list_details_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list_details", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/appliance/vmon/service/{service}": { + "get": { + "tags": [ + "vmon/service" + ], + "summary": "Returns the state of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose state is being queried.\nThe parameter must be an identifier for the resource type: appliance.vmon.Service." + } + ], + "responses": { + "200": { + "description": "Service Info structure.", + "schema": { + "$ref": "#/definitions/appliance.vmon.service_resp" + } + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vmon/service" + ], + "summary": "Updates the properties of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose properties are being updated.\nThe parameter must be an identifier for the resource type: appliance.vmon.Service." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/appliance.vmon.service_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a start, stop or restart operation is in progress, update operation will fail with this error.\nif a request to set the Service.UpdateSpec.startup-type field of spec to DISABLED comes in for a service that is not in STOPPED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/appliance/vmon/service/{service}/restart": { + "post": { + "tags": [ + "vmon/service" + ], + "summary": "Restarts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to restart\nThe parameter must be an identifier for the resource type: appliance.vmon.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the restart operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "restart", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/appliance/vmon/service/{service}/start": { + "post": { + "tags": [ + "vmon/service" + ], + "summary": "Starts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to start\nThe parameter must be an identifier for the resource type: appliance.vmon.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the start operation. Timeout occurs when the service takes longer than StartTimeout to start.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/appliance/vmon/service/{service}/stop": { + "post": { + "tags": [ + "vmon/service" + ], + "summary": "Stops a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to stop\nThe parameter must be an identifier for the resource type: appliance.vmon.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop operation is in progress, issuing another stop operation will lead to this error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ] + } + } + }, + "definitions": { + "ApplianceAccessConsolecliSet": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Console-based controlled CLI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceAccessDcuiSet": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "DCUI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceAccessShellSet": { + "$ref": "#/definitions/ApplianceAccessShellShellConfig", + "description": "Shell configuration" + }, + "ApplianceAccessShellShellConfig": { + "type": "object", + "properties": { + "enabled": { + "description": "Enabled can be set to true or false", + "type": "boolean" + }, + "timeout": { + "description": "The timeout (in seconds) specifies how long you enable the Shell access. The maximum timeout is 86400 seconds(1 day).", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled", + "timeout" + ] + }, + "ApplianceAccessSshSet": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "SSH-based controlled CLI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceHealthCheckSettingsSettingSpec": { + "type": "object", + "properties": { + "db_health_check_state_manual_backup": { + "description": "Health check state of database during manual backup with this option set, the health status of the particular health check will be reported", + "type": "boolean" + }, + "db_health_check_state_scheduled_backup": { + "description": "Health check state of database during schedule backup with this option set, the health status of the particular health check will be reported", + "type": "boolean" + } + }, + "required": [ + "db_health_check_state_manual_backup", + "db_health_check_state_scheduled_backup" + ] + }, + "ApplianceHealthCheckSettingsUpdate": { + "$ref": "#/definitions/ApplianceHealthCheckSettingsUpdateSpec", + "description": "" + }, + "ApplianceHealthCheckSettingsUpdateSpec": { + "type": "object", + "properties": { + "db_health_check_state_manual_backup": { + "description": "Health check state of database during manual backup with this option set, the health status of the particular health check will be enabled\nIf unset the current state will remain unchanged.", + "type": "boolean" + }, + "db_health_check_state_scheduled_backup": { + "description": "Health check state of database during schedule backup with this option set, the health status of the particular health check will be enabled\nIf unset the current state will remain unchanged.", + "type": "boolean" + } + } + }, + "ApplianceHealthDatabaseInfo": { + "type": "object", + "properties": { + "status": { + "description": "Database health status", + "$ref": "#/definitions/ApplianceHealthDatabaseInfoStatus" + }, + "messages": { + "description": "Messages describing any issues with the database, along with their severity.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceHealthDatabaseMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceHealthDatabaseInfoStatus": { + "type": "string", + "description": "The Database.Info.Status enumerated type describes the health of the database.", + "enum": [ + "UNHEALTHY", + "DEGRADED", + "HEALTHY" + ] + }, + "ApplianceHealthDatabaseMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Severity of the message.", + "$ref": "#/definitions/ApplianceHealthDatabaseMessageSeverity" + }, + "message": { + "description": "Message describing the issue with the database.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity", + "message" + ] + }, + "ApplianceHealthDatabaseMessageSeverity": { + "type": "string", + "description": "The MessageSeverity enumerated type defines the levels of severity for a message.", + "enum": [ + "ERROR", + "WARNING" + ] + }, + "ApplianceHealthDatabasestorageHealthLevel": { + "type": "string", + "description": "Databasestorage.HealthLevel enumerated type Defines service health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthLoadHealthLevel": { + "type": "string", + "description": "Load.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthMemHealthLevel": { + "type": "string", + "description": "Mem.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthSoftwarepackagesHealthLevel": { + "type": "string", + "description": "Softwarepackages.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthStorageHealthLevel": { + "type": "string", + "description": "Storage.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthSwapHealthLevel": { + "type": "string", + "description": "Swap.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceHealthSystemHealthLevel": { + "type": "string", + "description": "System.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "ApplianceInfraprofileConfigsExport": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsProfilesSpec", + "description": "information to export the profile." + }, + "ApplianceInfraprofileConfigsImportProfileSpec": { + "type": "object", + "properties": { + "config_spec": { + "description": "The JSON string representing the desired config specification.", + "type": "string" + }, + "profile_spec": { + "description": "The profile specification, if any\nonly set if there is a profilespec avaliable for this import profilespec.", + "$ref": "#/definitions/ApplianceInfraprofileConfigsProfilesSpec" + } + }, + "required": [ + "config_spec" + ] + }, + "ApplianceInfraprofileConfigsImportProfileTask": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsImportProfileSpec", + "description": "information to import the profile." + }, + "ApplianceInfraprofileConfigsProfileInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the profile which is also a profile identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: infraprofile.profile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: infraprofile.profile.", + "type": "string" + }, + "info": { + "description": "Description of the profile.", + "type": "string" + } + }, + "required": [ + "name", + "info" + ] + }, + "ApplianceInfraprofileConfigsProfilesSpec": { + "type": "object", + "properties": { + "encryption_key": { + "description": "Encryption Key to encrypt/decrypt profiles.\nIf unset encryption will not be used for the profile.", + "type": "string", + "format": "password" + }, + "description": { + "description": "Custom description provided by the user.\nIf unset description will be empty.", + "type": "string" + }, + "profiles": { + "description": "Profiles to be exported/imported.\nIf unset or empty, all profiles will be returned.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: infraprofile.profile. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: infraprofile.profile.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "ApplianceInfraprofileConfigsValidateTask": { + "$ref": "#/definitions/ApplianceInfraprofileConfigsImportProfileSpec", + "description": "information to validate the profile." + }, + "ApplianceLocalAccountsConfig": { + "type": "object", + "properties": { + "password": { + "description": "Password", + "type": "string", + "format": "password" + }, + "old_password": { + "description": "Old password of the user (required in case of the password change, not required if superAdmin user changes the password of the other user)\nIf unset, user may not have password set.", + "type": "string", + "format": "password" + }, + "full_name": { + "description": "Full name of the user\nIf unset, user will have no fullname.", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, user will have no email.", + "type": "string" + }, + "roles": { + "description": "User roles\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled\nIf unset, defaults to True", + "type": "boolean" + }, + "password_expires": { + "description": "Flag indicating if the account password expires\nIf unset, defaults to True.", + "type": "boolean" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "string", + "format": "date-time" + }, + "inactive_after_password_expiration": { + "description": "Flag indicating if the account will be locked after password expiration\nIf unset, defaults to True.", + "type": "boolean" + }, + "days_after_password_expiration": { + "description": "Number of days after password expiration before the account will be locked\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "password", + "roles" + ] + }, + "ApplianceLocalAccountsCreate": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "User login name\nThe parameter must be an identifier for the resource type: appliance.local_accounts." + }, + "config": { + "$ref": "#/definitions/ApplianceLocalAccountsConfig", + "description": "User configuration" + } + }, + "required": [ + "username", + "config" + ] + }, + "ApplianceLocalAccountsInfo": { + "type": "object", + "properties": { + "fullname": { + "description": "Full name of the user\nIf unset, the value was never set.", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, the value was never set.", + "type": "string" + }, + "roles": { + "description": "User roles\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled", + "type": "boolean" + }, + "has_password": { + "description": "Is the user password set.", + "type": "boolean" + }, + "last_password_change": { + "description": "Date and time password was changed.\nIf unset, the password was never set.", + "type": "string", + "format": "date-time" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, the password never expires.", + "type": "string", + "format": "date-time" + }, + "inactive_at": { + "description": "Date and time account will be locked after password expiration.\nIf unset, account will not be locked.", + "type": "string", + "format": "date-time" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, pasword can be changed any time.", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, password never expires.", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, a user is never warned.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "roles", + "enabled", + "has_password" + ] + }, + "ApplianceLocalAccountsPolicyInfo": { + "type": "object", + "properties": { + "max_days": { + "description": "Maximum number of days a password may be used. If the password is older than this, a password change will be forced.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "min_days": { + "description": "Minimum number of days allowed between password changes. Any password changes attempted sooner than this will be rejected.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "warn_days": { + "description": "Number of days warning given before a password expires. A zero means warning is given only upon the day of expiration.\nIf unset then no warning will be provided.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceLocalAccountsPolicySet": { + "$ref": "#/definitions/ApplianceLocalAccountsPolicyInfo", + "description": "Global password policy" + }, + "ApplianceLocalAccountsSet": { + "$ref": "#/definitions/ApplianceLocalAccountsConfig", + "description": "User configuration" + }, + "ApplianceLocalAccountsUpdate": { + "$ref": "#/definitions/ApplianceLocalAccountsUpdateConfig", + "description": "User configuration" + }, + "ApplianceLocalAccountsUpdateConfig": { + "type": "object", + "properties": { + "password": { + "description": "Password\nIf unset, value will not be changed", + "type": "string", + "format": "password" + }, + "old_password": { + "description": "Old password of the user (required in case of the password change, not required if superAdmin user changes the password of the other user)\nIf unset, user may not have password set.", + "type": "string", + "format": "password" + }, + "full_name": { + "description": "Full name of the user\nIf unset, value will not be changed", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, value will not be changed", + "type": "string" + }, + "roles": { + "description": "User roles\nIf unset, value will not be changed\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled\nIf unset, value will not be changed", + "type": "boolean" + }, + "password_expires": { + "description": "Flag indicating if the account password expires\nIf unset, value will not be changed", + "type": "boolean" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, value will not be changed", + "type": "string", + "format": "date-time" + }, + "inactive_after_password_expiration": { + "description": "Flag indicating if the account will be locked after password expiration\nIf unset, value will not be changed", + "type": "boolean" + }, + "days_after_password_expiration": { + "description": "Number of days after password expiration before the account will be locked\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceLoggingForwardingConfig": { + "type": "object", + "properties": { + "hostname": { + "description": "FQDN or IP address of the logging server to which messages are forwarded.", + "type": "string" + }, + "port": { + "description": "The port on which the remote logging server is listening for forwarded log messages.", + "type": "integer", + "format": "int64" + }, + "protocol": { + "description": "Transport protocol used to forward log messages.", + "$ref": "#/definitions/ApplianceLoggingForwardingProtocol" + } + }, + "required": [ + "hostname", + "port", + "protocol" + ] + }, + "ApplianceLoggingForwardingConnectionStatus": { + "type": "object", + "properties": { + "hostname": { + "description": "FQDN or IP address of the configured remote logging servers.", + "type": "string" + }, + "state": { + "description": "State of the configured remote logging server.", + "$ref": "#/definitions/ApplianceLoggingForwardingConnectionStatusState" + }, + "message": { + "description": "Message associated with the state of the configured remote logging server.\nIf unset, there is no message to be shown.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "hostname", + "state" + ] + }, + "ApplianceLoggingForwardingConnectionStatusState": { + "type": "string", + "description": "The Forwarding.ConnectionStatus.State enumerated type defines the state values that a remote logging server can be in.", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ] + }, + "ApplianceLoggingForwardingProtocol": { + "type": "string", + "description": "The Forwarding.Protocol enumerated type defines transport protocols for outbound log messages.", + "enum": [ + "TLS", + "UDP", + "TCP" + ] + }, + "ApplianceLoggingForwardingSet": { + "type": "object", + "properties": { + "cfg_list": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceLoggingForwardingConfig" + }, + "description": "The cfgList is a list of Config structure that contains the log message forwarding rules in terms of the host, port, protocol of the log message." + } + }, + "required": [ + "cfg_list" + ] + }, + "ApplianceLoggingForwardingTest": { + "type": "object", + "properties": { + "send_test_message": { + "type": "boolean", + "description": "Flag specifying whether a default test message should be sent to the configured logging servers.\nIf unset, no test message will be sent to the configured remote logging servers." + } + } + }, + "ApplianceMonitoringFunctionType": { + "type": "string", + "description": "Monitoring.FunctionType enumerated type Defines aggregation function", + "enum": [ + "COUNT", + "MAX", + "AVG", + "MIN" + ] + }, + "ApplianceMonitoringIntervalType": { + "type": "string", + "description": "Monitoring.IntervalType enumerated type Defines interval between the values in hours and mins, for which aggregation will apply", + "enum": [ + "MINUTES30", + "HOURS2", + "MINUTES5", + "DAY1", + "HOURS6" + ] + }, + "ApplianceMonitoringMonitoredItem": { + "type": "object", + "properties": { + "id": { + "description": "monitored item ID Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.monitoring.", + "type": "string" + }, + "name": { + "description": "monitored item name Ex: \"Network write speed\"", + "type": "string" + }, + "units": { + "description": "Y-axis label EX: \"Mbps\", \"%\"", + "type": "string" + }, + "category": { + "description": "category Ex: network, storage etc", + "type": "string" + }, + "instance": { + "description": "instance name Ex: eth0", + "type": "string" + }, + "description": { + "description": "monitored item description Ex: applmgmt.mon.descr.net.rx.packetRate.eth0", + "type": "string" + } + }, + "required": [ + "id", + "name", + "units", + "category", + "instance", + "description" + ] + }, + "ApplianceMonitoringMonitoredItemData": { + "type": "object", + "properties": { + "name": { + "description": "Monitored item IDs Ex: CPU, MEMORY, STORAGE_TOTAL\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.monitoring.", + "type": "string" + }, + "interval": { + "description": "interval between values in hours, minutes", + "$ref": "#/definitions/ApplianceMonitoringIntervalType" + }, + "function": { + "description": "aggregation function", + "$ref": "#/definitions/ApplianceMonitoringFunctionType" + }, + "start_time": { + "description": "Start time in UTC", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "End time in UTC", + "type": "string", + "format": "date-time" + }, + "data": { + "description": "list of values", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "interval", + "function", + "start_time", + "end_time", + "data" + ] + }, + "ApplianceMonitoringMonitoredItemDataRequest": { + "type": "object", + "properties": { + "names": { + "description": "monitored item IDs Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.monitoring.", + "type": "array", + "items": { + "type": "string" + } + }, + "interval": { + "description": "interval between values in hours, minutes", + "$ref": "#/definitions/ApplianceMonitoringIntervalType" + }, + "function": { + "description": "aggregation function", + "$ref": "#/definitions/ApplianceMonitoringFunctionType" + }, + "start_time": { + "description": "Start time in UTC", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "End time in UTC", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "names", + "interval", + "function", + "start_time", + "end_time" + ] + }, + "ApplianceNetworkingChangeSpec": { + "type": "object", + "properties": { + "hostname": { + "description": "New hostname to assign to the management network of vCenter appliance", + "type": "string" + }, + "SSO_user": { + "description": "vCenter Server SSO administrator username", + "type": "string" + }, + "SSO_password": { + "description": "vCenter Server SSO administrator Password", + "type": "string", + "format": "password" + }, + "dns": { + "description": "DNS Configuration to set for the machine\nIf unset DNS settings will not be changed", + "$ref": "#/definitions/ApplianceNetworkingDnsServersDNSServerConfig" + }, + "ipv4": { + "description": "IPv4 Configuration to set for the machine\nIf unset IPv4 settings will not be changed", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Config" + }, + "ipv6": { + "description": "IPv6 Configuration to set for the machine\nIf unset IPv6 settings will not be changed", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Config" + } + }, + "required": [ + "hostname", + "SSO_user", + "SSO_password" + ] + }, + "ApplianceNetworkingChangeTask": { + "$ref": "#/definitions/ApplianceNetworkingChangeSpec", + "description": "Information required to change the hostname." + }, + "ApplianceNetworkingDNSInfo": { + "type": "object", + "properties": { + "mode": { + "description": "DNS mode.", + "$ref": "#/definitions/ApplianceNetworkingDNSInfoDNSMode" + }, + "hostname": { + "description": "Hostname.", + "type": "string" + }, + "servers": { + "description": "Servers.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "mode", + "hostname", + "servers" + ] + }, + "ApplianceNetworkingDNSInfoDNSMode": { + "type": "string", + "description": "The Networking.DnsInfo.DnsMode enumerated type describes the source of DNS servers.", + "enum": [ + "DHCP", + "STATIC" + ] + }, + "ApplianceNetworkingDnsDomainsAdd": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain to add." + } + }, + "required": [ + "domain" + ] + }, + "ApplianceNetworkingDnsDomainsSet": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of domains." + } + }, + "required": [ + "domains" + ] + }, + "ApplianceNetworkingDnsHostnameMessage": { + "type": "object", + "properties": { + "message": { + "description": "message", + "type": "string" + }, + "result": { + "description": "result of the test", + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameMessageStatus" + } + }, + "required": [ + "message", + "result" + ] + }, + "ApplianceNetworkingDnsHostnameMessageStatus": { + "type": "string", + "description": "Hostname.MessageStatus enumerated type Individual test result", + "enum": [ + "failure", + "success" + ] + }, + "ApplianceNetworkingDnsHostnameSet": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "FQDN." + } + }, + "required": [ + "name" + ] + }, + "ApplianceNetworkingDnsHostnameTest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "FQDN." + } + }, + "required": [ + "name" + ] + }, + "ApplianceNetworkingDnsHostnameTestStatus": { + "type": "string", + "description": "Hostname.TestStatus enumerated type Health indicator", + "enum": [ + "orange", + "green", + "red" + ] + }, + "ApplianceNetworkingDnsHostnameTestStatusInfo": { + "type": "object", + "properties": { + "status": { + "description": "Overall status of tests run.", + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameTestStatus" + }, + "messages": { + "description": "messages", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingDnsHostnameMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceNetworkingDnsServersAdd": { + "type": "object", + "properties": { + "server": { + "type": "string", + "description": "DNS server." + } + }, + "required": [ + "server" + ] + }, + "ApplianceNetworkingDnsServersDNSServerConfig": { + "type": "object", + "properties": { + "mode": { + "description": "Define how to determine the DNS servers. Leave the servers argument empty if the mode argument is \"DHCP\". Set the servers argument to a comma-separated list of DNS servers if the mode argument is \"static\". The DNS server are assigned from the specified list.", + "$ref": "#/definitions/ApplianceNetworkingDnsServersDNSServerMode" + }, + "servers": { + "description": "List of the currently used DNS servers.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "mode", + "servers" + ] + }, + "ApplianceNetworkingDnsServersDNSServerMode": { + "type": "string", + "description": "Servers.DNSServerMode enumerated type Describes DNS Server source (DHCP,static)", + "enum": [ + "dhcp", + "is_static" + ] + }, + "ApplianceNetworkingDnsServersMessage": { + "type": "object", + "properties": { + "message": { + "description": "message", + "type": "string" + }, + "result": { + "description": "result of the test", + "$ref": "#/definitions/ApplianceNetworkingDnsServersMessageStatus" + } + }, + "required": [ + "message", + "result" + ] + }, + "ApplianceNetworkingDnsServersMessageStatus": { + "type": "string", + "description": "Servers.MessageStatus enumerated type Individual test result", + "enum": [ + "failure", + "success" + ] + }, + "ApplianceNetworkingDnsServersSet": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersDNSServerConfig", + "description": "DNS server configuration." + }, + "ApplianceNetworkingDnsServersTest": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "DNS servers." + } + }, + "required": [ + "servers" + ] + }, + "ApplianceNetworkingDnsServersTestStatus": { + "type": "string", + "description": "Servers.TestStatus enumerated type Health indicator", + "enum": [ + "orange", + "green", + "red" + ] + }, + "ApplianceNetworkingDnsServersTestStatusInfo": { + "type": "object", + "properties": { + "status": { + "description": "Overall status of tests run.", + "$ref": "#/definitions/ApplianceNetworkingDnsServersTestStatus" + }, + "messages": { + "description": "messages", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingDnsServersMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceNetworkingFirewallInboundPolicy": { + "type": "string", + "description": "Inbound.Policy enumerated type Defines firewall rule policies.", + "enum": [ + "IGNORE", + "ACCEPT", + "REJECT", + "RETURN" + ] + }, + "ApplianceNetworkingFirewallInboundRule": { + "type": "object", + "properties": { + "address": { + "description": "IPv4 or IPv6 address.", + "type": "string" + }, + "prefix": { + "description": "CIDR prefix used to mask address. For example, an IPv4 prefix of 24 ignores the low-order 8 bits of address.", + "type": "integer", + "format": "int64" + }, + "policy": { + "description": "The allow or deny policy of this rule.", + "$ref": "#/definitions/ApplianceNetworkingFirewallInboundPolicy" + }, + "interface_name": { + "description": "The interface to which this rule applies. An empty string indicates that the rule applies to all interfaces.", + "type": "string" + } + }, + "required": [ + "address", + "prefix", + "policy" + ] + }, + "ApplianceNetworkingFirewallInboundSet": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingFirewallInboundRule" + }, + "description": "List of address-based firewall rules." + } + }, + "required": [ + "rules" + ] + }, + "ApplianceNetworkingInfo": { + "type": "object", + "properties": { + "dns": { + "description": "DNS configuration.", + "$ref": "#/definitions/ApplianceNetworkingDNSInfo" + }, + "interfaces": { + "description": "Interface configuration as a key-value map where key is a network interface name, for example, \"nic0\".\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: appliance.networking.interfaces. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: appliance.networking.interfaces.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesInterfaceInfo" + } + } + }, + "required": [ + "dns", + "interfaces" + ] + }, + "ApplianceNetworkingInterfacesInterfaceInfo": { + "type": "object", + "properties": { + "name": { + "description": "Interface name, for example, \"nic0\", \"nic1\".", + "type": "string" + }, + "status": { + "description": "Interface status.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesInterfaceStatus" + }, + "mac": { + "description": "MAC address. For example 00:0C:29:94:BB:5A.", + "type": "string" + }, + "ipv4": { + "description": "IPv4 Address information.\nipv4 This field will be unset if IPv4 is not enabled.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Info" + }, + "ipv6": { + "description": "IPv6 Address information.\nipv6 This field will be unset if IPv6 is not enabled.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Info" + } + }, + "required": [ + "name", + "status", + "mac" + ] + }, + "ApplianceNetworkingInterfacesInterfaceStatus": { + "type": "string", + "description": "Interfaces.InterfaceStatus enumerated type Defines interface status", + "enum": [ + "down", + "up" + ] + }, + "ApplianceNetworkingInterfacesIpv4Config": { + "type": "object", + "properties": { + "mode": { + "description": "The Address assignment mode.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Mode" + }, + "address": { + "description": "The IPv4 address, for example, \"10.20.80.191\".\nThis field is optional and it is only relevant when the value of Ipv4.Config.mode is STATIC.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.Config.mode is STATIC.", + "type": "integer", + "format": "int64" + }, + "default_gateway": { + "description": "The IPv4 address of the default gateway. This configures the global default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.\nIf unset, the defaultGateway was never set.", + "type": "string" + } + }, + "required": [ + "mode" + ] + }, + "ApplianceNetworkingInterfacesIpv4Info": { + "type": "object", + "properties": { + "configurable": { + "description": "The specified network interface is configurable or not.", + "type": "boolean" + }, + "mode": { + "description": "The Address assignment mode.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Mode" + }, + "address": { + "description": "The IPv4 address, for example, \"10.20.80.191\".\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "integer", + "format": "int64" + }, + "default_gateway": { + "description": "The IPv4 address of the default gateway. This configures the global default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "string" + } + }, + "required": [ + "configurable", + "mode" + ] + }, + "ApplianceNetworkingInterfacesIpv4Mode": { + "type": "string", + "description": "The Ipv4.Mode enumerated type defines different IPv4 address assignment modes.", + "enum": [ + "DHCP", + "STATIC", + "UNCONFIGURED" + ] + }, + "ApplianceNetworkingInterfacesIpv4Set": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv4Config", + "description": "The IPv4 Network configuration to set." + }, + "ApplianceNetworkingInterfacesIpv6Address": { + "type": "object", + "properties": { + "address": { + "description": "The IPv6 address, for example, fc00:10:20:83:20c:29ff:fe94:bb5a.", + "type": "string" + }, + "prefix": { + "description": "The IPv6 CIDR prefix, for example, 64.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "ApplianceNetworkingInterfacesIpv6AddressInfo": { + "type": "object", + "properties": { + "origin": { + "description": "The Origin of the IPv6 address. For more information, see RFC 4293.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Origin" + }, + "status": { + "description": "The Status of the IPv6 address. For more information, see RFC 4293.", + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Status" + }, + "address": { + "description": "The IPv6 address, for example, fc00:10:20:83:20c:29ff:fe94:bb5a.", + "type": "string" + }, + "prefix": { + "description": "The IPv6 CIDR prefix, for example, 64.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "origin", + "status", + "address", + "prefix" + ] + }, + "ApplianceNetworkingInterfacesIpv6Config": { + "type": "object", + "properties": { + "dhcp": { + "description": "An address will be assigned by a DHCP server.", + "type": "boolean" + }, + "autoconf": { + "description": "An address will be assigned by Stateless Address Autoconfiguration (SLAAC).", + "type": "boolean" + }, + "addresses": { + "description": "The list of addresses to be statically assigned.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Address" + } + }, + "default_gateway": { + "description": "The default gateway for static IP address assignment. This configures the global IPv6 default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.", + "type": "string" + } + }, + "required": [ + "dhcp", + "autoconf", + "addresses", + "default_gateway" + ] + }, + "ApplianceNetworkingInterfacesIpv6Info": { + "type": "object", + "properties": { + "dhcp": { + "description": "DHCP is on.", + "type": "boolean" + }, + "autoconf": { + "description": "Stateless Address Autoconfiguration (SLAAC) is on.", + "type": "boolean" + }, + "addresses": { + "description": "List of addresses with their origins and statuses.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6AddressInfo" + } + }, + "default_gateway": { + "description": "The default gateway for static IP address assignment. This configures the global IPv6 default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.", + "type": "string" + }, + "configurable": { + "description": "Is NIC configurable or not.", + "type": "boolean" + } + }, + "required": [ + "dhcp", + "autoconf", + "addresses", + "default_gateway", + "configurable" + ] + }, + "ApplianceNetworkingInterfacesIpv6Origin": { + "type": "string", + "description": "The Ipv6.Origin enumerated type defines IPv6 address origin values.", + "enum": [ + "DHCP", + "RANDOM", + "MANUAL", + "LINKLAYER", + "OTHER" + ] + }, + "ApplianceNetworkingInterfacesIpv6Set": { + "$ref": "#/definitions/ApplianceNetworkingInterfacesIpv6Config", + "description": "The IPv6 configuration." + }, + "ApplianceNetworkingInterfacesIpv6Status": { + "type": "string", + "description": "The Ipv6.Status enumerated type defines IPv6 address status values. See RFC 4293.", + "enum": [ + "TENTATIVE", + "UNKNOWN", + "INACCESSIBLE", + "INVALID", + "DUPLICATE", + "PREFERRED", + "DEPRECATED", + "OPTIMISTIC" + ] + }, + "ApplianceNetworkingNoProxySet": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of strings representing servers to bypass proxy. A server can be a FQDN, IP address, FQDN:port or IP:port combinations." + } + }, + "required": [ + "servers" + ] + }, + "ApplianceNetworkingProxyConfig": { + "type": "object", + "properties": { + "server": { + "description": "URL of the proxy server", + "type": "string" + }, + "port": { + "description": "Port to connect to the proxy server. In a 'get' call, indicates the port connected to the proxy server. In a 'set' call, specifies the port to connect to the proxy server. A value of -1 indicates the default port.", + "type": "integer", + "format": "int64" + }, + "username": { + "description": "Username for proxy server.\nOnly set if proxy requires username.", + "type": "string" + }, + "password": { + "description": "Password for proxy server.\nOnly set if proxy requires password.", + "type": "string", + "format": "password" + }, + "enabled": { + "description": "In the result of the #get and #list operations this field indicates whether proxying is enabled for a particular protocol. In the input to the test and set operations this field specifies whether proxying should be enabled for a particular protocol.", + "type": "boolean" + } + }, + "required": [ + "server", + "port", + "enabled" + ] + }, + "ApplianceNetworkingProxyServerStatus": { + "type": "string", + "description": "Proxy.ServerStatus enumerated type defines the status of the server associated with the test run.", + "enum": [ + "SERVER_REACHABLE", + "SERVER_UNREACHABLE" + ] + }, + "ApplianceNetworkingProxySet": { + "$ref": "#/definitions/ApplianceNetworkingProxyConfig", + "description": "Proxy configuration for the specific protocol." + }, + "ApplianceNetworkingProxyTest": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "A hostname, IPv4 or Ipv6 address." + }, + "config": { + "$ref": "#/definitions/ApplianceNetworkingProxyConfig", + "description": "Proxy configuration to test." + } + }, + "required": [ + "host", + "config" + ] + }, + "ApplianceNetworkingProxyTestResult": { + "type": "object", + "properties": { + "status": { + "description": "Status of the proxy server indicating whether the proxy server is reachable.", + "$ref": "#/definitions/ApplianceNetworkingProxyServerStatus" + }, + "message": { + "description": "Message associated with status.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "status", + "message" + ] + }, + "ApplianceNetworkingUpdate": { + "$ref": "#/definitions/ApplianceNetworkingUpdateSpec", + "description": "update spec with optional boolean value" + }, + "ApplianceNetworkingUpdateSpec": { + "type": "object", + "properties": { + "ipv6_enabled": { + "description": "IPv6 Enabled or not\nIf unspecified, leaves the current state of Ipv6.", + "type": "boolean" + } + } + }, + "ApplianceNotification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.\nOnly if the time information is available.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set for warnings and errors.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "id", + "message" + ] + }, + "ApplianceNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceNotification" + } + } + } + }, + "ApplianceNtpLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceNtpServerStatus": { + "type": "string", + "description": "Ntp.ServerStatus enumerated type Status of server during test", + "enum": [ + "SERVER_REACHABLE", + "SERVER_UNREACHABLE" + ] + }, + "ApplianceNtpSet": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of host names or ip addresses of ntp servers." + } + }, + "required": [ + "servers" + ] + }, + "ApplianceNtpTest": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of host names or IP addresses of NTP servers." + } + }, + "required": [ + "servers" + ] + }, + "ApplianceNtpTestRunStatus": { + "type": "object", + "properties": { + "server": { + "description": "Server name associated with the test run.", + "type": "string" + }, + "status": { + "description": "Server status", + "$ref": "#/definitions/ApplianceNtpServerStatus" + }, + "message": { + "description": "Message associated with status", + "$ref": "#/definitions/ApplianceNtpLocalizableMessage" + } + }, + "required": [ + "server", + "status", + "message" + ] + }, + "ApplianceRecoveryBackupBackupRequest": { + "type": "object", + "properties": { + "parts": { + "description": "a list of optional parts. Run backup parts APIs to get list of optional parts and description", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "a password for a backup piece The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nbackupPassword If no password then the piece will not be encrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/ApplianceRecoveryBackupLocationType" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "comment": { + "description": "Custom comment\ncomment an optional comment", + "type": "string" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup.\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location_type", + "location" + ] + }, + "ApplianceRecoveryBackupJobBackupJobStatus": { + "type": "object", + "properties": { + "id": { + "description": "TimeStamp based ID.", + "type": "string" + }, + "state": { + "description": "The state of the backup job.", + "$ref": "#/definitions/ApplianceRecoveryBackupJobBackupRestoreProcessState" + }, + "messages": { + "description": "List of messages.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobLocalizableMessage" + } + }, + "progress": { + "description": "Progress of the job in percentage.", + "type": "integer", + "format": "int64" + }, + "start_time": { + "description": "Time when the backup was started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the backup was finished.\nIf unset end time is None until backup is finished.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "state", + "messages", + "progress", + "start_time" + ] + }, + "ApplianceRecoveryBackupJobBackupRequest": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts that will be included in the backup. Use the Parts.list operation to get information about the supported parts.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nbackupPassword If no password then the piece will not be encrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "Type of backup location.", + "$ref": "#/definitions/ApplianceRecoveryBackupJobLocationType" + }, + "location": { + "description": "Path or URL of the backup location.", + "type": "string" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string", + "format": "password" + }, + "comment": { + "description": "Custom comment provided by the user.\nIf unset comment will be empty.", + "type": "string" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location_type", + "location" + ] + }, + "ApplianceRecoveryBackupJobBackupRestoreProcessState": { + "type": "string", + "description": "The Job.BackupRestoreProcessState enumerated type defines the possible states of a backup/restore process.", + "enum": [ + "FAILED", + "INPROGRESS", + "NONE", + "SUCCEEDED" + ] + }, + "ApplianceRecoveryBackupJobCreate": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobBackupRequest", + "description": "BackupRequest Structure" + }, + "ApplianceRecoveryBackupJobDetailsBuildInfo": { + "type": "object", + "properties": { + "version_name": { + "description": "Appliance product type, for example 6.8.2 GA", + "type": "string" + }, + "version": { + "description": "Appliance version, for example 6.8.2.10000", + "type": "string" + }, + "build_number": { + "description": "Build Number of the appliance", + "type": "string" + } + }, + "required": [ + "version_name", + "version", + "build_number" + ] + }, + "ApplianceRecoveryBackupJobDetailsFilterSpec": { + "type": "object", + "properties": { + "jobs": { + "description": "Identifiers of backup jobs that can match the filter.\nIf unset the filter will match all the backup jobs.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.recovery.backup.job. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.recovery.backup.job.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "ApplianceRecoveryBackupJobDetailsInfo": { + "type": "object", + "properties": { + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "duration": { + "description": "Time in seconds since the backup job was started or the time it took to complete the backup job.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "type": "integer", + "format": "int64" + }, + "size": { + "description": "Size of the backup data transferred to remote location.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "type": "integer", + "format": "int64" + }, + "progress": { + "description": "Progress of the job.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "$ref": "#/definitions/CisTaskProgress" + }, + "location_user": { + "description": "The username for the remote backup location.", + "type": "string" + }, + "type": { + "description": "Type of the backup job. Indicates whether the backup was started manually or as a scheduled backup.", + "$ref": "#/definitions/ApplianceRecoveryBackupJobDetailsType" + }, + "messages": { + "description": "List of any info/warning/error messages returned by the backup job.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "build": { + "description": "Information about the build of the appliance.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/ApplianceRecoveryBackupJobDetailsBuildInfo" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup", + "type": "boolean" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "location", + "location_user", + "type", + "messages", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "ApplianceRecoveryBackupJobDetailsType": { + "type": "string", + "description": "The Details.Type enumerated type defines the type of backup job.", + "enum": [ + "SCHEDULED", + "MANUAL" + ] + }, + "ApplianceRecoveryBackupJobLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Id in message bundle.", + "type": "string" + }, + "default_message": { + "description": "Text in english.", + "type": "string" + }, + "args": { + "description": "Nested data.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceRecoveryBackupJobLocationType": { + "type": "string", + "description": "The Job.LocationType enumerated type defines the type of destination location for backup/restore. You specify the location type when you create a backup job. See Job.BackupRequest.", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "ApplianceRecoveryBackupJobReturnResult": { + "type": "object", + "properties": { + "status": { + "description": "Status of the cancel operation.", + "$ref": "#/definitions/ApplianceRecoveryBackupJobReturnStatus" + }, + "messages": { + "description": "List of messages.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupJobLocalizableMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceRecoveryBackupJobReturnStatus": { + "type": "string", + "description": "The Job.ReturnStatus enumerated type defines the return type for the cancel operation. You specify the return status when you return the result of cancel job. See Job.ReturnResult.", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "ApplianceRecoveryBackupLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceRecoveryBackupLocationSpec": { + "type": "object", + "properties": { + "location": { + "description": "Backup location URL.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used.", + "type": "string", + "format": "password" + } + }, + "required": [ + "location" + ] + }, + "ApplianceRecoveryBackupLocationType": { + "type": "string", + "description": "Backup.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "ApplianceRecoveryBackupPartsLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceRecoveryBackupPartsPart": { + "type": "object", + "properties": { + "id": { + "description": "part ID\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.parts. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.parts.", + "type": "string" + }, + "name": { + "description": "part name id in message bundle", + "$ref": "#/definitions/ApplianceRecoveryBackupPartsLocalizableMessage" + }, + "description": { + "description": "part description id in message bundle", + "$ref": "#/definitions/ApplianceRecoveryBackupPartsLocalizableMessage" + }, + "selected_by_default": { + "description": "Is this part selected by default in the user interface.", + "type": "boolean" + }, + "optional": { + "description": "Is this part optional.", + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "description", + "selected_by_default", + "optional" + ] + }, + "ApplianceRecoveryBackupReturnResult": { + "type": "object", + "properties": { + "status": { + "description": "Check status", + "$ref": "#/definitions/ApplianceRecoveryBackupReturnStatus" + }, + "messages": { + "description": "List of messages", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupLocalizableMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceRecoveryBackupReturnStatus": { + "type": "string", + "description": "Backup.ReturnStatus enumerated type Defines the state of precheck", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "ApplianceRecoveryBackupSchedulesCreate": { + "type": "object", + "properties": { + "schedule": { + "type": "string", + "description": "Identifier of the schedule\nThe parameter must be an identifier for the resource type: appliance.recovery.backup.schedule." + }, + "spec": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesCreateSpec", + "description": "CreateSpec Structure" + } + }, + "required": [ + "schedule", + "spec" + ] + }, + "ApplianceRecoveryBackupSchedulesCreateSpec": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts to be backed up. Use the Parts.list operation to get information about the supported parts.\nIf unset all the optional parts will not be backed up.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nIf unset the backup piece will not be encrypted.", + "type": "string", + "format": "password" + }, + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string", + "format": "password" + }, + "enable": { + "description": "Enable or disable a schedule.\nIf unset the schedule will be enabled.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset backup job will not be scheduled. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRecurrenceInfo" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset all the completed backup jobs will be retained forever. See Schedules.RetentionInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRetentionInfo" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "location" + ] + }, + "ApplianceRecoveryBackupSchedulesDayOfWeek": { + "type": "string", + "description": "The Schedules.DayOfWeek enumerated type defines the set of days when backup can be scheduled. The days can be specified as a list of individual days. You specify the days when you set the recurrence for a schedule. See Schedules.RecurrenceInfo.days.", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "ApplianceRecoveryBackupSchedulesInfo": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts that will be included in backups based on this schedule details. Use the Parts.list operation to get information about the supported parts.", + "type": "array", + "items": { + "type": "string" + } + }, + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset location user will not be used.", + "type": "string" + }, + "enable": { + "description": "Enable or disable a schedule, by default when created a schedule will be enabled.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset backup job is not scheduled. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRecurrenceInfo" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset all the completed backup jobs are retained forever. See Schedules.RetentionInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRetentionInfo" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location", + "enable" + ] + }, + "ApplianceRecoveryBackupSchedulesRecurrenceInfo": { + "type": "object", + "properties": { + "minute": { + "description": "Minute when backup should run.", + "type": "integer", + "format": "int64" + }, + "hour": { + "description": "Hour when backup should run. The hour should be specified in 24-hour clock format.", + "type": "integer", + "format": "int64" + }, + "days": { + "description": "Day of week when the backup should be run. Days can be specified as list of days.\nIf unset the backup will be run everyday.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesDayOfWeek" + } + } + }, + "required": [ + "minute", + "hour" + ] + }, + "ApplianceRecoveryBackupSchedulesRetentionInfo": { + "type": "object", + "properties": { + "max_count": { + "description": "Number of backups which should be retained. If retention is not set, all the backups will be retained forever.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "max_count" + ] + }, + "ApplianceRecoveryBackupSchedulesRun": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "field that specifies the description for the backup.\nIf unset the backup will have an empty comment." + } + } + }, + "ApplianceRecoveryBackupSchedulesUpdate": { + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesUpdateSpec", + "description": "UpdateSpec Structure" + }, + "ApplianceRecoveryBackupSchedulesUpdateSpec": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts. Use the Parts.list operation to get information about the supported parts.\nIf unset the value will not be changed.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nIf unset the value will not be changed.", + "type": "string", + "format": "password" + }, + "location": { + "description": "URL of the backup location.\nIf unset the value will not be changed.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset the value will not be changed.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset the value will not be changed.", + "type": "string", + "format": "password" + }, + "enable": { + "description": "Enable or disable a schedule.\nIf unset the value will not be changed.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset the infomration will not be changed. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRecurrenceInfo" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset the information will not be changed. See Schedules.RetentionInfo", + "$ref": "#/definitions/ApplianceRecoveryBackupSchedulesRetentionInfo" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + } + }, + "ApplianceRecoveryBackupSystemNameArchiveFilterSpec": { + "type": "object", + "properties": { + "start_timestamp": { + "description": "Backup must have been taken on or after this time to match the filter.\nIf unset the filter will match oldest backups.", + "type": "string", + "format": "date-time" + }, + "end_timestamp": { + "description": "Backup must have been taken on or before this time to match the filter.\nIf unset the filter will match most recent backups.", + "type": "string", + "format": "date-time" + }, + "comment_substring": { + "description": "Backup comment must contain this string to match the filter.\nIf unset the filter will match backups with any comment.", + "type": "string" + }, + "max_results": { + "description": "Limit result to a max count of most recent backups.\nIf unset it defaults to 128.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceRecoveryBackupSystemNameArchiveGet": { + "$ref": "#/definitions/ApplianceRecoveryBackupLocationSpec", + "description": "LocationSpec Structure." + }, + "ApplianceRecoveryBackupSystemNameArchiveInfo": { + "type": "object", + "properties": { + "timestamp": { + "description": "Time when this backup was completed.", + "type": "string", + "format": "date-time" + }, + "location": { + "description": "Backup location URL.", + "type": "string", + "format": "uri" + }, + "parts": { + "description": "List of parts included in the backup.", + "type": "array", + "items": { + "type": "string" + } + }, + "version": { + "description": "The version of the appliance represented by the backup.", + "type": "string" + }, + "system_name": { + "description": "The system name identifier of the appliance represented by the backup.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.system_name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.system_name.", + "type": "string" + }, + "comment": { + "description": "Custom comment added by the user for this backup.", + "type": "string" + } + }, + "required": [ + "timestamp", + "location", + "parts", + "version", + "system_name", + "comment" + ] + }, + "ApplianceRecoveryBackupSystemNameArchiveList": { + "type": "object", + "properties": { + "loc_spec": { + "$ref": "#/definitions/ApplianceRecoveryBackupLocationSpec", + "description": "LocationSpec Structure." + }, + "filter_spec": { + "$ref": "#/definitions/ApplianceRecoveryBackupSystemNameArchiveFilterSpec", + "description": "Specification of matching backups for which information should be returned." + } + }, + "required": [ + "loc_spec", + "filter_spec" + ] + }, + "ApplianceRecoveryBackupSystemNameArchiveSummary": { + "type": "object", + "properties": { + "archive": { + "description": "Backup archive identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.system_name.archive. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.system_name.archive.", + "type": "string" + }, + "timestamp": { + "description": "Time when this backup was started.", + "type": "string", + "format": "date-time" + }, + "version": { + "description": "The version of the appliance represented by the backup archive.", + "type": "string" + }, + "comment": { + "description": "Custom comment added by the user for this backup.", + "type": "string" + } + }, + "required": [ + "archive", + "timestamp", + "version", + "comment" + ] + }, + "ApplianceRecoveryBackupSystemNameList": { + "$ref": "#/definitions/ApplianceRecoveryBackupLocationSpec", + "description": "LocationSpec Structure" + }, + "ApplianceRecoveryBackupValidate": { + "$ref": "#/definitions/ApplianceRecoveryBackupBackupRequest", + "description": "BackupRequest Structure" + }, + "ApplianceRecoveryInfo": { + "type": "object", + "properties": { + "supported": { + "description": "Is recovery supported in this appliance.", + "type": "boolean" + } + }, + "required": [ + "supported" + ] + }, + "ApplianceRecoveryReconciliationJobCreate": { + "$ref": "#/definitions/ApplianceRecoveryReconciliationJobCreateSpec", + "description": "CreateSpec Structure" + }, + "ApplianceRecoveryReconciliationJobCreateSpec": { + "type": "object", + "properties": { + "sso_admin_user_name": { + "description": "Administrators username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "Password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + }, + "ignore_warnings": { + "description": "Flag indicating whether warnings should be ignored during reconciliation.\nIf unset, validation warnings will fail the reconciliation operation.", + "type": "boolean" + } + } + }, + "ApplianceRecoveryReconciliationJobInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Name of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.reconciliation.job. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.reconciliation.job.", + "type": "string" + }, + "operation": { + "description": "Name of the operation associated with the task.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.reconciliation.job. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.reconciliation.job.", + "type": "string" + }, + "target": { + "description": "Identifier of the target resource the operation modifies.\nThis field will be unset if the task has multiple targets or no target.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/ApplianceRecoveryReconciliationJobStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.\nIf unset, the operation cannot be canceled.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info#result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of Job.Info.status is one of RUNNING, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of Job.Info.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "messages": { + "description": "A list of localized messages.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "progress": { + "description": "The progress of the job as a percentage.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "messages", + "progress" + ] + }, + "ApplianceRecoveryReconciliationJobStatus": { + "type": "string", + "description": "The Job.Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "NONE", + "RUNNING", + "SUCCEEDED", + "FAILED" + ] + }, + "ApplianceRecoveryRestoreJobBackupRestoreProcessState": { + "type": "string", + "description": "Job.BackupRestoreProcessState enumerated type Defines state of backup/restore process", + "enum": [ + "FAILED", + "INPROGRESS", + "NONE", + "SUCCEEDED" + ] + }, + "ApplianceRecoveryRestoreJobCreate": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobRestoreRequest", + "description": "RestoreRequest Structure" + }, + "ApplianceRecoveryRestoreJobLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceRecoveryRestoreJobLocationType": { + "type": "string", + "description": "Job.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "ApplianceRecoveryRestoreJobRestoreJobStatus": { + "type": "object", + "properties": { + "state": { + "description": "process state", + "$ref": "#/definitions/ApplianceRecoveryRestoreJobBackupRestoreProcessState" + }, + "messages": { + "description": "list of messages", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobLocalizableMessage" + } + }, + "progress": { + "description": "percentage complete", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "state", + "messages", + "progress" + ] + }, + "ApplianceRecoveryRestoreJobRestoreRequest": { + "type": "object", + "properties": { + "backup_password": { + "description": "a password for a backup piece\nbackupPassword If no password then the piece will not be decrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/ApplianceRecoveryRestoreJobLocationType" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "sso_admin_user_name": { + "description": "Administrators Username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "The password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + }, + "ignore_warnings": { + "description": "The flag to ignore warnings during restore\nIf unset, validation warnings will fail the restore operation", + "type": "boolean" + } + }, + "required": [ + "location_type", + "location" + ] + }, + "ApplianceRecoveryRestoreJobReturnResult": { + "type": "object", + "properties": { + "status": { + "description": "Check status", + "$ref": "#/definitions/ApplianceRecoveryRestoreJobReturnStatus" + }, + "messages": { + "description": "List of messages", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryRestoreJobLocalizableMessage" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "ApplianceRecoveryRestoreJobReturnStatus": { + "type": "string", + "description": "Job.ReturnStatus enumerated type Defines the state of precheck", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "ApplianceRecoveryRestoreLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "ApplianceRecoveryRestoreLocationType": { + "type": "string", + "description": "Restore.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "ApplianceRecoveryRestoreMetadata": { + "type": "object", + "properties": { + "timestamp": { + "description": "Time when this backup was completed.", + "type": "string", + "format": "date-time" + }, + "parts": { + "description": "List of parts included in the backup.", + "type": "array", + "items": { + "type": "string" + } + }, + "version": { + "description": "VCSA version", + "type": "string" + }, + "boxname": { + "description": "Box name is PNID/ FQDN etc", + "type": "string" + }, + "sso_login_required": { + "description": "Is SSO login required for the vCenter server.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "comment": { + "description": "Custom comment", + "type": "string" + }, + "applicable": { + "description": "Does the VCSA match the deployment type, network properties and version of backed up VC", + "type": "boolean" + }, + "messages": { + "description": "Any messages if the backup is not aplicable", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceRecoveryRestoreLocalizableMessage" + } + } + }, + "required": [ + "timestamp", + "parts", + "version", + "boxname", + "comment", + "applicable", + "messages" + ] + }, + "ApplianceRecoveryRestoreRestoreRequest": { + "type": "object", + "properties": { + "backup_password": { + "description": "a password for a backup piece\nbackupPassword If no password then the piece will not be decrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/ApplianceRecoveryRestoreLocationType" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "sso_admin_user_name": { + "description": "Administrators username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "The password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + } + }, + "required": [ + "location_type", + "location" + ] + }, + "ApplianceRecoveryRestoreValidate": { + "$ref": "#/definitions/ApplianceRecoveryRestoreRestoreRequest", + "description": "RestoreRequest Structure" + }, + "ApplianceServicesInfo": { + "type": "object", + "properties": { + "description": { + "description": "Service description", + "type": "string" + }, + "state": { + "description": "Running State", + "$ref": "#/definitions/ApplianceServicesState" + } + }, + "required": [ + "description", + "state" + ] + }, + "ApplianceServicesState": { + "type": "string", + "description": "The Services.State enumerated type defines valid Run State for services.", + "enum": [ + "STARTING", + "STOPPING", + "STARTED", + "STOPPED" + ] + }, + "ApplianceShutdownPoweroff": { + "type": "object", + "properties": { + "delay": { + "type": "integer", + "format": "int64", + "description": "Minutes after which poweroff should start. If 0 is specified, poweroff will start immediately." + }, + "reason": { + "type": "string", + "description": "Reason for peforming poweroff." + } + }, + "required": [ + "delay", + "reason" + ] + }, + "ApplianceShutdownReboot": { + "type": "object", + "properties": { + "delay": { + "type": "integer", + "format": "int64", + "description": "Minutes after which reboot should start. If 0 is specified, reboot will start immediately." + }, + "reason": { + "type": "string", + "description": "Reason for peforming reboot." + } + }, + "required": [ + "delay", + "reason" + ] + }, + "ApplianceShutdownShutdownConfig": { + "type": "object", + "properties": { + "shutdown_time": { + "description": "Shutdown time.\nshutdownTime Optional value of pending shutdown time", + "type": "string", + "format": "date-time" + }, + "action": { + "description": "The pending shutdown operation. The string values for pending operations can be 'poweroff', 'reboot' or ''.", + "type": "string" + }, + "reason": { + "description": "The reason behind the shutdown action", + "type": "string" + } + }, + "required": [ + "action", + "reason" + ] + }, + "ApplianceSubtaskInfo": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the operation.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "result": { + "description": "Result of the operation. If an operation reports partial results before it completes, this field could be set before the CommonInfo#status has the value SUCCEEDED. The value could change as the operation progresses.\nThis field will be unset if result is not available at the current step of the operation.", + "$ref": "#/definitions/ApplianceNotifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "ApplianceSupportBundleCreateSpec": { + "type": "object", + "properties": { + "description": { + "description": "Support bundle creation description.", + "type": "string" + }, + "components": { + "description": "Support bundle components to be included. Map with groupName as key and list of components in that group as the value.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "partition": { + "description": "Partition to be used for saving the support bundle. Available partitions can be retrieved using storage.list API.", + "type": "string" + } + }, + "required": [ + "description" + ] + }, + "ApplianceSupportBundleCreateTask": { + "$ref": "#/definitions/ApplianceSupportBundleCreateSpec", + "description": "" + }, + "ApplianceSupportBundleCreationStatus": { + "type": "string", + "description": "", + "enum": [ + "SUCCEEDED", + "FAILED", + "CANCELLED" + ] + }, + "ApplianceSupportBundleFilterSpec": { + "type": "object", + "properties": { + "available": { + "description": "Filter only downloadable details.", + "type": "boolean" + }, + "creation_status": { + "description": "Filter by task status.", + "$ref": "#/definitions/ApplianceSupportBundleCreationStatus" + } + } + }, + "ApplianceSupportBundleInfo": { + "type": "object", + "properties": { + "description": { + "description": "Support bundle creation description.", + "type": "string" + }, + "status": { + "description": "Status of the task", + "$ref": "#/definitions/ApplianceSupportBundleCreationStatus" + }, + "generation_time": { + "description": "Support bundle generation time.\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is SUCCEEDED.", + "type": "string", + "format": "date-time" + }, + "url": { + "description": "Support bundle downlooad URL.\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is SUCCEEDED.", + "type": "string", + "format": "uri" + }, + "expiration_time": { + "description": "Download expiration time.\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is SUCCEEDED.", + "type": "string", + "format": "date-time" + }, + "downloadable": { + "description": "Support bundle availability for download.\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is SUCCEEDED.", + "type": "boolean" + }, + "size": { + "description": "Support bundle file size in KBs.\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is SUCCEEDED.", + "type": "integer", + "format": "int64" + }, + "failure_reason": { + "description": "Reason for failure\nThis field is optional and it is only relevant when the value of SupportBundle.Info.status is FAILED.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "description", + "status" + ] + }, + "ApplianceSupportBundleIterationSpec": { + "type": "object", + "properties": { + "size": { + "description": "Size specifies the maximum number of results to return.\nIf unset defaults to 50.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceSupportBundleListResult": { + "type": "object", + "properties": { + "supportbundle_operations": { + "description": "Information about all support bundle requests.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceSupportBundleInfo" + } + } + }, + "required": [ + "supportbundle_operations" + ] + }, + "ApplianceSystemSecurityGlobalFipsInfo": { + "type": "object", + "properties": { + "enabled": { + "description": "FIPS setting state.", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceSystemSecurityGlobalFipsUpdate": { + "$ref": "#/definitions/ApplianceSystemSecurityGlobalFipsUpdateSpec", + "description": "" + }, + "ApplianceSystemSecurityGlobalFipsUpdateSpec": { + "type": "object", + "properties": { + "enabled": { + "description": "FIPS setting state.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "ApplianceSystemStorageStorageChange": { + "type": "object", + "properties": { + "old_size": { + "description": "Original size of the partition in MB.", + "type": "integer", + "format": "int64" + }, + "new_size": { + "description": "Nedw size of the partition in MB.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "old_size", + "new_size" + ] + }, + "ApplianceSystemStorageStorageMapping": { + "type": "object", + "properties": { + "disk": { + "description": "The disk number in the vSphere Web Client.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.system.storage. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.system.storage.", + "type": "string" + }, + "partition": { + "description": "Storage partition name.", + "type": "string" + }, + "description": { + "description": "Description of partition\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "disk", + "partition" + ] + }, + "ApplianceSystemTimeSystemTimeStruct": { + "type": "object", + "properties": { + "seconds_since_epoch": { + "description": "seconds since the epoch", + "type": "number", + "format": "double" + }, + "date": { + "description": "date format: Thu 07-31-2014", + "type": "string" + }, + "time": { + "description": "time format: 18:18:32", + "type": "string" + }, + "timezone": { + "description": "timezone", + "type": "string" + } + }, + "required": [ + "seconds_since_epoch", + "date", + "time", + "timezone" + ] + }, + "ApplianceSystemTimeTimezoneSet": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Time zone name." + } + }, + "required": [ + "name" + ] + }, + "ApplianceSystemVersionVersionStruct": { + "type": "object", + "properties": { + "version": { + "description": "Appliance version.", + "type": "string" + }, + "product": { + "description": "Appliance name.", + "type": "string" + }, + "build": { + "description": "Appliance build number.", + "type": "string" + }, + "type": { + "description": "Type of product. Same product can have different deployment options, which is represented by type.", + "type": "string" + }, + "summary": { + "description": "Summary of patch (empty string, if the appliance has not been patched)", + "type": "string" + }, + "releasedate": { + "description": "Release date of patch (empty string, if the appliance has not been patched)", + "type": "string" + }, + "install_time": { + "description": "Display the date and time when this system was first installed. Value will not change on subsequent updates.", + "type": "string" + } + }, + "required": [ + "version", + "product", + "build", + "type", + "summary", + "releasedate", + "install_time" + ] + }, + "ApplianceTaskInfo": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "subtask_order": { + "description": "List of tasks that make up this appliance task in the order they are being run.", + "type": "array", + "items": { + "type": "string" + } + }, + "subtasks": { + "description": "Information about the subtasks that this appliance task consists of.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ApplianceSubtaskInfo" + } + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "subtask_order", + "subtasks", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "ApplianceTimesyncSet": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/definitions/ApplianceTimesyncTimeSyncMode", + "description": "Time synchronization mode." + } + }, + "required": [ + "mode" + ] + }, + "ApplianceTimesyncTimeSyncMode": { + "type": "string", + "description": "The Timesync.TimeSyncMode enumerated type defines time synchronization modes", + "enum": [ + "DISABLED", + "NTP", + "HOST" + ] + }, + "ApplianceUpdateCommonInfoCategory": { + "type": "string", + "description": "The CommonInfo.Category enumerated type defines update type", + "enum": [ + "SECURITY", + "FIX", + "UPDATE", + "UPGRADE" + ] + }, + "ApplianceUpdateCommonInfoPriority": { + "type": "string", + "description": "The CommonInfo.Priority enumerated type defines the update installation priority recommendations.", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "ApplianceUpdateCommonInfoSeverity": { + "type": "string", + "description": "The CommonInfo.Severity enumerated type defines the severity of the issues fixed in the update.", + "enum": [ + "CRITICAL", + "IMPORTANT", + "MODERATE", + "LOW" + ] + }, + "ApplianceUpdateInfo": { + "type": "object", + "properties": { + "state": { + "description": "State of the appliance update.", + "$ref": "#/definitions/ApplianceUpdateState" + }, + "task": { + "description": "The running or completed update task.", + "$ref": "#/definitions/ApplianceTaskInfo" + }, + "version": { + "description": "Version of base appliance if state is UP_TO_DATE Version of update being staged or installed if state is INSTALL_IN_PROGRESS or STAGE_IN_PROGRESS Version of update staged if state is UPDATES_PENDING Version of update failed if state is INSTALL_FAILED or ROLLBACK_IN_PROGRESS", + "type": "string" + }, + "latest_query_time": { + "description": "Timestamp of latest query to update repository.\nIf unset the update was never queried", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "state", + "version" + ] + }, + "ApplianceUpdatePendingInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the update.", + "type": "string" + }, + "contents": { + "description": "List of the 1. issues addressed since previous/current version 2. new features/improvements", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "services_will_be_stopped": { + "description": "List of the services that will be stopped and restarted during the update installation.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceUpdateServiceInfo" + } + }, + "eulas": { + "description": "List of EULAs. This list has multiple entries and can be dynamic based on what we are actually installing.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "staged": { + "description": "Is the update staged", + "type": "boolean" + }, + "knowledge_base": { + "description": "URL for the knowledge base article describing this update.", + "type": "string", + "format": "uri" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/ApplianceUpdateCommonInfoPriority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/ApplianceUpdateCommonInfoSeverity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/ApplianceUpdateCommonInfoCategory" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "name", + "contents", + "services_will_be_stopped", + "eulas", + "staged", + "knowledge_base", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "ApplianceUpdatePendingInstall": { + "type": "object", + "properties": { + "user_data": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "ApplianceUpdatePendingPrecheckResult": { + "type": "object", + "properties": { + "check_time": { + "description": "Time when this precheck was run", + "type": "string", + "format": "date-time" + }, + "estimated_time_to_install": { + "description": "Rough estimate of time to install the update (minutes).\nestimatedTimeToInstall If unset N/A", + "type": "integer", + "format": "int64" + }, + "estimated_time_to_rollback": { + "description": "Rough estimate of time to rollback the update (minutes).\nestimatedTimeToRollback If unset N/A", + "type": "integer", + "format": "int64" + }, + "reboot_required": { + "description": "Is reboot required to install the update.", + "type": "boolean" + }, + "issues": { + "description": "Lists of the issues and warnings\nissues If unset N/A", + "$ref": "#/definitions/ApplianceNotifications" + }, + "questions": { + "description": "List of questions that must be answered to install the update.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceUpdatePendingQuestion" + } + } + }, + "required": [ + "check_time", + "reboot_required", + "questions" + ] + }, + "ApplianceUpdatePendingQuestion": { + "type": "object", + "properties": { + "data_item": { + "description": "ID of the data item\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: applicance.update.pending.dataitem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: applicance.update.pending.dataitem.", + "type": "string" + }, + "text": { + "description": "Label for the item to be used in GUI/CLI", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "description": { + "description": "Description of the item", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "type": { + "description": "How this field shoudl be represented in GUI or CLI", + "$ref": "#/definitions/ApplianceUpdatePendingQuestionInputType" + }, + "allowed_values": { + "description": "List of allowed values\nallowedValues If unset any value is valid.", + "type": "array", + "items": { + "type": "string" + } + }, + "regexp": { + "description": "Regexp to validate the input\nregexp If unset no validation will be performed.", + "type": "string" + }, + "default_answer": { + "description": "Default answer\ndefaultAnswer If unset then there is no default answer, so an explicit answer must be provided", + "type": "string" + } + }, + "required": [ + "data_item", + "text", + "description", + "type" + ] + }, + "ApplianceUpdatePendingQuestionInputType": { + "type": "string", + "description": "The Pending.Question.InputType enumerated type defines representation of field fields in GUI or CLI", + "enum": [ + "PLAIN_TEXT", + "BOOLEAN", + "PASSWORD" + ] + }, + "ApplianceUpdatePendingSourceType": { + "type": "string", + "description": "The Pending.SourceType enumerated type defines the supported types of sources of updates.", + "enum": [ + "LAST_CHECK", + "LOCAL", + "LOCAL_AND_ONLINE" + ] + }, + "ApplianceUpdatePendingStageAndInstall": { + "type": "object", + "properties": { + "user_data": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "ApplianceUpdatePendingValidate": { + "type": "object", + "properties": { + "user_data": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "ApplianceUpdatePolicyConfig": { + "type": "object", + "properties": { + "custom_URL": { + "description": "Current appliance update repository URL.\nIf unset then default URL is assumed", + "type": "string" + }, + "username": { + "description": "Username for the update repository\nIf unset username will not be used to login", + "type": "string" + }, + "password": { + "description": "Password for the update repository\npassword If unset password will not be used to login", + "type": "string", + "format": "password" + }, + "check_schedule": { + "description": "Schedule when the automatic check will be run.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceUpdatePolicyTime" + } + }, + "auto_stage": { + "description": "Automatically stage the latest update if available.", + "type": "boolean" + }, + "certificate_check": { + "description": "Indicates whether certificates will be checked during patching. \n Warning: Setting this field to false will result in an insecure connection to update repository which can potentially put the appliance security at risk.\n\ncertificateCheck If unset the certificate checks are enabled.", + "type": "boolean" + } + }, + "required": [ + "check_schedule", + "auto_stage" + ] + }, + "ApplianceUpdatePolicyDayOfWeek": { + "type": "string", + "description": "The Policy.DayOfWeek enumerated type defines the set of days", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "ApplianceUpdatePolicyInfo": { + "type": "object", + "properties": { + "custom_URL": { + "description": "Current appliance update custom repository URL.\nIf unset update is checked at defaut URL.", + "type": "string" + }, + "default_URL": { + "description": "Current appliance update default repository URL.", + "type": "string" + }, + "username": { + "description": "Username for the update repository\nIf unset username will not be used to login", + "type": "string" + }, + "check_schedule": { + "description": "Schedule when the automatic check will be run.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceUpdatePolicyTime" + } + }, + "auto_stage": { + "description": "Automatically stage the latest update if available.", + "type": "boolean" + }, + "auto_update": { + "description": "Is the appliance updated automatically. If set the appliance may ignore the check schedule or auto-stage settings.", + "type": "boolean" + }, + "manual_control": { + "description": "Whether API client should allow the user to start update manually", + "type": "boolean" + }, + "certificate_check": { + "description": "Indicates whether certificates will be checked during patching. \n Warning: If this field is set to false, an insecure connection is made to the update repository which can potentially put the appliance security at risk.", + "type": "boolean" + } + }, + "required": [ + "default_URL", + "check_schedule", + "auto_stage", + "auto_update", + "manual_control", + "certificate_check" + ] + }, + "ApplianceUpdatePolicySet": { + "$ref": "#/definitions/ApplianceUpdatePolicyConfig", + "description": "Info structure containing the policy for the appliance update." + }, + "ApplianceUpdatePolicyTime": { + "type": "object", + "properties": { + "day": { + "description": "weekday to check for updates.", + "$ref": "#/definitions/ApplianceUpdatePolicyDayOfWeek" + }, + "hour": { + "description": "Hour: 0-24", + "type": "integer", + "format": "int64" + }, + "minute": { + "description": "Minute: 0-59", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "day", + "hour", + "minute" + ] + }, + "ApplianceUpdateServiceInfo": { + "type": "object", + "properties": { + "service": { + "description": "Service ID\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.service.", + "type": "string" + }, + "description": { + "description": "Service description", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "service", + "description" + ] + }, + "ApplianceUpdateStagedInfo": { + "type": "object", + "properties": { + "staging_complete": { + "description": "Is staging complete", + "type": "boolean" + }, + "version": { + "description": "Version in form of X.Y.Z.P. e.g. 6.5.1.5400\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.update.pending.", + "type": "string" + }, + "name": { + "description": "Name of the update.", + "type": "string" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/ApplianceUpdateCommonInfoPriority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/ApplianceUpdateCommonInfoSeverity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/ApplianceUpdateCommonInfoCategory" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "staging_complete", + "version", + "name", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "ApplianceUpdateState": { + "type": "string", + "description": "The Update.State enumerated type defines the various states the appliance update can be in.", + "enum": [ + "UP_TO_DATE", + "UPDATES_PENDING", + "STAGE_IN_PROGRESS", + "INSTALL_IN_PROGRESS", + "INSTALL_FAILED", + "ROLLBACK_IN_PROGRESS" + ] + }, + "ApplianceUpdateSummary": { + "type": "object", + "properties": { + "version": { + "description": "Version in form of X.Y.Z.P. e.g. 6.5.1.5400\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.update.pending.", + "type": "string" + }, + "name": { + "description": "Name of the update.", + "type": "string" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/ApplianceUpdateCommonInfoPriority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/ApplianceUpdateCommonInfoSeverity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/ApplianceUpdateCommonInfoCategory" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "version", + "name", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "ApplianceVcenterSettingsV1ConfigApplyDesiredStateSpec": { + "type": "object", + "properties": { + "desired_state": { + "description": "Defines the desired state. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + }, + "apply_spec": { + "description": "applySpec to include a message with the apply. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigApplySpec" + } + }, + "required": [ + "desired_state", + "apply_spec" + ] + }, + "ApplianceVcenterSettingsV1ConfigApplyDesiredStateTask": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigApplyDesiredStateSpec", + "description": "ApplyDesiredStateSpec spec to be validated and applied." + }, + "ApplianceVcenterSettingsV1ConfigApplySpec": { + "type": "object", + "properties": { + "message": { + "description": "Message to include with the apply. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "ApplianceVcenterSettingsV1ConfigCheckDesiredStateSpec": { + "type": "object", + "properties": { + "desired_state": { + "description": "Defines the desired state. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + }, + "check_spec": { + "description": "checkSpec to include a message with the apply. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigCheckSpec" + } + }, + "required": [ + "desired_state", + "check_spec" + ] + }, + "ApplianceVcenterSettingsV1ConfigCheckDesiredStateTask": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigCheckDesiredStateSpec", + "description": "CheckDesiredStateSpec spec to be validated." + }, + "ApplianceVcenterSettingsV1ConfigCheckSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message to include with the check. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAccessSettings": { + "type": "object", + "properties": { + "ssh": { + "description": "Get/Set enabled state of SSH-based controlled CLI. Ssh service provides operations", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSsh" + }, + "dcui": { + "description": "Get/Set enabled of Direct Console User Interface (DCUI TTY2). Dcui service provides operations", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDcui" + }, + "console_cli": { + "description": "Get/Set enabled state of the console-based controlled CLI. Consolecli service provides operations", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtConsolecli" + }, + "shell": { + "description": "Get/Set enabled state of BASH. Shell service provides operations", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtShell" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddress": { + "type": "object", + "properties": { + "address": { + "description": "The IPv6 address, for example, fc00:10:20:83:20c:29ff:fe94:bb5a.\nIf set, the address was never set.", + "type": "string" + }, + "origin": { + "description": "The Origin of the IPv6 address. For more information, see RFC 4293.\nIf set, the origin was never set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddressOrigin" + }, + "prefix": { + "description": "The IPv6 CIDR prefix, for example, 64.\nIf set, the prefix was never set.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The Status of the IPv6 address. For more information, see RFC 4293.\nIf set, the status was never set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddressStatus" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddressOrigin": { + "type": "string", + "description": "The Address.Origin enumerated type defines IPv6 address origin values.", + "enum": [ + "DHCP", + "RANDOM", + "MANUAL", + "LINKLAYER", + "OTHER" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddressStatus": { + "type": "string", + "description": "The Address.Status enumerated type defines IPv6 address status values. See RFC 4293.", + "enum": [ + "TENTATIVE", + "UNKNOWN", + "INACCESSIBLE", + "INVALID", + "DUPLICATE", + "PREFERRED", + "DEPRECATED", + "OPTIMISTIC" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtApplianceManagement": { + "type": "object", + "properties": { + "software_update_policy": { + "description": "Policy to update vCenter.\nOnly set if the SoftwareUpdatePolicy is set inside vCenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSoftwareUpdatePolicy" + }, + "backup_schedules": { + "description": "Backup schedule of vCenter.\nOnly set if the Backup is schedule for vCenter", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtBackupSchedule" + } + }, + "access_settings": { + "description": "AccessSettings of vCenter. if access settings are set for vCenter", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAccessSettings" + }, + "datetime_config": { + "description": "Date Time Configuration of vCenter.\nOnly set if access settings are set for vCenter", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDatetimeConfig" + }, + "syslog": { + "description": "The syslog service provides operations to manage forwarding of log messages to remote logging servers.\nOnly set if log forwarding to remote server are set in vCenter.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLogForwarding" + } + }, + "user_account_settings": { + "description": "User Account Settings of vCenter. if user account settings are set for vCenter", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtUserAccountSettings" + }, + "smtp": { + "description": "The LocalAccounts service provides operations to manage local user account.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSmtp" + }, + "network": { + "description": "Network configurations to be applied.\nOnly set if the network configurations are set in vCenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtApplianceNetwork" + }, + "ceip": { + "description": "CEIP (Customer Experience Improvement Program) enabled state.\nOnly set if ceip are set in vcenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtCeip" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtApplianceNetwork": { + "type": "object", + "properties": { + "firewall_rule_policies": { + "description": "List of Firewall Rules to be applied.\nOnly set if the FirewallRulePolicy is set in vCenter.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtFirewallRulePolicy" + } + }, + "dns_server_configuration": { + "description": "DNS configuration to be applied.\nOnly set if the DnsServerConfiguration is set in vCenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDnsServerConfiguration" + }, + "proxy_configuration": { + "description": "Proxy configuration to be applied.\nOnly set if the Proxy server configuration is set in vCenter.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtProxyConfiguration" + } + }, + "interfaces": { + "description": "Interfaces configuration to be applied.\nOnly set if the Interfaces configuration is set in vCenter.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtInterface" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtBackupSchedule": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts to be backed up. Use the appliance.recovery.backup.Parts#list operation to get information about the supported parts.\nIf unset all the optional parts will not be backed up.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nIf unset the backup piece will not be encrypted.", + "type": "string", + "format": "password" + }, + "location": { + "description": "URL of the backup location.\nOnly set if URL is set in BackupSchedule", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string", + "format": "password" + }, + "enable": { + "description": "Enable or disable a schedule.\nIf unset the schedule will be enabled.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset backup job will not be scheduled. See RecurrenceInfo", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRecurrenceInfo" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset all the completed backup jobs will be retained forever. See RetentionInfo", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRetentionInfo" + }, + "schedule_id": { + "description": "Identifier of the schedule.", + "type": "string" + } + }, + "required": [ + "location", + "schedule_id" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtCeip": { + "type": "object", + "properties": { + "enabled": { + "description": "Set enabled state of the CEIP.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtConsolecli": { + "type": "object", + "properties": { + "enabled": { + "description": "Set enabled state of the console-based controlled CLI (TTY1).", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDatetimeConfig": { + "type": "object", + "properties": { + "time_zone": { + "description": "The Timezone service provides operations to get and set the appliance timezone.\nOnly set if the Timezone is set in vCenter", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimezone" + }, + "time_sync": { + "description": "Timesync service provides operations Performs time synchronization configuration.\nOnly set if the time sync mode is set in vCenter", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimesync" + }, + "ntp": { + "description": "Ntp service provides operations Gets NTP configuration status and tests connection to ntp servers.\nOnly set if the ntp server are set in vCenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtNtp" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDcui": { + "type": "object", + "properties": { + "enabled": { + "description": "Set enabled state of Direct Console User Interface (DCUI).", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDnsServerConfiguration": { + "type": "object", + "properties": { + "mode": { + "description": "Define how to determine the DNS servers. Leave the servers argument empty if the mode argument is \"DHCP\". Set the servers argument to a comma-separated list of DNS servers if the mode argument is \"static\". The DNS server are assigned from the specified list.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDnsServerConfigurationDNSServerMode" + }, + "servers": { + "description": "List of the currently used DNS servers. DNS server configuration.", + "type": "array", + "items": { + "type": "string" + } + }, + "domains": { + "description": "List of the search domains. DNS Search Domains.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "mode", + "servers" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtDnsServerConfigurationDNSServerMode": { + "type": "string", + "description": "DnsServerConfiguration.DNSServerMode enumerated type Describes DNS Server source (DHCP,static).", + "enum": [ + "DHCP", + "IS_STATIC" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtFirewallRulePolicy": { + "type": "object", + "properties": { + "address": { + "description": "IPv4 or IPv6 address.", + "type": "string" + }, + "prefix": { + "description": "CIDR prefix used to mask address. For example, an IPv4 prefix of 24 ignores the low-order 8 bits of address.", + "type": "integer", + "format": "int64" + }, + "policy": { + "description": "The allow or deny policy of this rule.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtFirewallRulePolicyPolicy" + }, + "interface_name": { + "description": "The interface to which this rule applies. An empty string indicates that the rule applies to all interfaces.\nOnly set if interface name required", + "type": "string" + } + }, + "required": [ + "address", + "prefix", + "policy" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtFirewallRulePolicyPolicy": { + "type": "string", + "description": "FirewallRulePolicy.Policy enumerated type Defines firewall rule policies.", + "enum": [ + "IGNORE", + "ACCEPT", + "REJECT", + "RETURN" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtInterface": { + "type": "object", + "properties": { + "name": { + "description": "Interface name, for example, \"nic0\", \"nic1\".\nIf set, the name was never set", + "type": "string" + }, + "status": { + "description": "Interface status.\nIf set, the name was never set", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtInterfaceInterfaceStatus" + }, + "mac": { + "description": "MAC address. For example 00:0C:29:94:BB:5A.\nIf set, the mac was never set", + "type": "string" + }, + "ipv4": { + "description": "IPv4 Address information.\nipv4 This set IPv4 is not set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv4" + }, + "ipv6": { + "description": "IPv6 Address information.\nipv6 This set IPv6 is not set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv6" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtInterfaceInterfaceStatus": { + "type": "string", + "description": "Interface.InterfaceStatus enumerated type Defines interface status", + "enum": [ + "DOWN", + "UP" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv4": { + "type": "object", + "properties": { + "mode": { + "description": "The Address assignment mode.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv4Mode" + }, + "address": { + "description": "The IPv4 address, for example, \"10.20.80.191\".", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.", + "type": "integer", + "format": "int64" + }, + "default_gateway": { + "description": "The IPv4 address of the default gateway. This configures the global default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.\nIf set, the defaultGateway was never set.", + "type": "string" + }, + "configurable": { + "description": "The IPv4 is configured or not.", + "type": "boolean" + } + }, + "required": [ + "mode", + "address", + "prefix" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv4Mode": { + "type": "string", + "description": "The Ipv4.Mode enumerated type defines different IPv4 address assignment modes.", + "enum": [ + "DHCP", + "STATIC", + "UNCONFIGURED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtIpv6": { + "type": "object", + "properties": { + "dhcp": { + "description": "An address will be assigned by a DHCP server.", + "type": "boolean" + }, + "autoconf": { + "description": "An address will be assigned by Stateless Address Autoconfiguration (SLAAC).", + "type": "boolean" + }, + "configurable": { + "description": "The IPv6 is configured or not.", + "type": "boolean" + }, + "addresses": { + "description": "The list of addresses to be statically assigned.\nIf set, the addresses were never set.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtAddress" + } + }, + "default_gateway": { + "description": "The default gateway for static IP address assignment. This configures the global IPv6 default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.", + "type": "string" + } + }, + "required": [ + "dhcp", + "autoconf", + "configurable", + "default_gateway" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLocalAccounts": { + "type": "object", + "properties": { + "fullname": { + "description": "Full name of the user\nIf unset, the value was never set.", + "type": "string" + }, + "roles": { + "description": "User roles", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled", + "type": "boolean" + }, + "has_password": { + "description": "Is the user password set.", + "type": "boolean" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, pasword can be changed any time.", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, password never expires.", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, a user is never warned.", + "type": "integer", + "format": "int64" + }, + "password": { + "description": "Password\nIf unset, value will not be changed", + "type": "string", + "format": "password" + }, + "email": { + "description": "Email address of the local account\nIf unset, value will not be changed", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLocalAccountsPolicy": { + "type": "object", + "properties": { + "max_days": { + "description": "Maximum number of days a password may be used. If the password is older than this, a password change will be forced.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "min_days": { + "description": "Minimum number of days allowed between password changes. Any password changes attempted sooner than this will be rejected.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "warn_days": { + "description": "Number of days warning given before a password expires. A zero means warning is given only upon the day of expiration.\nIf unset then no warning will be provided.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLogForwarding": { + "type": "object", + "properties": { + "hostname": { + "description": "FQDN or IP address of the logging server to which messages are forwarded.", + "type": "string" + }, + "port": { + "description": "The port on which the remote logging server is listening for forwarded log messages.", + "type": "integer", + "format": "int64" + }, + "protocol": { + "description": "Transport protocol used to forward log messages.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLogForwardingProtocol" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLogForwardingProtocol": { + "type": "string", + "description": "The LogForwarding.Protocol enumerated type defines transport protocols for outbound log messages.", + "enum": [ + "TLS", + "UDP", + "TCP", + "RELP" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtNtp": { + "type": "object", + "properties": { + "servers": { + "description": "Set NTP servers. This variable updates old NTP servers from configuration and sets the input NTP servers in the configuration.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "servers" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtProxyConfiguration": { + "type": "object", + "properties": { + "protocol": { + "description": "The protocol for which proxy should be set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtProxyConfigurationProtocol" + }, + "server": { + "description": "URL of the proxy server\nOnly set if server set in ProxyConfiguration.", + "type": "string" + }, + "port": { + "description": "Port to connect to the proxy server. In a 'get' call, indicates the port connected to the proxy server. In a 'set' call, specifies the port to connect to the proxy server. A value of -1 indicates the default port.\nOnly set if port set in ProxyConfiguration.", + "type": "integer", + "format": "int64" + }, + "username": { + "description": "Username for proxy server.\nOnly set if proxy requires username.", + "type": "string" + }, + "password": { + "description": "Password for proxy server.\nOnly set if proxy requires password.", + "type": "string", + "format": "password" + }, + "enabled": { + "description": "In the result of the #get and #list operations this field indicates whether proxying is enabled for a particular protocol. In the input to the test and set operations this field specifies whether proxying should be enabled for a particular protocol.", + "type": "boolean" + } + }, + "required": [ + "protocol", + "port" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtProxyConfigurationProtocol": { + "type": "string", + "description": "ProxyConfiguration.Protocol enumerated type defines the protocols for which proxying is supported.", + "enum": [ + "HTTP", + "HTTPS", + "FTP" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRecurrenceInfo": { + "type": "object", + "properties": { + "minute": { + "description": "Minute when backup should run.\nOnly set if minute is present in Recurrence Info of backup schedule.", + "type": "integer", + "format": "int64" + }, + "hour": { + "description": "Hour when backup should run. The hour should be specified in 24-hour clock format.\nOnly set if hour is present in Recurrence Info of backup schedule.", + "type": "integer", + "format": "int64" + }, + "days": { + "description": "Day of week when the backup should be run. Days can be specified as list of days.\nIf unset the backup will be run everyday.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRecurrenceInfoDayOfWeek" + } + } + }, + "required": [ + "minute", + "hour" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRecurrenceInfoDayOfWeek": { + "type": "string", + "description": "The RecurrenceInfo.DayOfWeek enumerated type defines the set of days when backup can be scheduled. The days can be specified as a list of individual days. You specify the days when you set the recurrence for a schedule. See RecurrenceInfo.days.", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtRetentionInfo": { + "type": "object", + "properties": { + "max_count": { + "description": "Number of backups which should be retained. If retention is not set, all the backups will be retained forever.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "max_count" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtShell": { + "type": "object", + "properties": { + "enabled": { + "description": "Enabled can be set to true or false", + "type": "boolean" + }, + "timeout": { + "description": "The timeout (in seconds) specifies how long you enable the Shell access. The maximum timeout is 86400 seconds(1 day).", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "timeout" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSmtp": { + "type": "object", + "properties": { + "mail_server": { + "description": "Mail server IP address.\nIf unset then the value will be ignored.", + "type": "string" + }, + "relay_port": { + "description": "Relay port number.\nIf unset then the value will be ignored.", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSoftwareUpdatePolicy": { + "type": "object", + "properties": { + "url": { + "description": "Current appliance update repository URL. Enter \"default\" to reset the url to the default url.\nOnly set if custom URL required", + "type": "string" + }, + "default_URL": { + "description": "Default appliance update repository URL.\nOnly set if default URL required", + "type": "string" + }, + "auto_stage": { + "description": "Check for update at the pre-configured repository URL.\nOnly set if auto stage is enable.", + "type": "boolean" + }, + "check_schedule": { + "description": "The Time structure defines day and time the automatic check for new updates will be run.\nOnly set if Time required.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTime" + } + }, + "username": { + "description": "Username for the url update repository\nOnly set if SoftwareUpdatePolicy requires username.", + "type": "string" + }, + "password": { + "description": "Password for the url update repository\nOnly set if SoftwareUpdatePolicy requires password.", + "type": "string", + "format": "password" + }, + "enable_SSL_cert_validation": { + "description": "Indicates whether certificates will be checked during patching. \n Warning: If this field is set to false, an insecure connection is made to the update repository which can potentially put the appliance security at risk.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtSsh": { + "type": "object", + "properties": { + "enabled": { + "description": "Set enabled state of the SSH-based controlled CLI.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTime": { + "type": "object", + "properties": { + "hour": { + "description": "Time to query for updates Format: HH:MM:SS Military (24 hour) Time Format\nOnly set if hour is present in SoftwareUpdatePolicy", + "type": "string" + }, + "minute": { + "description": "Time to query for updates Format: HH:MM:SS Military (24 hour) Time Format\nOnly set if minute is present in SoftwareUpdatePolicy", + "type": "string" + }, + "day": { + "description": "Day to query for updates\nOnly set if minute is present in SoftwareUpdatePolicy", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimeUpdateDay" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimeUpdateDay": { + "type": "string", + "description": "Time.UpdateDay enumerated type Defines days to query for updates.", + "enum": [ + "MONDAY", + "TUESDAY", + "FRIDAY", + "WEDNESDAY", + "THURSDAY", + "SATURDAY", + "SUNDAY", + "EVERYDAY" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimesync": { + "type": "object", + "properties": { + "mode": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimesyncTimeSyncMode" + } + }, + "required": [ + "mode" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimesyncTimeSyncMode": { + "type": "string", + "description": "The Timesync.TimeSyncMode enumerated type defines time synchronization modes", + "enum": [ + "DISABLED", + "NTP", + "HOST" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtTimezone": { + "type": "object", + "properties": { + "name": { + "description": "Set time zone.", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsApplmgmtUserAccountSettings": { + "type": "object", + "properties": { + "local_accounts_policy": { + "description": "The localAccountsPolicy service provides operations to manage local user accounts.\nOnly set if Password Policy is set to manage local user accounts.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLocalAccountsPolicy" + }, + "root_account_policy": { + "description": "The LocalAccounts service provides operations to manage local user account.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtLocalAccounts" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthcommonPrincipal": { + "type": "object", + "properties": { + "name": { + "description": "Principal name.", + "type": "string" + }, + "group": { + "description": "Is a Group", + "type": "boolean" + } + }, + "required": [ + "name", + "group" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementAuthenticationManagement": { + "type": "object", + "properties": { + "version": { + "description": "The version of authorization management this configuration is applicable to. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "privileges": { + "description": "List of Privileges. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementPrivileges" + } + }, + "global_permissions": { + "description": "List of Global Permission. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementGlobalPermission" + } + }, + "roles": { + "description": "List of Roles. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementRoles" + } + }, + "vc_groups": { + "description": "List of VCGroups. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementVCGroups" + } + }, + "identity_sources": { + "description": "List of Identity Sources added to VC. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementIdentitySource" + } + }, + "password_policy": { + "description": "Password Policy. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementPasswordPolicy" + }, + "token_policy": { + "description": "Token Policy. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementTokenPolicy" + }, + "lockout_policy": { + "description": "Lockout Policy. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementLockoutPolicy" + } + }, + "required": [ + "version", + "global_permissions", + "roles", + "vc_groups" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementGlobalPermission": { + "type": "object", + "properties": { + "principal": { + "description": "Principal with roles. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthcommonPrincipal" + }, + "role_ids": { + "description": "Role Ids assigned to this Principal. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "role_names": { + "description": "Role Names assigned to this Principal. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "type": "string" + } + }, + "propagate": { + "description": "Propagating to child objects. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "boolean" + } + }, + "required": [ + "principal", + "role_names", + "propagate" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementIdentitySource": { + "type": "object", + "properties": { + "identity_source_type": { + "description": "Identity Source Type. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementIdentitySourceType" + }, + "names": { + "description": "Identity Source name. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "type": "string" + } + }, + "alias": { + "description": "Alias for Identity Source. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + } + }, + "required": [ + "identity_source_type", + "names" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementIdentitySourceType": { + "type": "string", + "description": "The IdentitySourceType enumerated type contains the possible Identity Source Types. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "AD_OVER_IWA", + "AD_OVER_LDAP", + "OPEN_LDAP", + "IDP_ADFS", + "IDP_CSP", + "IDP_WS1B", + "IDP_VMWAREID" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementLockoutPolicy": { + "type": "object", + "properties": { + "failed_login_attempts": { + "description": "Maximum number of failed login attempts. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "failure_interval": { + "description": "Time interval between failures. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "unlock_time": { + "description": "Unlock time. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "failed_login_attempts", + "failure_interval", + "unlock_time" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementPasswordPolicy": { + "type": "object", + "properties": { + "special_chars": { + "description": "Minimum special characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "alpha_chars": { + "description": "Minimum alphabetic characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "uppercase_chars": { + "description": "Minimum uppercase characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "lowercase_chars": { + "description": "Minimum lowercase characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "numeric_chars": { + "description": "Minimum numeric characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "adj_identical_chars": { + "description": "Maximum adjacent identical characters. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "password_reuse": { + "description": "Previous password reuse restriction. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "max_life": { + "description": "Maximum lifetime. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "max_length": { + "description": "Maximum length. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "min_length": { + "description": "Minimum length. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "special_chars", + "alpha_chars", + "uppercase_chars", + "lowercase_chars", + "numeric_chars", + "adj_identical_chars", + "password_reuse", + "max_life", + "max_length", + "min_length" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementPrivileges": { + "type": "object", + "properties": { + "id": { + "description": "Privilege identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "description": { + "description": "Privilege description. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "group": { + "description": "Group to which the privilege belongs to. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "is_on_parent": { + "description": "does this apply to the parent entity?. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "boolean" + } + }, + "required": [ + "id", + "group", + "is_on_parent" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementRoles": { + "type": "object", + "properties": { + "id": { + "description": "Role identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "name": { + "description": "Role name which is unique across roles. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "description": { + "description": "Role description. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "privilege_ids": { + "description": "List of Privileges present in the Role. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementTokenPolicy": { + "type": "object", + "properties": { + "clock_tolerance": { + "description": "Clock tolerance ms. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "token_renewal": { + "description": "Maximum token renewal count. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "token_delegation": { + "description": "Maximum token delegation count. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "bearer_refresh": { + "description": "Maximum Bearer RefreshToken lifetime. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "hok_refresh": { + "description": "Maximum HoK RefreshToken lifetime. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "clock_tolerance", + "token_renewal", + "token_delegation", + "bearer_refresh", + "hok_refresh" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementVCGroups": { + "type": "object", + "properties": { + "principal": { + "description": "Unique name of the VC group. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "description": { + "description": "VCGroup description. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "members": { + "description": "List of members present in the vcGroup. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthcommonPrincipal" + } + } + }, + "required": [ + "principal" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterClusterConfigInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the cluster", + "type": "string" + }, + "parent_path": { + "description": "Absolute path from root folder to cluster's parent.\nIf unset, then inventory object placed in root folder.", + "type": "string" + }, + "ha": { + "description": "List of vsphere HA configurations for clusters.\nIf unset, then HA configurations are not set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaVsphereHA" + }, + "ha_vm_overrides": { + "description": "Settings for HA vm overrides.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHaVmOverrides" + } + }, + "drs": { + "description": "Cluster-wide configuration of the vSphere DRS service.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsConfig" + }, + "drs_vm_overrides": { + "description": "List of virtual machine configurations for the vSphere DRS service. Each entry applies to one virtual machine. If a virtual machine is not specified in this list, the service uses the default settings for that virtual machine.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsVmOverrides" + } + }, + "rules": { + "description": "Cluster-wide rules.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsRule" + }, + "groups": { + "description": "Cluster-wide groups.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsGroup" + }, + "proactive_ha": { + "description": "Cluster-wide configuration of the vSphere InfraUpdateHA service.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfig" + }, + "hosts": { + "description": "Host configuration on the datacenter.\nIf unset, then no hosts present in the datacenter.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions defined on the cluster.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + }, + "resource_pools": { + "description": "List of Resource pools.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourcePool" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAdditionalOptions": { + "type": "object", + "properties": { + "advanced_options": { + "description": "Drs configuration additional options", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonOptionValue" + } + }, + "scalable_shares": { + "description": "Enable scalable shares for the resource pools on this cluster.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsScaleSharesBehavior" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAffinityRule": { + "type": "object", + "properties": { + "status": { + "description": "Flag to indicate whether or not the rule is currently satisfied.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsStatus" + }, + "enabled": { + "description": "Flag to indicate whether or not the rule is enabled. Set this property when user configures the rule. The default value is false (disabled). If there is a rule conflict, the Server can override the setting to disable a rule.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "in_compliance": { + "description": "Flag to indicate if the rule is in compliance.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "name": { + "description": "Name of the rule.", + "type": "string" + }, + "mandatory": { + "description": "Flag to indicate whether compliance with this rule is mandatory or optional. The default value is false (optional).\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "user_created": { + "description": "Flag to indicate whether the rule is created by the user or the system.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "vms": { + "description": "List of virtual machines.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAutomation": { + "type": "object", + "properties": { + "automation_level": { + "description": "Specifies the cluster-wide default DRS behavior for virtual machines. You can override the default behavior for a virtual machine.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsBehaviorInfo" + }, + "migration_threshold": { + "description": "Threshold for generated recommendations. DRS generates only those recommendations that are above the specified vmotionRate. Ratings vary from 1 to 5.\nIf unset or empty, the value is skipped.", + "type": "integer", + "format": "int64" + }, + "proactive_drs_enabled": { + "description": "Flag indicating whether or not the ProactiveDRS is enabled.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "virtual_machine_automation": { + "description": "Flag that dictates whether DRS Behavior overrides for individual VMs.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDependencyRule": { + "type": "object", + "properties": { + "status": { + "description": "Flag to indicate whether or not the rule is currently satisfied.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsStatus" + }, + "enabled": { + "description": "Flag to indicate whether or not the rule is enabled. Set this property when user configures the rule. The default value is false (disabled). If there is a rule conflict, the Server can override the setting to disable a rule.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "in_compliance": { + "description": "Flag to indicate if the rule is in compliance.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "name": { + "description": "Name of the rule.", + "type": "string" + }, + "mandatory": { + "description": "Flag to indicate whether compliance with this rule is mandatory or optional. The default value is false (optional).\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "user_created": { + "description": "Flag to indicate whether the rule is created by the user or the system.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "vm_group": { + "description": "Virtual group name. The virtual group may contain one or more virtual machines.", + "type": "string" + }, + "depends_on_vm_group": { + "description": "Depdendency virtual group name. The virtual group may contain one or more virtual machines.", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDpmBehaviorInfo": { + "type": "string", + "description": "The DpmBehaviorInfo enumerated type defines the automation level for DPM service on a cluster.", + "enum": [ + "MANUAL", + "AUTOMATED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsBehaviorInfo": { + "type": "string", + "description": "The DrsBehaviorInfo enumerated type defines the automation levels that can be set on a DRS cluster.", + "enum": [ + "MANUAL", + "PARTIALLY_AUTOMATED", + "FULLY_AUTOMATED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsConfig": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not DRS service is enabled.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "automation": { + "description": "vSphere HA configuration for Automation Level, Migration Threshold Predictive DRS and VM Automation.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAutomation" + }, + "additional_options": { + "description": "vSphere HA configuration for VM Distribution, CPU Over commit Scalable Shares.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAdditionalOptions" + }, + "power_management": { + "description": "vSphere HA configuration for DPM, AutomationLevel, DPM Threshold.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsPowerManagement" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsVmOverrides": { + "type": "object", + "properties": { + "name": { + "description": "Reference to the virtual machine.", + "type": "string" + }, + "behavior": { + "description": "Specifies the particular DRS behavior for this virtual machine.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDrsBehaviorInfo" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsGroup": { + "type": "object", + "properties": { + "vm_groups": { + "description": "List of VM Group details.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsGroupDetails" + } + }, + "host_groups": { + "description": "List of HOST Group details.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsGroupDetails" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsGroupDetails": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the group.", + "type": "string" + }, + "entities": { + "description": "List of VMs or Hosts belonging to the group.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_created": { + "description": "Flag to indicate whether the group is created by the user or the system.\nIf unset or empty, the value is skipped.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsPowerManagement": { + "type": "object", + "properties": { + "dpm_enabled": { + "description": "Flag indicating whether or not the service is enabled. This service can not be enabled, unless DRS is enabled as well.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "automation_level": { + "description": "Specifies the default VMware DPM behavior for hosts. This default behavior can be overridden on a per host.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDpmBehaviorInfo" + }, + "dpm_threshold": { + "description": "DPM Advanced options.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonOptionValue" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfig": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not the service is enabled. InfraUpdateHA will not be active, unless DRS is enabled as well.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "automation_level": { + "description": "Configured behavior. Values are of type BehaviorType.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfigBehaviorType" + }, + "remediation": { + "description": "Configured remediation for moderately degraded hosts. Values are of type RemediationType.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfigRemediationType" + }, + "providers": { + "description": "The list of health update providers configured for this cluster. Providers are identified by their id. If the provider list is empty, InfraUpdateHA will not be active.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfigBehaviorType": { + "type": "string", + "description": "The ProactiveHAConfig.BehaviorType enumerated type defines the behavior for executing the proposed DRS recommendations.", + "enum": [ + "MANUAL", + "AUTOMATED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsProactiveHAConfigRemediationType": { + "type": "string", + "description": "The ProactiveHAConfig.RemediationType enumerated type defines the types of remediation behaviours that can be configured.", + "enum": [ + "QUARANTINE_MODE", + "MAINTENANCE_MODE" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsRule": { + "type": "object", + "properties": { + "vm_affinity_rules": { + "description": "Cluster-wide VM affinity rules.If this is set then AntiAffinityRule, DependencyRule, VmHostRule can not be set.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAffinityRule" + } + }, + "vm_anti_affinity_rules": { + "description": "Cluster-wide VM anti affinity rules.If this is set then AntiAffinityRule, DependencyRule, VmHostRule can not be set.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsAffinityRule" + } + }, + "dependency_rule": { + "description": "Cluster-wide VM-to-VM dependency rules.If this is set then AffinityRule, AntiAffinityRule, VmHostRule can not be set.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsDependencyRule" + } + }, + "vm_host_rule": { + "description": "Cluster-wide VM-to-Host affinity rules.If this is set then AffinityRule, AntiAffinityRule, DependencyRule can not be set.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsVmHostRule" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsScaleSharesBehavior": { + "type": "string", + "description": "", + "enum": [ + "DISABLED", + "SCALE_CPU_AND_MEMORY_SHARES" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsStatus": { + "type": "string", + "description": "The Status enumeration defines a general \"health\" value for a managed entity.", + "enum": [ + "GRAY", + "GREEN", + "YELLOW", + "RED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsVmHostRule": { + "type": "object", + "properties": { + "status": { + "description": "Flag to indicate whether or not the rule is currently satisfied.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterDrsStatus" + }, + "enabled": { + "description": "Flag to indicate whether or not the rule is enabled. Set this property when user configures the rule. The default value is false (disabled). If there is a rule conflict, the Server can override the setting to disable a rule.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "in_compliance": { + "description": "Flag to indicate if the rule is in compliance.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "name": { + "description": "Name of the rule.", + "type": "string" + }, + "mandatory": { + "description": "Flag to indicate whether compliance with this rule is mandatory or optional. The default value is false (optional).\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "user_created": { + "description": "Flag to indicate whether the rule is created by the user or the system.\nIf unset or empty, the value is skipped.", + "type": "boolean" + }, + "vm_group_name": { + "description": "Virtual group name.\nIf unset or empty, the value is skipped.", + "type": "string" + }, + "affine_host_group_name": { + "description": "Name of the affine host group. The affine host group identifies hosts on which VmHotRule#vmGroupName virtual machines can be powered-on.\nIf unset or empty, the value is skipped.", + "type": "string" + }, + "anti_affine_host_group_name": { + "description": "Name of the anti-affine host group. The anti-affine host group identifies hosts on which VmHotRule#vmGroupName virtual machines should not be powered-on.\nIf unset or empty, the value is skipped.", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaAdmissionControl": { + "type": "object", + "properties": { + "host_failures_cluster_tolerates": { + "description": "Number of host failures that should be tolerated, still guaranteeing sufficient resources to restart virtual machines on available hosts. If not set, we assume 1.", + "type": "integer", + "format": "int64" + }, + "policy_type": { + "description": "", + "type": "string" + }, + "host_fail_over_slot_policy": { + "description": "This policy allows setting a fixed slot size", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFixedSizeSlotPolicy" + }, + "cluster_resource_percentage": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaClusterResourcePercentage" + }, + "dedicated_failover_hosts": { + "description": "List of hosts dedicated for failover.", + "type": "array", + "items": { + "type": "string" + } + }, + "performance_degradation_vm_tolerate": { + "description": "Percentage of resource reduction that a cluster of VMs can tolerate in case of a failover.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaClusterResourcePercentage": { + "type": "object", + "properties": { + "cpu": { + "description": "Reserved failover CPU capacity", + "type": "integer", + "format": "int64" + }, + "memory": { + "description": "Reserved failover Memory capacity", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "cpu", + "memory" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponses": { + "type": "object", + "properties": { + "host_monitoring": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesServiceState" + }, + "default_vm_restart_priority": { + "description": "Restart priority for a virtual machine. \n If not specified at either the cluster level or the virtual machine level, this will default to medium. \n\n\n\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesRestartPriority" + }, + "restart_priority_condition_timeout": { + "description": "This setting is used to specify a maximum time the lower priority VMs should wait for the higher priority VMs to be ready. If the higher priority Vms are not ready by this time, then the lower priority VMs are restarted irrespective of the VM ready state. This timeout can be used to prevent the failover of lower priority VMs to be stuck infinitely. Timeout specified in seconds. To use cluster setting for a VM override, set to -1 in per-VM. setting. \n\n\nIf unset or empty, the value is skipped.", + "type": "integer", + "format": "int64" + }, + "additional_delay": { + "description": "After condition has been met, a mandatory delay before starting the next VM restart priority.", + "type": "integer", + "format": "int64" + }, + "host_isolation_response": { + "description": "Indicates whether or not the virtual machine should be powered off if a host determines that it is isolated from the rest of the compute resource. \n If not specified at either the cluster level or the virtual machine level, this will default to powerOff. \n\n\n\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesIsolationResponse" + }, + "datastore_with_pdl_failure_response": { + "description": "VM storage protection setting for storage failures categorized as Permenant Device Loss (PDL). PDL indicates storage device failure or LUN removal. In case of PDL, the failed datastore or device is unlikely to recover. The details of PDL are", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesStorageVmReaction" + }, + "apd_failure_response": { + "description": "VM storage protection setting for storage failures categorized as All Paths Down (APD). APD is a condition where a storage has become inaccessible for unknown reasons. It only indicates loss of connectivity and does not indicate storage device failure or LUN removal (Permanent Device Loss or PDL)", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesStorageVmReaction" + }, + "response_recovery": { + "description": "Action taken by VM Component Protection service for a powered on VM when APD condition clears after APD timeout. \n This property is meaningful only when vSphere HA is turned on. Valid values are specified by FailuresAndResponses.VmReactionOnAPDCleared. The default value is VmReactionOnAPDCleared#none for cluster setting and VmReactionOnAPDCleared#useClusterDefault for per-VM setting.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmReactionOnAPDCleared" + }, + "response_delay": { + "description": "The time interval after an APD timeout has been declared and before VM Component Protection service will terminate the VM. The default value is 180 seconds if not specified. To use cluster setting for a VM override, set to -1 in per-VM setting.", + "type": "integer", + "format": "int64" + }, + "vm_monitoring": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmMonitoringState" + }, + "vm_tools_monitoring_settings": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaVmToolsMonitoringSettings" + } + }, + "required": [ + "datastore_with_pdl_failure_response", + "apd_failure_response" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesIsolationResponse": { + "type": "string", + "description": "The enum defines values that indicate whether or not the virtual machine should be powered off if a host determines that it is isolated from the rest of the cluster.", + "enum": [ + "NONE", + "POWER_OFF", + "SHUTDOWN", + "CLUSTER_ISOLATION_RESPONSE" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesRestartPriority": { + "type": "string", + "description": "The enum defines virtual machine restart priority values to resolve resource contention. The priority determines the preference that HA gives to a virtual machine if sufficient capacity is not available to power on all failed virtual machines. For example, high priority virtual machines on a host get preference over low priority virtual machines.", + "enum": [ + "DISABLED", + "LOWEST", + "LOW", + "MEDIUM", + "HIGH", + "HIGHEST", + "CLUSTER_RESTART_PRIORITY" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesServiceState": { + "type": "string", + "description": "Possible states of an HA service. All services support the disabled and enabled states.", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesStorageVmReaction": { + "type": "string", + "description": "The VM policy settings that determine the response to storage failures.", + "enum": [ + "DISABLED", + "WARNING", + "RESTART_CONSERVATIVE", + "RESTART_AGGRESSIVE", + "CLUSTER_DEFAULT" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmMonitoringState": { + "type": "string", + "description": "The enum defines values that indicate the state of Virtual Machine Health Monitoring. Health Monitoring uses the vmTools (guest) and application agent heartbeat modules. You can configure HA to respond to heartbeat failures of either one or both modules. You can also disable the HA response to heartbeat failures.", + "enum": [ + "VM_MONITORING_DISABLED", + "VM_MONITORING_ONLY", + "VM_AND_APP_MONITORING" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmReactionOnAPDCleared": { + "type": "string", + "description": "If an APD condition clears after an APD timeout condition has been declared and before VM Component Protection service terminated the VM, the guestOS and application may no longer be operational.", + "enum": [ + "NONE", + "RESET", + "USE_CLUSTER_DEFAULT" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFixedSizeSlotPolicy": { + "type": "object", + "properties": { + "cpu": { + "description": "The cpu component of the slot size (in MHz)", + "type": "integer", + "format": "int64" + }, + "memory": { + "description": "The memory component of the slot size (in megabytes)", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "cpu", + "memory" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHaVmOverrides": { + "type": "object", + "properties": { + "name": { + "description": "Reference to the virtual machine.", + "type": "string" + }, + "vm_restart_priority": { + "description": "Restart priority for a virtual machine.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesRestartPriority" + }, + "vm_additional_delay": { + "description": "After condition has been met, a mandatory delay before starting the next VM restart priority.", + "type": "integer", + "format": "int64" + }, + "vm_restart_priority_timeout": { + "description": "This setting is used to specify a maximum time the lower priority VMs should wait for the higher priority VMs to be ready. If the higher priority Vms are not ready by this time, then the lower priority VMs are restarted irrespective of the VM ready state. This timeout can be used to prevent the failover of lower priority VMs to be stuck infinitely.\nIf unset or empty, the value is skipped.", + "type": "integer", + "format": "int64" + }, + "vm_isolation_response": { + "description": "Indicates whether or not the virtual machine should be powered off if a host determines that it is isolated from the rest of the compute resource. \n If not specified at either the cluster level or the virtual machine level, this will default to powerOff. \n\n\n\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesIsolationResponse" + }, + "vm_datastore_with_pdl_failure_response": { + "description": "VM storage protection setting for storage failures categorized as Permenant Device Loss (PDL). PDL indicates storage device failure or LUN removal. In case of PDL, the failed datastore or device is unlikely to recover. The details of PDL are", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesStorageVmReaction" + }, + "vm_apd_failure_response": { + "description": "VM storage protection setting for storage failures categorized as All Paths Down (APD). APD is a condition where a storage has become inaccessible for unknown reasons. It only indicates loss of connectivity and does not indicate storage device failure or LUN removal (Permanent Device Loss or PDL)", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesStorageVmReaction" + }, + "vm_apd_failover_delay": { + "description": "The time interval after an APD timeout has been declared and before VM Component Protection service will terminate the VM. The default value is 180 seconds if not specified. To use cluster setting for a VM override, set to -1 in per-VM setting.", + "type": "integer", + "format": "int64" + }, + "vm_apd_response_recovery": { + "description": "Action taken by VM Component Protection service for a powered on VM when APD condition clears after APD timeout. This property is meaningful only when vSphere HA is turned on. Valid values are", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmReactionOnAPDCleared" + }, + "vm_monitoring": { + "description": "Virtual machine health monitoring is disabled. In this state, HA response to guest and application heartbeat failures are disabled.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponsesVmMonitoringState" + } + }, + "required": [ + "name", + "vm_datastore_with_pdl_failure_response", + "vm_apd_failure_response" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHeartBeatDataStores": { + "type": "object", + "properties": { + "heartbeat_datastore_policy": { + "description": "", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHeartBeatDataStoresHBDatastoreCandidate" + }, + "datastores": { + "description": "", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "heartbeat_datastore_policy" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHeartBeatDataStoresHBDatastoreCandidate": { + "type": "string", + "description": "The policy to determine the candidates from which vCenter Server can choose heartbeat datastores.", + "enum": [ + "USER_SELECTED_DS", + "ALL_FEASIBLE_DS", + "ALL_FEASIBLE_DS_WITH_USER_PREFERENCE" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaVmToolsMonitoringSettings": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not the Virtual Machine Health Monitoring service is enabled. \n The Server does not use this property.", + "type": "boolean" + }, + "cluster_settings": { + "description": "Flag indicating whether to use the cluster settings or the per VM settings. \n The default value is true.", + "type": "boolean" + }, + "failure_interval": { + "description": "If no heartbeat has been received for at least the specified number of seconds, the virtual machine is declared as failed. \n The default value is 30.", + "type": "integer", + "format": "int64" + }, + "min_up_time": { + "description": "The number of seconds for the virtual machine's heartbeats to stabilize after the virtual machine has been powered on. This time should include the guest operating system boot-up time. The virtual machine monitoring will begin only after this period. \n The default value is 120.", + "type": "integer", + "format": "int64" + }, + "max_failures": { + "description": "Maximum number of failures and automated resets allowed during the time that VmToolsMonitoringSettings.max-failure-window specifies. If VmToolsMonitoringSettings.max-failure-window is -1 (no window), this represents the absolute number of failures after which automated response is stopped. \n If a virtual machine exceeds this threshold, in-depth problem analysis is usually needed. \n\n The default value is 3.", + "type": "integer", + "format": "int64" + }, + "max_failure_window": { + "description": "The number of seconds for the window during which up to VmToolsMonitoringSettings.max-failures resets can occur before automated responses stop. \n If set to -1, no failure window is specified. \n\n The default value is -1.", + "type": "integer", + "format": "int64" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaVsphereHA": { + "type": "object", + "properties": { + "enabled": { + "description": "HA Enabled or Disabled Flag to indicate whether or not vSphere HA feature is enabled.", + "type": "boolean" + }, + "failures_and_responses": { + "description": "Configuration settings for HA Failures and responses.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaFailuresAndResponses" + }, + "admission_control": { + "description": "Configuration settings for HA admission control.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaAdmissionControl" + }, + "heartbeat_datastores": { + "description": "Configuration settings for heart beat data store policy.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterHaHeartBeatDataStores" + }, + "advanced_options": { + "description": "Advanced settings.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonOptionValue" + } + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonOptionValue": { + "type": "object", + "properties": { + "key": { + "description": "The name of the option using dot notation to reflect the option's position in a hierarchy. For example, you might have an option called \"Ethernet\" and another option that is a child of that called \"Connection\". In this case, the key for the latter could be defined as \"Ethernet.Connection\"", + "type": "string" + }, + "value": { + "description": "The value of the option. The Any data object type enables you to define any value for the option. Typically, however, the value of an option is of type String or Integer.", + "type": "string" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission": { + "type": "object", + "properties": { + "principal": { + "description": "User/Group name associated with the permission.", + "type": "string" + }, + "group": { + "description": "True if principal is a group.", + "type": "boolean" + }, + "propagate": { + "description": "True if permission can be propagated to child entities.", + "type": "boolean" + }, + "role_id": { + "description": "Role associated with the permission.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "principal", + "group", + "propagate", + "role_id" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatacenterDatacenter": { + "type": "object", + "properties": { + "name": { + "description": "Name of the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.datacenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.datacenter.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path of the inventory object's parent.\nIf unset, then inventory object placed in root folder.", + "type": "string" + }, + "permissions": { + "description": "Permissions defined on the datacenter.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + }, + "standalone_hosts": { + "description": "Host configuration on the datacenter.\nIf unset, then no hosts present in the datacenter.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreDatastore": { + "type": "object", + "properties": { + "name": { + "description": "The identifier of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.datastore.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path of the inventory object's parent.", + "type": "string" + }, + "summary": { + "description": "Summary of the datastore.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreSummary" + }, + "permissions": { + "description": "Permissions defined on the datastore.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + } + }, + "required": [ + "name", + "parent_path" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreMaintenanceModeState": { + "type": "string", + "description": "The MaintenanceModeState enumerated type defines the maintenance mode states of the datastore.", + "enum": [ + "NORMAL", + "ENTERING_MAINTENANCE", + "IN_MAINTENANCE" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastorePodStorageDrsEntry": { + "type": "object", + "properties": { + "storage_drs_config": { + "description": "Storage DRS configuration.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStorageDrsConfigInfo" + } + }, + "required": [ + "storage_drs_config" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStorageDrsConfigInfo": { + "type": "object", + "properties": { + "pod_config": { + "description": "Pod-wide configuration information for the storage DRS service.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStorageDrsPodConfigInfo" + } + }, + "required": [ + "pod_config" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStorageDrsPodConfigInfo": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not storage DRS is enabled.", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStoragePod": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the Storage Pod.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.storagepod. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.storagepod.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path of the inventory object's parent.", + "type": "string" + }, + "pod_storage_drs_entry": { + "description": "Storage DRS related attributes of the Storage Pod.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastorePodStorageDrsEntry" + }, + "permissions": { + "description": "Permissions defined on the Storage Pod.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + } + }, + "required": [ + "name", + "parent_path", + "pod_storage_drs_entry" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreSummary": { + "type": "object", + "properties": { + "capacity": { + "description": "Maximum capacity of this datastore, in bytes. This value is updated periodically by the server. It can be explicitly refreshed with the Refresh operation.", + "type": "integer", + "format": "int64" + }, + "multiple_host_access": { + "description": "More than one host in the datacenter has been configured with access to the datastore. This is only provided by VirtualCenter.\nIf unset, then the datastore not configured with access from more than one host.", + "type": "boolean" + }, + "type": { + "description": "Type of file system volume, such as VMFS or NFS.", + "type": "string" + }, + "maintenance_mode": { + "description": "The current maintenance mode state of the datastore.\nIf unset, then the current maintenance mode state of the datastore is set to normal.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreMaintenanceModeState" + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolder": { + "type": "object", + "properties": { + "datastore": { + "description": "List of datastore folders.\nIf unset. then there are no datastore folders.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails" + } + }, + "datacenter": { + "description": "List of datacenter folders.\nIf unset. then there are no datacenter folders.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails" + } + }, + "vm": { + "description": "List of vm folders.\nIf unset. then there are no vm folders.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails" + } + }, + "network": { + "description": "List of network folders.\nIf unset. then there are no network folders.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails" + } + }, + "host": { + "description": "List of host folders.\nIf unset. then there are no host folders.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolderDetails": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter Server folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.folder.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path of the inventory object's parent.\nIf unset, then inventory object placed in root folder.", + "type": "string" + }, + "permissions": { + "description": "Permissions defined on the folder.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + } + }, + "required": [ + "name" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryHostHostConfig": { + "type": "object", + "properties": { + "name": { + "description": "Name of the host", + "type": "string" + }, + "permissions": { + "description": "Permission on the host.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + }, + "parent_path": { + "description": "Parent of this inventory object.\nIf unset, then inventory object placed in root folder.", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryInventoryManagement": { + "type": "object", + "properties": { + "folders": { + "description": "List of Folders.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryFolderFolder" + }, + "datacenters": { + "description": "List of Datacenters.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatacenterDatacenter" + } + }, + "clusters": { + "description": "List of ClusterConfigurations.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryClusterClusterConfigInfo" + } + }, + "storage_pods": { + "description": "List of Datastore Clusters.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreStoragePod" + } + }, + "datastores": { + "description": "List of Datastores.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryDatastoreDatastore" + } + }, + "networks": { + "description": "List of standard networks.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryNetworkNetwork" + } + }, + "hosts": { + "description": "List of Hosts.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryHostHostConfig" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryNetworkNetwork": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.components.inventory.network.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path of the inventory object's parent.", + "type": "string" + }, + "permissions": { + "description": "Permissions defined on the network.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + } + }, + "required": [ + "name", + "parent_path" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourceAllocationInfo": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolShares" + } + }, + "required": [ + "reservation", + "expandable_reservation", + "limit", + "shares" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourcePool": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter Server resource pool.", + "type": "string" + }, + "parent_path": { + "description": "Parent name for the resource pool.\nIf unset, then inventory object placed in root folder.", + "type": "string" + }, + "child_resource_pools": { + "description": "Identifiers of the child resource pools contained in this resource pool.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm": { + "description": "Identifiers of the virtual machines contained in this resource pool.\nIf unset or empty, the value is skipped.", + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "description": "Summary of the Resource pools.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourcePoolSummary" + }, + "permissions": { + "description": "Permission on the resourcepool.\nIf unset, then no permissions defined on this inventory object.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryCommonPermission" + } + } + }, + "required": [ + "name", + "config" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourcePoolSummary": { + "type": "object", + "properties": { + "cpu_allocation": { + "description": "Resource allocation information for CPU.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourceAllocationInfo" + }, + "memory_allocation": { + "description": "Resource allocation information for memory.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolResourceAllocationInfo" + } + }, + "required": [ + "cpu_allocation", + "memory_allocation" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolShares": { + "type": "object", + "properties": { + "level": { + "description": "The allocation level. It maps to a pre-determined set of numeric values for shares. If the shares value does not map to a predefined size, then the level is set as CUSTOM.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolSharesLevel" + }, + "shares": { + "description": "When Shares.level is set to CUSTOM, it is the number of shares allocated. Otherwise, this value is ignored. \n There is no unit for this value. It is a relative measure based on the settings for other resource pools.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "level", + "shares" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryResourcepoolSharesLevel": { + "type": "string", + "description": "The Shares.Level enumerated type defines the possible values for the allocation level.", + "enum": [ + "LOW", + "NORMAL", + "HIGH", + "CUSTOM" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationInventoryAuthorization": { + "type": "object", + "properties": { + "version": { + "description": "The version of the authorization model this configuration is applicable to.", + "type": "string" + }, + "service_provider_entities": { + "description": "Service provider managed entities configuration of the vCenter.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationServiceProviderEntities" + } + }, + "required": [ + "version" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationPermission": { + "type": "object", + "properties": { + "entity": { + "description": "Full path to the entity for which the permission is set. The entity must be either one of the service provider managed entities, or a child thereof.", + "type": "string" + }, + "principal": { + "description": "The principal for which the permission is set.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthcommonPrincipal" + }, + "role_name": { + "description": "Name of a role in vCenter.", + "type": "string" + }, + "propagate": { + "description": "Whether this permission propagates to child objects.", + "type": "boolean" + } + }, + "required": [ + "entity", + "principal", + "role_name", + "propagate" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationServiceProviderEntities": { + "type": "object", + "properties": { + "entities": { + "description": "List of full paths to the service provider managed entities inside the vCenter.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of the inventory permissions to set inside the container.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationPermission" + } + } + }, + "required": [ + "entities", + "permissions" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterCluster": { + "type": "object", + "properties": { + "name": { + "description": "Name of the management cluster which hosts the management VMs. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path from root folder to management cluster's parent. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "drs": { + "description": "Individual Cluster-level configuration of the vSphere DRS service. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterDrsConfig" + }, + "management_resourcepools": { + "description": "The management cluster provides dedicated resource pools for running the management virtual machines. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourcePool" + } + } + }, + "required": [ + "name", + "parent_path" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterDrsConfig": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not DRS service is enabled. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "boolean" + }, + "automation_level": { + "description": "Specifies the cluster-wide default DRS behavior for virtual machines. You can override the default behavior for a virtual machine. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset or empty, the value is skipped.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterDrsConfigDrsBehaviorInfo" + }, + "migration_threshold": { + "description": "Threshold for generated recommendations. DRS generates only those recommendations that are above the specified vmotionRate. Ratings vary from 1 to 5. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset or empty, the value is skipped.", + "type": "integer", + "format": "int64" + }, + "virtual_machine_automation": { + "description": "Flag that dictates whether DRS Behavior overrides for individual VMs. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterDrsConfigDrsBehaviorInfo": { + "type": "string", + "description": "The DrsConfig.DrsBehaviorInfo enumerated type defines the automation levels that can be set on a DRS cluster. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "MANUAL", + "PARTIALLY_AUTOMATED", + "FULLY_AUTOMATED" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementCluster": { + "type": "object", + "properties": { + "name": { + "description": "To be deprecated. Name of the management cluster which hosts the management VMs. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "parent_path": { + "description": "To be deprecated. Absolute path from root folder to management cluster's parent. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "drs": { + "description": "To be deprecated. Cluster-wide configuration of the vSphere DRS service. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterDrsConfig" + }, + "management_resourcepools": { + "description": "To be deprecated. The management cluster provides dedicated resource pools for running the management virtual machines. Management cluster can can run workload VMs outside this resource pools. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourcePool" + } + }, + "clusters": { + "description": "The management cluster have a list of cluster where management VMs may be deployed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterCluster" + } + } + } + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementVirtualMachine": { + "type": "object", + "properties": { + "name": { + "description": "Name of the management virtual machine configuration. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "mo_id": { + "description": "Managed Object identifier of the management virtual machine. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "vm_type": { + "description": "Type of the management virtual machine. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementVirtualMachineManagementVMType" + }, + "parent_path": { + "description": "Absolute path from root folder to management virtual machine parent vm folder. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "resource_config": { + "description": "Configuration of the management virtual machine. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, then there is no configuration.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceConfigSpec" + } + }, + "required": [ + "name", + "vm_type", + "parent_path" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementVirtualMachineManagementVMType": { + "type": "string", + "description": "The ManagementVirtualMachine.ManagementVMType enumerated type defines the type of management virtual machine. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "VCENTER", + "CLOUD_GATEWAY" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceAllocationInfo": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool or a virtual machine. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterShares" + } + }, + "required": [ + "reservation", + "expandable_reservation", + "limit", + "shares" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceConfigSpec": { + "type": "object", + "properties": { + "cpu_allocation": { + "description": "Resource allocation information for CPU. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceAllocationInfo" + }, + "memory_allocation": { + "description": "Resource allocation information for memory. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceAllocationInfo" + } + }, + "required": [ + "cpu_allocation", + "memory_allocation" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourcePool": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter Server resource pool. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "parent_path": { + "description": "Absolute path from root folder to resource pool's parent. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "config": { + "description": "Summary of the resource pool containing the resource spec. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterResourceConfigSpec" + }, + "vm": { + "description": "The management virtual machines contained in this resource pool. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset or empty, no virtual machine is expected to run in this resource pool..", + "type": "array", + "items": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementVirtualMachine" + } + } + }, + "required": [ + "name", + "parent_path", + "config" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterShares": { + "type": "object", + "properties": { + "level": { + "description": "The allocation level. It maps to a pre-determined set of numeric values for shares. If the shares value does not map to a predefined size, then the level is set as CUSTOM. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterSharesLevel" + }, + "shares": { + "description": "When Shares.level is set to CUSTOM, it is the number of shares allocated. Otherwise, this value is ignored. \n There is no unit for this value. It is a relative measure based on the settings for other resource pools.\n. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "level", + "shares" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsManagementclusterSharesLevel": { + "type": "string", + "description": "The Shares.Level enumerated type defines the possible values for the allocation level. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "LOW", + "NORMAL", + "HIGH", + "CUSTOM" + ] + }, + "ApplianceVcenterSettingsV1ConfigComponentsVsphereuiconfigurationVsphereUIConfiguration": { + "type": "object", + "properties": { + "enable_IDP_configuration": { + "description": "Property to configure the IDPConfiguration view, with this enabled, user will be able to view and configure IDP", + "type": "boolean" + }, + "enable_cloud_admin_role_protection": { + "description": "Property to enable CloudAdminRoleProtection in the UI", + "type": "boolean" + }, + "enable_deprecated_vc_alert": { + "description": "Property to enable DeprecatedVcAlert in the UI", + "type": "boolean" + }, + "enable_intercom_chat": { + "description": "Property to enable Intercom Chat in the UI", + "type": "boolean" + }, + "enable_file_browser_download_upload_from_vc": { + "description": "Property to enable file browser download and upload from VC", + "type": "boolean" + }, + "enable_hybrid_management": { + "description": "Property to enable hybrid management view.", + "type": "boolean" + }, + "enable_ceip": { + "description": "Property to enable CEIP view from Administration -> Deployment.", + "type": "boolean" + }, + "help_url_pointing_to_aws": { + "description": "Property that indicates that Help url should point to url for AWS.", + "type": "boolean" + }, + "enable_ad_iwa_ids": { + "description": "Property that indicates Identity Source of type IWA should be enabled.", + "type": "boolean" + }, + "enable_csp_oidc_federation": { + "description": "Property that indicates CSP OIDC identity provider configured in vCenter.", + "type": "boolean" + } + } + }, + "ApplianceVcenterSettingsV1ConfigCreate": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigCreateSpec", + "description": "Specification of the profile to be created." + }, + "ApplianceVcenterSettingsV1ConfigCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "description": { + "description": "Description of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the description will be empty.", + "type": "string" + }, + "desired_state": { + "description": "Defines the desired state. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + } + }, + "required": [ + "name", + "desired_state" + ] + }, + "ApplianceVcenterSettingsV1ConfigCurrentInvokerType": { + "type": "string", + "description": "The ConfigCurrent.InvokerType enumerated type contains the possible invoker type, to be passed on to plugins to understand the consumer. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "USER", + "INTERNAL" + ] + }, + "ApplianceVcenterSettingsV1ConfigInfo": { + "type": "object", + "properties": { + "profile": { + "description": "The identifier of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.profile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.profile.", + "type": "string" + }, + "version": { + "description": "Version of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.vcenter.settings.v1.config.version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.vcenter.settings.v1.config.version.", + "type": "string" + }, + "name": { + "description": "Name of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "creation_time": { + "description": "Creation time of the profile. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string", + "format": "date-time" + }, + "owner": { + "description": "Owner of the profile, the one who created. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "description": { + "description": "Custom description provided by the user. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset description will be empty.", + "type": "string" + }, + "desired_state": { + "description": "The desired state. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + } + }, + "required": [ + "profile", + "version", + "name", + "creation_time", + "owner", + "desired_state" + ] + }, + "ApplianceVcenterSettingsV1ConfigScanDesiredStateTask": { + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigScanSpec", + "description": "" + }, + "ApplianceVcenterSettingsV1ConfigScanSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message for the scan. This may act as an identification for the scan operation. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the message will be empty.", + "type": "string" + }, + "desired_state": { + "description": "Defines the desired state. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1DesiredState" + } + }, + "required": [ + "desired_state" + ] + }, + "ApplianceVcenterSettingsV1DesiredState": { + "type": "object", + "properties": { + "appliance": { + "description": "Appliance Management component desired spec. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsApplmgmtApplianceManagement" + }, + "authmgmt": { + "description": "Authentication Management component desired spec. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsAuthmanagementAuthenticationManagement" + }, + "inventory": { + "description": "Inventory Configurations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryInventoryManagement" + }, + "vsphereuiconfiguration": { + "description": "Clientcapabilities Configurations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsVsphereuiconfigurationVsphereUIConfiguration" + }, + "invtauthmgmt": { + "description": "Inventory Authorization. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsInventoryauthorizationInventoryAuthorization" + }, + "managementcluster": { + "description": "Management Cluster Configurations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/ApplianceVcenterSettingsV1ConfigComponentsManagementclusterManagementCluster" + } + } + }, + "CisTaskProgress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "CisTaskStatus": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "VapiStdDynamicID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsAlreadyInDesiredState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsFeatureInUse": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceBusy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsTimedOut": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnableToAllocateResource": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "appliance.access.consolecli_resp": { + "type": "object", + "properties": { + "value": { + "type": "boolean" + } + }, + "required": [ + "value" + ] + }, + "appliance.access.consolecli_set": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Console-based controlled CLI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "appliance.access.dcui_resp": { + "type": "object", + "properties": { + "value": { + "type": "boolean" + } + }, + "required": [ + "value" + ] + }, + "appliance.access.dcui_set": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "DCUI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "appliance.access.shell.shell_config": { + "type": "object", + "properties": { + "enabled": { + "description": "Enabled can be set to true or false", + "type": "boolean" + }, + "timeout": { + "description": "The timeout (in seconds) specifies how long you enable the Shell access. The maximum timeout is 86400 seconds(1 day).", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled", + "timeout" + ] + }, + "appliance.access.shell_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.access.shell.shell_config" + } + }, + "required": [ + "value" + ] + }, + "appliance.access.shell_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.access.shell.shell_config", + "description": "Shell configuration" + } + }, + "required": [ + "config" + ] + }, + "appliance.access.ssh_resp": { + "type": "object", + "properties": { + "value": { + "type": "boolean" + } + }, + "required": [ + "value" + ] + }, + "appliance.access.ssh_set": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "SSH-based controlled CLI is enabled." + } + }, + "required": [ + "enabled" + ] + }, + "appliance.health.applmgmt_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.database.info": { + "type": "object", + "properties": { + "status": { + "description": "Database health status", + "$ref": "#/definitions/appliance.health.database.info.status" + }, + "messages": { + "description": "Messages describing any issues with the database, along with their severity.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.health.database.message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.health.database.info.status": { + "type": "string", + "description": "The Database.Info.Status enumerated type describes the health of the database.", + "enum": [ + "UNHEALTHY", + "DEGRADED", + "HEALTHY" + ] + }, + "appliance.health.database.message": { + "type": "object", + "properties": { + "severity": { + "description": "Severity of the message.", + "$ref": "#/definitions/appliance.health.database.message.severity" + }, + "message": { + "description": "Message describing the issue with the database.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "severity", + "message" + ] + }, + "appliance.health.database.message.severity": { + "type": "string", + "description": "The MessageSeverity enumerated type defines the levels of severity for a message.", + "enum": [ + "ERROR", + "WARNING" + ] + }, + "appliance.health.database_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.database.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.databasestorage.health_level": { + "type": "string", + "description": "Databasestorage.HealthLevel enumerated type Defines service health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.databasestorage_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.databasestorage.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.load.health_level": { + "type": "string", + "description": "Load.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.load_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.load.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.mem.health_level": { + "type": "string", + "description": "Mem.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.mem_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.mem.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.messages_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.notification" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.health.softwarepackages.health_level": { + "type": "string", + "description": "Softwarepackages.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.softwarepackages_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.softwarepackages.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.storage.health_level": { + "type": "string", + "description": "Storage.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.storage_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.storage.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.swap.health_level": { + "type": "string", + "description": "Swap.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.swap_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.swap.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.system.health_level": { + "type": "string", + "description": "System.HealthLevel enumerated type Defines health levels.", + "enum": [ + "orange", + "gray", + "green", + "red", + "yellow" + ] + }, + "appliance.health.system.lastcheck_resp": { + "type": "object", + "properties": { + "value": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "value" + ] + }, + "appliance.health.system_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health.system.health_level" + } + }, + "required": [ + "value" + ] + }, + "appliance.health_check_settings.setting_spec": { + "type": "object", + "properties": { + "db_health_check_state_manual_backup": { + "description": "Health check state of database during manual backup with this option set, the health status of the particular health check will be reported", + "type": "boolean" + }, + "db_health_check_state_scheduled_backup": { + "description": "Health check state of database during schedule backup with this option set, the health status of the particular health check will be reported", + "type": "boolean" + } + }, + "required": [ + "db_health_check_state_manual_backup", + "db_health_check_state_scheduled_backup" + ] + }, + "appliance.health_check_settings.update_spec": { + "type": "object", + "properties": { + "db_health_check_state_manual_backup": { + "description": "Health check state of database during manual backup with this option set, the health status of the particular health check will be enabled\nIf unset the current state will remain unchanged.", + "type": "boolean" + }, + "db_health_check_state_scheduled_backup": { + "description": "Health check state of database during schedule backup with this option set, the health status of the particular health check will be enabled\nIf unset the current state will remain unchanged.", + "type": "boolean" + } + } + }, + "appliance.health_check_settings_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.health_check_settings.setting_spec" + } + }, + "required": [ + "value" + ] + }, + "appliance.health_check_settings_update": { + "type": "object", + "properties": { + "health_settings": { + "$ref": "#/definitions/appliance.health_check_settings.update_spec", + "description": "" + } + }, + "required": [ + "health_settings" + ] + }, + "appliance.local_accounts.config": { + "type": "object", + "properties": { + "password": { + "description": "Password", + "type": "string", + "format": "password" + }, + "old_password": { + "description": "Old password of the user (required in case of the password change, not required if superAdmin user changes the password of the other user)\nIf unset, user may not have password set.", + "type": "string", + "format": "password" + }, + "full_name": { + "description": "Full name of the user\nIf unset, user will have no fullname.", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, user will have no email.", + "type": "string" + }, + "roles": { + "description": "User roles\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled\nIf unset, defaults to True", + "type": "boolean" + }, + "password_expires": { + "description": "Flag indicating if the account password expires\nIf unset, defaults to True.", + "type": "boolean" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "string", + "format": "date-time" + }, + "inactive_after_password_expiration": { + "description": "Flag indicating if the account will be locked after password expiration\nIf unset, defaults to True.", + "type": "boolean" + }, + "days_after_password_expiration": { + "description": "Number of days after password expiration before the account will be locked\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, will be taken from system defaults (see local-accounts/policy).", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "password", + "roles" + ] + }, + "appliance.local_accounts.info": { + "type": "object", + "properties": { + "fullname": { + "description": "Full name of the user\nIf unset, the value was never set.", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, the value was never set.", + "type": "string" + }, + "roles": { + "description": "User roles\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled", + "type": "boolean" + }, + "has_password": { + "description": "Is the user password set.", + "type": "boolean" + }, + "last_password_change": { + "description": "Date and time password was changed.\nIf unset, the password was never set.", + "type": "string", + "format": "date-time" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, the password never expires.", + "type": "string", + "format": "date-time" + }, + "inactive_at": { + "description": "Date and time account will be locked after password expiration.\nIf unset, account will not be locked.", + "type": "string", + "format": "date-time" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, pasword can be changed any time.", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, password never expires.", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, a user is never warned.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "roles", + "enabled", + "has_password" + ] + }, + "appliance.local_accounts.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.local_accounts.policy.info": { + "type": "object", + "properties": { + "max_days": { + "description": "Maximum number of days a password may be used. If the password is older than this, a password change will be forced.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "min_days": { + "description": "Minimum number of days allowed between password changes. Any password changes attempted sooner than this will be rejected.\nIf unset then the restriction will be ignored.", + "type": "integer", + "format": "int64" + }, + "warn_days": { + "description": "Number of days warning given before a password expires. A zero means warning is given only upon the day of expiration.\nIf unset then no warning will be provided.", + "type": "integer", + "format": "int64" + } + } + }, + "appliance.local_accounts.policy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.local_accounts.policy.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.local_accounts.policy_set": { + "type": "object", + "properties": { + "policy": { + "$ref": "#/definitions/appliance.local_accounts.policy.info", + "description": "Global password policy" + } + }, + "required": [ + "policy" + ] + }, + "appliance.local_accounts.update_config": { + "type": "object", + "properties": { + "password": { + "description": "Password\nIf unset, value will not be changed", + "type": "string", + "format": "password" + }, + "old_password": { + "description": "Old password of the user (required in case of the password change, not required if superAdmin user changes the password of the other user)\nIf unset, user may not have password set.", + "type": "string", + "format": "password" + }, + "full_name": { + "description": "Full name of the user\nIf unset, value will not be changed", + "type": "string" + }, + "email": { + "description": "Email address of the local account\nIf unset, value will not be changed", + "type": "string" + }, + "roles": { + "description": "User roles\nIf unset, value will not be changed\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.roles. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.roles.", + "type": "array", + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Flag indicating if the account is enabled\nIf unset, value will not be changed", + "type": "boolean" + }, + "password_expires": { + "description": "Flag indicating if the account password expires\nIf unset, value will not be changed", + "type": "boolean" + }, + "password_expires_at": { + "description": "Date when the account's password will expire\nIf unset, value will not be changed", + "type": "string", + "format": "date-time" + }, + "inactive_after_password_expiration": { + "description": "Flag indicating if the account will be locked after password expiration\nIf unset, value will not be changed", + "type": "boolean" + }, + "days_after_password_expiration": { + "description": "Number of days after password expiration before the account will be locked\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "min_days_between_password_change": { + "description": "Minimum number of days between password change\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "max_days_between_password_change": { + "description": "Maximum number of days between password change\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + }, + "warn_days_before_password_expiration": { + "description": "Number of days of warning before password expires\nIf unset, value will not be changed", + "type": "integer", + "format": "int64" + } + } + }, + "appliance.local_accounts_create": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.local_accounts.config", + "description": "User configuration" + } + }, + "required": [ + "config" + ] + }, + "appliance.local_accounts_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.local_accounts.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.local_accounts_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.local_accounts.config", + "description": "User configuration" + } + }, + "required": [ + "config" + ] + }, + "appliance.local_accounts_update": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.local_accounts.update_config", + "description": "User configuration" + } + }, + "required": [ + "config" + ] + }, + "appliance.logging.forwarding.config": { + "type": "object", + "properties": { + "hostname": { + "description": "FQDN or IP address of the logging server to which messages are forwarded.", + "type": "string" + }, + "port": { + "description": "The port on which the remote logging server is listening for forwarded log messages.", + "type": "integer", + "format": "int64" + }, + "protocol": { + "description": "Transport protocol used to forward log messages.", + "$ref": "#/definitions/appliance.logging.forwarding.protocol" + } + }, + "required": [ + "hostname", + "port", + "protocol" + ] + }, + "appliance.logging.forwarding.connection_status": { + "type": "object", + "properties": { + "hostname": { + "description": "FQDN or IP address of the configured remote logging servers.", + "type": "string" + }, + "state": { + "description": "State of the configured remote logging server.", + "$ref": "#/definitions/appliance.logging.forwarding.connection_status.state" + }, + "message": { + "description": "Message associated with the state of the configured remote logging server.\nIf unset, there is no message to be shown.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "hostname", + "state" + ] + }, + "appliance.logging.forwarding.connection_status.state": { + "type": "string", + "description": "The Forwarding.ConnectionStatus.State enumerated type defines the state values that a remote logging server can be in.", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ] + }, + "appliance.logging.forwarding.protocol": { + "type": "string", + "description": "The Forwarding.Protocol enumerated type defines transport protocols for outbound log messages.", + "enum": [ + "TLS", + "UDP", + "TCP" + ] + }, + "appliance.logging.forwarding.test_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.logging.forwarding.connection_status" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.logging.forwarding_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.logging.forwarding.config" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.logging.forwarding_set": { + "type": "object", + "properties": { + "cfg_list": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.logging.forwarding.config" + }, + "description": "The cfgList is a list of Config structure that contains the log message forwarding rules in terms of the host, port, protocol of the log message." + } + }, + "required": [ + "cfg_list" + ] + }, + "appliance.logging.forwarding_test": { + "type": "object", + "properties": { + "send_test_message": { + "type": "boolean", + "description": "Flag specifying whether a default test message should be sent to the configured logging servers.\nIf unset, no test message will be sent to the configured remote logging servers." + } + } + }, + "appliance.monitoring.function_type": { + "type": "string", + "description": "Monitoring.FunctionType enumerated type Defines aggregation function", + "enum": [ + "COUNT", + "MAX", + "AVG", + "MIN" + ] + }, + "appliance.monitoring.interval_type": { + "type": "string", + "description": "Monitoring.IntervalType enumerated type Defines interval between the values in hours and mins, for which aggregation will apply", + "enum": [ + "MINUTES30", + "HOURS2", + "MINUTES5", + "DAY1", + "HOURS6" + ] + }, + "appliance.monitoring.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.monitoring.monitored_item" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.monitoring.monitored_item": { + "type": "object", + "properties": { + "id": { + "description": "monitored item ID Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.monitoring.", + "type": "string" + }, + "name": { + "description": "monitored item name Ex: \"Network write speed\"", + "type": "string" + }, + "units": { + "description": "Y-axis label EX: \"Mbps\", \"%\"", + "type": "string" + }, + "category": { + "description": "category Ex: network, storage etc", + "type": "string" + }, + "instance": { + "description": "instance name Ex: eth0", + "type": "string" + }, + "description": { + "description": "monitored item description Ex: applmgmt.mon.descr.net.rx.packetRate.eth0", + "type": "string" + } + }, + "required": [ + "id", + "name", + "units", + "category", + "instance", + "description" + ] + }, + "appliance.monitoring.monitored_item_data": { + "type": "object", + "properties": { + "name": { + "description": "Monitored item IDs Ex: CPU, MEMORY, STORAGE_TOTAL\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.monitoring.", + "type": "string" + }, + "interval": { + "description": "interval between values in hours, minutes", + "$ref": "#/definitions/appliance.monitoring.interval_type" + }, + "function": { + "description": "aggregation function", + "$ref": "#/definitions/appliance.monitoring.function_type" + }, + "start_time": { + "description": "Start time in UTC", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "End time in UTC", + "type": "string", + "format": "date-time" + }, + "data": { + "description": "list of values", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "interval", + "function", + "start_time", + "end_time", + "data" + ] + }, + "appliance.monitoring.monitored_item_data_request": { + "type": "object", + "properties": { + "names": { + "description": "monitored item IDs Ex: CPU, MEMORY\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.monitoring. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.monitoring.", + "type": "array", + "items": { + "type": "string" + } + }, + "interval": { + "description": "interval between values in hours, minutes", + "$ref": "#/definitions/appliance.monitoring.interval_type" + }, + "function": { + "description": "aggregation function", + "$ref": "#/definitions/appliance.monitoring.function_type" + }, + "start_time": { + "description": "Start time in UTC", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "End time in UTC", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "names", + "interval", + "function", + "start_time", + "end_time" + ] + }, + "appliance.monitoring.query_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.monitoring.monitored_item_data" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.monitoring_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.monitoring.monitored_item" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.DNS_info": { + "type": "object", + "properties": { + "mode": { + "description": "DNS mode.", + "$ref": "#/definitions/appliance.networking.DNS_info.DNS_mode" + }, + "hostname": { + "description": "Hostname.", + "type": "string" + }, + "servers": { + "description": "Servers.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "mode", + "hostname", + "servers" + ] + }, + "appliance.networking.DNS_info.DNS_mode": { + "type": "string", + "description": "The Networking.DnsInfo.DnsMode enumerated type describes the source of DNS servers.", + "enum": [ + "DHCP", + "STATIC" + ] + }, + "appliance.networking.change_spec": { + "type": "object", + "properties": { + "hostname": { + "description": "New hostname to assign to the management network of vCenter appliance", + "type": "string" + }, + "SSO_user": { + "description": "vCenter Server SSO administrator username", + "type": "string" + }, + "SSO_password": { + "description": "vCenter Server SSO administrator Password", + "type": "string", + "format": "password" + }, + "dns": { + "description": "DNS Configuration to set for the machine\nIf unset DNS settings will not be changed", + "$ref": "#/definitions/appliance.networking.dns.servers.DNS_server_config" + }, + "ipv4": { + "description": "IPv4 Configuration to set for the machine\nIf unset IPv4 settings will not be changed", + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.config" + }, + "ipv6": { + "description": "IPv6 Configuration to set for the machine\nIf unset IPv6 settings will not be changed", + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.config" + } + }, + "required": [ + "hostname", + "SSO_user", + "SSO_password" + ] + }, + "appliance.networking.change_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.domains.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.domains_add": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain to add." + } + }, + "required": [ + "domain" + ] + }, + "appliance.networking.dns.domains_set": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of domains." + } + }, + "required": [ + "domains" + ] + }, + "appliance.networking.dns.hostname.message": { + "type": "object", + "properties": { + "message": { + "description": "message", + "type": "string" + }, + "result": { + "description": "result of the test", + "$ref": "#/definitions/appliance.networking.dns.hostname.message_status" + } + }, + "required": [ + "message", + "result" + ] + }, + "appliance.networking.dns.hostname.message_status": { + "type": "string", + "description": "Hostname.MessageStatus enumerated type Individual test result", + "enum": [ + "failure", + "success" + ] + }, + "appliance.networking.dns.hostname.test_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.dns.hostname.test_status_info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.hostname.test_status": { + "type": "string", + "description": "Hostname.TestStatus enumerated type Health indicator", + "enum": [ + "orange", + "green", + "red" + ] + }, + "appliance.networking.dns.hostname.test_status_info": { + "type": "object", + "properties": { + "status": { + "description": "Overall status of tests run.", + "$ref": "#/definitions/appliance.networking.dns.hostname.test_status" + }, + "messages": { + "description": "messages", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.dns.hostname.message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.networking.dns.hostname_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.hostname_set": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "FQDN." + } + }, + "required": [ + "name" + ] + }, + "appliance.networking.dns.hostname_test": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "FQDN." + } + }, + "required": [ + "name" + ] + }, + "appliance.networking.dns.servers.DNS_server_config": { + "type": "object", + "properties": { + "mode": { + "description": "Define how to determine the DNS servers. Leave the servers argument empty if the mode argument is \"DHCP\". Set the servers argument to a comma-separated list of DNS servers if the mode argument is \"static\". The DNS server are assigned from the specified list.", + "$ref": "#/definitions/appliance.networking.dns.servers.DNS_server_mode" + }, + "servers": { + "description": "List of the currently used DNS servers.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "mode", + "servers" + ] + }, + "appliance.networking.dns.servers.DNS_server_mode": { + "type": "string", + "description": "Servers.DNSServerMode enumerated type Describes DNS Server source (DHCP,static)", + "enum": [ + "dhcp", + "is_static" + ] + }, + "appliance.networking.dns.servers.message": { + "type": "object", + "properties": { + "message": { + "description": "message", + "type": "string" + }, + "result": { + "description": "result of the test", + "$ref": "#/definitions/appliance.networking.dns.servers.message_status" + } + }, + "required": [ + "message", + "result" + ] + }, + "appliance.networking.dns.servers.message_status": { + "type": "string", + "description": "Servers.MessageStatus enumerated type Individual test result", + "enum": [ + "failure", + "success" + ] + }, + "appliance.networking.dns.servers.test_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.dns.servers.test_status_info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.servers.test_status": { + "type": "string", + "description": "Servers.TestStatus enumerated type Health indicator", + "enum": [ + "orange", + "green", + "red" + ] + }, + "appliance.networking.dns.servers.test_status_info": { + "type": "object", + "properties": { + "status": { + "description": "Overall status of tests run.", + "$ref": "#/definitions/appliance.networking.dns.servers.test_status" + }, + "messages": { + "description": "messages", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.dns.servers.message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.networking.dns.servers_add": { + "type": "object", + "properties": { + "server": { + "type": "string", + "description": "DNS server." + } + }, + "required": [ + "server" + ] + }, + "appliance.networking.dns.servers_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.dns.servers.DNS_server_config" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.dns.servers_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.networking.dns.servers.DNS_server_config", + "description": "DNS server configuration." + } + }, + "required": [ + "config" + ] + }, + "appliance.networking.dns.servers_test": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "DNS servers." + } + }, + "required": [ + "servers" + ] + }, + "appliance.networking.firewall.inbound.policy": { + "type": "string", + "description": "Inbound.Policy enumerated type Defines firewall rule policies.", + "enum": [ + "IGNORE", + "ACCEPT", + "REJECT", + "RETURN" + ] + }, + "appliance.networking.firewall.inbound.rule": { + "type": "object", + "properties": { + "address": { + "description": "IPv4 or IPv6 address.", + "type": "string" + }, + "prefix": { + "description": "CIDR prefix used to mask address. For example, an IPv4 prefix of 24 ignores the low-order 8 bits of address.", + "type": "integer", + "format": "int64" + }, + "policy": { + "description": "The allow or deny policy of this rule.", + "$ref": "#/definitions/appliance.networking.firewall.inbound.policy" + }, + "interface_name": { + "description": "The interface to which this rule applies. An empty string indicates that the rule applies to all interfaces.", + "type": "string" + } + }, + "required": [ + "address", + "prefix", + "policy" + ] + }, + "appliance.networking.firewall.inbound_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.firewall.inbound.rule" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.firewall.inbound_set": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.firewall.inbound.rule" + }, + "description": "List of address-based firewall rules." + } + }, + "required": [ + "rules" + ] + }, + "appliance.networking.info": { + "type": "object", + "properties": { + "dns": { + "description": "DNS configuration.", + "$ref": "#/definitions/appliance.networking.DNS_info" + }, + "interfaces": { + "description": "Interface configuration as a key-value map where key is a network interface name, for example, \"nic0\".\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: appliance.networking.interfaces. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: appliance.networking.interfaces.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.networking.interfaces.interface_info" + } + } + } + } + }, + "required": [ + "dns", + "interfaces" + ] + }, + "appliance.networking.interfaces.interface_info": { + "type": "object", + "properties": { + "name": { + "description": "Interface name, for example, \"nic0\", \"nic1\".", + "type": "string" + }, + "status": { + "description": "Interface status.", + "$ref": "#/definitions/appliance.networking.interfaces.interface_status" + }, + "mac": { + "description": "MAC address. For example 00:0C:29:94:BB:5A.", + "type": "string" + }, + "ipv4": { + "description": "IPv4 Address information.\nipv4 This field will be unset if IPv4 is not enabled.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.info" + }, + "ipv6": { + "description": "IPv6 Address information.\nipv6 This field will be unset if IPv6 is not enabled.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.info" + } + }, + "required": [ + "name", + "status", + "mac" + ] + }, + "appliance.networking.interfaces.interface_status": { + "type": "string", + "description": "Interfaces.InterfaceStatus enumerated type Defines interface status", + "enum": [ + "down", + "up" + ] + }, + "appliance.networking.interfaces.ipv4.config": { + "type": "object", + "properties": { + "mode": { + "description": "The Address assignment mode.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.mode" + }, + "address": { + "description": "The IPv4 address, for example, \"10.20.80.191\".\nThis field is optional and it is only relevant when the value of Ipv4.Config.mode is STATIC.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.Config.mode is STATIC.", + "type": "integer", + "format": "int64" + }, + "default_gateway": { + "description": "The IPv4 address of the default gateway. This configures the global default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.\nIf unset, the defaultGateway was never set.", + "type": "string" + } + }, + "required": [ + "mode" + ] + }, + "appliance.networking.interfaces.ipv4.info": { + "type": "object", + "properties": { + "configurable": { + "description": "The specified network interface is configurable or not.", + "type": "boolean" + }, + "mode": { + "description": "The Address assignment mode.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.mode" + }, + "address": { + "description": "The IPv4 address, for example, \"10.20.80.191\".\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "integer", + "format": "int64" + }, + "default_gateway": { + "description": "The IPv4 address of the default gateway. This configures the global default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.\nThis field is optional and it is only relevant when the value of Ipv4.Info.mode is one of STATIC or DHCP.", + "type": "string" + } + }, + "required": [ + "configurable", + "mode" + ] + }, + "appliance.networking.interfaces.ipv4.mode": { + "type": "string", + "description": "The Ipv4.Mode enumerated type defines different IPv4 address assignment modes.", + "enum": [ + "DHCP", + "STATIC", + "UNCONFIGURED" + ] + }, + "appliance.networking.interfaces.ipv4_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.interfaces.ipv4_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv4.config", + "description": "The IPv4 Network configuration to set." + } + }, + "required": [ + "config" + ] + }, + "appliance.networking.interfaces.ipv6.address": { + "type": "object", + "properties": { + "address": { + "description": "The IPv6 address, for example, fc00:10:20:83:20c:29ff:fe94:bb5a.", + "type": "string" + }, + "prefix": { + "description": "The IPv6 CIDR prefix, for example, 64.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "appliance.networking.interfaces.ipv6.address_info": { + "type": "object", + "properties": { + "origin": { + "description": "The Origin of the IPv6 address. For more information, see RFC 4293.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.origin" + }, + "status": { + "description": "The Status of the IPv6 address. For more information, see RFC 4293.", + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.status" + }, + "address": { + "description": "The IPv6 address, for example, fc00:10:20:83:20c:29ff:fe94:bb5a.", + "type": "string" + }, + "prefix": { + "description": "The IPv6 CIDR prefix, for example, 64.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "origin", + "status", + "address", + "prefix" + ] + }, + "appliance.networking.interfaces.ipv6.config": { + "type": "object", + "properties": { + "dhcp": { + "description": "An address will be assigned by a DHCP server.", + "type": "boolean" + }, + "autoconf": { + "description": "An address will be assigned by Stateless Address Autoconfiguration (SLAAC).", + "type": "boolean" + }, + "addresses": { + "description": "The list of addresses to be statically assigned.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.address" + } + }, + "default_gateway": { + "description": "The default gateway for static IP address assignment. This configures the global IPv6 default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.", + "type": "string" + } + }, + "required": [ + "dhcp", + "autoconf", + "addresses", + "default_gateway" + ] + }, + "appliance.networking.interfaces.ipv6.info": { + "type": "object", + "properties": { + "dhcp": { + "description": "DHCP is on.", + "type": "boolean" + }, + "autoconf": { + "description": "Stateless Address Autoconfiguration (SLAAC) is on.", + "type": "boolean" + }, + "addresses": { + "description": "List of addresses with their origins and statuses.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.address_info" + } + }, + "default_gateway": { + "description": "The default gateway for static IP address assignment. This configures the global IPv6 default gateway on the appliance with the specified gateway address and interface. This gateway replaces the existing default gateway configured on the appliance. However, if the gateway address is link-local, then it is added for that interface. This does not support configuration of multiple global default gateways through different interfaces.", + "type": "string" + }, + "configurable": { + "description": "Is NIC configurable or not.", + "type": "boolean" + } + }, + "required": [ + "dhcp", + "autoconf", + "addresses", + "default_gateway", + "configurable" + ] + }, + "appliance.networking.interfaces.ipv6.origin": { + "type": "string", + "description": "The Ipv6.Origin enumerated type defines IPv6 address origin values.", + "enum": [ + "DHCP", + "RANDOM", + "MANUAL", + "LINKLAYER", + "OTHER" + ] + }, + "appliance.networking.interfaces.ipv6.status": { + "type": "string", + "description": "The Ipv6.Status enumerated type defines IPv6 address status values. See RFC 4293.", + "enum": [ + "TENTATIVE", + "UNKNOWN", + "INACCESSIBLE", + "INVALID", + "DUPLICATE", + "PREFERRED", + "DEPRECATED", + "OPTIMISTIC" + ] + }, + "appliance.networking.interfaces.ipv6_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.interfaces.ipv6_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.networking.interfaces.ipv6.config", + "description": "The IPv6 configuration." + } + }, + "required": [ + "config" + ] + }, + "appliance.networking.interfaces.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.networking.interfaces.interface_info" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.interfaces_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.interfaces.interface_info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.no_proxy_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.no_proxy_set": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of strings representing servers to bypass proxy. A server can be a FQDN, IP address, FQDN:port or IP:port combinations." + } + }, + "required": [ + "servers" + ] + }, + "appliance.networking.proxy.config": { + "type": "object", + "properties": { + "server": { + "description": "URL of the proxy server", + "type": "string" + }, + "port": { + "description": "Port to connect to the proxy server. In a 'get' call, indicates the port connected to the proxy server. In a 'set' call, specifies the port to connect to the proxy server. A value of -1 indicates the default port.", + "type": "integer", + "format": "int64" + }, + "username": { + "description": "Username for proxy server.\nOnly set if proxy requires username.", + "type": "string" + }, + "password": { + "description": "Password for proxy server.\nOnly set if proxy requires password.", + "type": "string", + "format": "password" + }, + "enabled": { + "description": "In the result of the #get and #list operations this field indicates whether proxying is enabled for a particular protocol. In the input to the test and set operations this field specifies whether proxying should be enabled for a particular protocol.", + "type": "boolean" + } + }, + "required": [ + "server", + "port", + "enabled" + ] + }, + "appliance.networking.proxy.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "$ref": "#/definitions/appliance.networking.proxy.protocol" + }, + "value": { + "$ref": "#/definitions/appliance.networking.proxy.config" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.proxy.protocol": { + "type": "string", + "description": "Proxy.Protocol enumerated type defines the protocols for which proxying is supported.", + "enum": [ + "HTTP", + "HTTPS", + "FTP" + ] + }, + "appliance.networking.proxy.server_status": { + "type": "string", + "description": "Proxy.ServerStatus enumerated type defines the status of the server associated with the test run.", + "enum": [ + "SERVER_REACHABLE", + "SERVER_UNREACHABLE" + ] + }, + "appliance.networking.proxy.test_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.proxy.test_result" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.proxy.test_result": { + "type": "object", + "properties": { + "status": { + "description": "Status of the proxy server indicating whether the proxy server is reachable.", + "$ref": "#/definitions/appliance.networking.proxy.server_status" + }, + "message": { + "description": "Message associated with status.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "status", + "message" + ] + }, + "appliance.networking.proxy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.proxy.config" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking.proxy_set": { + "type": "object", + "properties": { + "config": { + "$ref": "#/definitions/appliance.networking.proxy.config", + "description": "Proxy configuration for the specific protocol." + } + }, + "required": [ + "config" + ] + }, + "appliance.networking.proxy_test": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "A hostname, IPv4 or Ipv6 address." + }, + "config": { + "$ref": "#/definitions/appliance.networking.proxy.config", + "description": "Proxy configuration to test." + } + }, + "required": [ + "host", + "config" + ] + }, + "appliance.networking.update_spec": { + "type": "object", + "properties": { + "ipv6_enabled": { + "description": "IPv6 Enabled or not\nIf unspecified, leaves the current state of Ipv6.", + "type": "boolean" + } + } + }, + "appliance.networking_change_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.networking.change_spec", + "description": "Information required to change the hostname." + } + }, + "required": [ + "spec" + ] + }, + "appliance.networking_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.networking.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.networking_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.networking.update_spec", + "description": "update spec with optional boolean value" + } + }, + "required": [ + "spec" + ] + }, + "appliance.notification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.\nOnly if the time information is available.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set for warnings and errors.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "id", + "message" + ] + }, + "appliance.notifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.notification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.notification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.notification" + } + } + } + }, + "appliance.ntp.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.ntp.server_status": { + "type": "string", + "description": "Ntp.ServerStatus enumerated type Status of server during test", + "enum": [ + "SERVER_REACHABLE", + "SERVER_UNREACHABLE" + ] + }, + "appliance.ntp.test_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.ntp.test_run_status" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.ntp.test_run_status": { + "type": "object", + "properties": { + "server": { + "description": "Server name associated with the test run.", + "type": "string" + }, + "status": { + "description": "Server status", + "$ref": "#/definitions/appliance.ntp.server_status" + }, + "message": { + "description": "Message associated with status", + "$ref": "#/definitions/appliance.ntp.localizable_message" + } + }, + "required": [ + "server", + "status", + "message" + ] + }, + "appliance.ntp_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.ntp_set": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of host names or ip addresses of ntp servers." + } + }, + "required": [ + "servers" + ] + }, + "appliance.ntp_test": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of host names or IP addresses of NTP servers." + } + }, + "required": [ + "servers" + ] + }, + "appliance.recovery.backup.backup_request": { + "type": "object", + "properties": { + "parts": { + "description": "a list of optional parts. Run backup parts APIs to get list of optional parts and description", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "a password for a backup piece The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nbackupPassword If no password then the piece will not be encrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/appliance.recovery.backup.location_type" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "comment": { + "description": "Custom comment\ncomment an optional comment", + "type": "string" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup.\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location_type", + "location" + ] + }, + "appliance.recovery.backup.job.backup_job_status": { + "type": "object", + "properties": { + "id": { + "description": "TimeStamp based ID.", + "type": "string" + }, + "state": { + "description": "The state of the backup job.", + "$ref": "#/definitions/appliance.recovery.backup.job.backup_restore_process_state" + }, + "messages": { + "description": "List of messages.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.job.localizable_message" + } + }, + "progress": { + "description": "Progress of the job in percentage.", + "type": "integer", + "format": "int64" + }, + "start_time": { + "description": "Time when the backup was started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the backup was finished.\nIf unset end time is None until backup is finished.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "state", + "messages", + "progress", + "start_time" + ] + }, + "appliance.recovery.backup.job.backup_request": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts that will be included in the backup. Use the Parts.list operation to get information about the supported parts.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nbackupPassword If no password then the piece will not be encrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "Type of backup location.", + "$ref": "#/definitions/appliance.recovery.backup.job.location_type" + }, + "location": { + "description": "Path or URL of the backup location.", + "type": "string" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string", + "format": "password" + }, + "comment": { + "description": "Custom comment provided by the user.\nIf unset comment will be empty.", + "type": "string" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location_type", + "location" + ] + }, + "appliance.recovery.backup.job.backup_restore_process_state": { + "type": "string", + "description": "The Job.BackupRestoreProcessState enumerated type defines the possible states of a backup/restore process.", + "enum": [ + "FAILED", + "INPROGRESS", + "NONE", + "SUCCEEDED" + ] + }, + "appliance.recovery.backup.job.cancel_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.job.return_result" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.job.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.job.backup_job_status" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.job.details.build_info": { + "type": "object", + "properties": { + "version_name": { + "description": "Appliance product type, for example 6.8.2 GA", + "type": "string" + }, + "version": { + "description": "Appliance version, for example 6.8.2.10000", + "type": "string" + }, + "build_number": { + "description": "Build Number of the appliance", + "type": "string" + } + }, + "required": [ + "version_name", + "version", + "build_number" + ] + }, + "appliance.recovery.backup.job.details.filter_spec": { + "type": "object", + "properties": { + "jobs": { + "description": "Identifiers of backup jobs that can match the filter.\nIf unset the filter will match all the backup jobs.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: appliance.recovery.backup.job. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: appliance.recovery.backup.job.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "appliance.recovery.backup.job.details.info": { + "type": "object", + "properties": { + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "duration": { + "description": "Time in seconds since the backup job was started or the time it took to complete the backup job.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "type": "integer", + "format": "int64" + }, + "size": { + "description": "Size of the backup data transferred to remote location.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "type": "integer", + "format": "int64" + }, + "progress": { + "description": "Progress of the job.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of SUCCEEDED, FAILED, or RUNNING.", + "$ref": "#/definitions/cis.task.progress" + }, + "location_user": { + "description": "The username for the remote backup location.", + "type": "string" + }, + "type": { + "description": "Type of the backup job. Indicates whether the backup was started manually or as a scheduled backup.", + "$ref": "#/definitions/appliance.recovery.backup.job.details.type" + }, + "messages": { + "description": "List of any info/warning/error messages returned by the backup job.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "build": { + "description": "Information about the build of the appliance.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/appliance.recovery.backup.job.details.build_info" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup", + "type": "boolean" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "location", + "location_user", + "type", + "messages", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "appliance.recovery.backup.job.details.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.recovery.backup.job.details.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.job.details.type": { + "type": "string", + "description": "The Details.Type enumerated type defines the type of backup job.", + "enum": [ + "SCHEDULED", + "MANUAL" + ] + }, + "appliance.recovery.backup.job.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.job.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Id in message bundle.", + "type": "string" + }, + "default_message": { + "description": "Text in english.", + "type": "string" + }, + "args": { + "description": "Nested data.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.recovery.backup.job.location_type": { + "type": "string", + "description": "The Job.LocationType enumerated type defines the type of destination location for backup/restore. You specify the location type when you create a backup job. See Job.BackupRequest.", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "appliance.recovery.backup.job.return_result": { + "type": "object", + "properties": { + "status": { + "description": "Status of the cancel operation.", + "$ref": "#/definitions/appliance.recovery.backup.job.return_status" + }, + "messages": { + "description": "List of messages.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.job.localizable_message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.recovery.backup.job.return_status": { + "type": "string", + "description": "The Job.ReturnStatus enumerated type defines the return type for the cancel operation. You specify the return status when you return the result of cancel job. See Job.ReturnResult.", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "appliance.recovery.backup.job_create": { + "type": "object", + "properties": { + "piece": { + "$ref": "#/definitions/appliance.recovery.backup.job.backup_request", + "description": "BackupRequest Structure" + } + }, + "required": [ + "piece" + ] + }, + "appliance.recovery.backup.job_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.job.backup_job_status" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.recovery.backup.location_spec": { + "type": "object", + "properties": { + "location": { + "description": "Backup location URL.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used.", + "type": "string", + "format": "password" + } + }, + "required": [ + "location" + ] + }, + "appliance.recovery.backup.location_type": { + "type": "string", + "description": "Backup.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "appliance.recovery.backup.parts.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.parts.part" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.parts.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.recovery.backup.parts.part": { + "type": "object", + "properties": { + "id": { + "description": "part ID\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.parts. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.parts.", + "type": "string" + }, + "name": { + "description": "part name id in message bundle", + "$ref": "#/definitions/appliance.recovery.backup.parts.localizable_message" + }, + "description": { + "description": "part description id in message bundle", + "$ref": "#/definitions/appliance.recovery.backup.parts.localizable_message" + }, + "selected_by_default": { + "description": "Is this part selected by default in the user interface.", + "type": "boolean" + }, + "optional": { + "description": "Is this part optional.", + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "description", + "selected_by_default", + "optional" + ] + }, + "appliance.recovery.backup.parts_resp": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "format": "int64" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.return_result": { + "type": "object", + "properties": { + "status": { + "description": "Check status", + "$ref": "#/definitions/appliance.recovery.backup.return_status" + }, + "messages": { + "description": "List of messages", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.localizable_message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.recovery.backup.return_status": { + "type": "string", + "description": "Backup.ReturnStatus enumerated type Defines the state of precheck", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "appliance.recovery.backup.schedules.create_spec": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts to be backed up. Use the Parts.list operation to get information about the supported parts.\nIf unset all the optional parts will not be backed up.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nIf unset the backup piece will not be encrypted.", + "type": "string", + "format": "password" + }, + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset authentication will not be used for the specified location.", + "type": "string", + "format": "password" + }, + "enable": { + "description": "Enable or disable a schedule.\nIf unset the schedule will be enabled.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset backup job will not be scheduled. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.recurrence_info" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset all the completed backup jobs will be retained forever. See Schedules.RetentionInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.retention_info" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "location" + ] + }, + "appliance.recovery.backup.schedules.day_of_week": { + "type": "string", + "description": "The Schedules.DayOfWeek enumerated type defines the set of days when backup can be scheduled. The days can be specified as a list of individual days. You specify the days when you set the recurrence for a schedule. See Schedules.RecurrenceInfo.days.", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "appliance.recovery.backup.schedules.info": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts that will be included in backups based on this schedule details. Use the Parts.list operation to get information about the supported parts.", + "type": "array", + "items": { + "type": "string" + } + }, + "location": { + "description": "URL of the backup location.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset location user will not be used.", + "type": "string" + }, + "enable": { + "description": "Enable or disable a schedule, by default when created a schedule will be enabled.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset backup job is not scheduled. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.recurrence_info" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset all the completed backup jobs are retained forever. See Schedules.RetentionInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.retention_info" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + }, + "required": [ + "parts", + "location", + "enable" + ] + }, + "appliance.recovery.backup.schedules.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.schedules.recurrence_info": { + "type": "object", + "properties": { + "minute": { + "description": "Minute when backup should run.", + "type": "integer", + "format": "int64" + }, + "hour": { + "description": "Hour when backup should run. The hour should be specified in 24-hour clock format.", + "type": "integer", + "format": "int64" + }, + "days": { + "description": "Day of week when the backup should be run. Days can be specified as list of days.\nIf unset the backup will be run everyday.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.day_of_week" + } + } + }, + "required": [ + "minute", + "hour" + ] + }, + "appliance.recovery.backup.schedules.retention_info": { + "type": "object", + "properties": { + "max_count": { + "description": "Number of backups which should be retained. If retention is not set, all the backups will be retained forever.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "max_count" + ] + }, + "appliance.recovery.backup.schedules.run_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.job.backup_job_status" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.schedules.update_spec": { + "type": "object", + "properties": { + "parts": { + "description": "List of optional parts. Use the Parts.list operation to get information about the supported parts.\nIf unset the value will not be changed.", + "type": "array", + "items": { + "type": "string" + } + }, + "backup_password": { + "description": "Password for a backup piece. The backupPassword must adhere to the following password requirements: At least 8 characters, cannot be more than 20 characters in length. At least 1 uppercase letter. At least 1 lowercase letter. At least 1 numeric digit. At least 1 special character (i.e. any character not in [0-9,a-z,A-Z]). Only visible ASCII characters (for example, no space).\nIf unset the value will not be changed.", + "type": "string", + "format": "password" + }, + "location": { + "description": "URL of the backup location.\nIf unset the value will not be changed.", + "type": "string", + "format": "uri" + }, + "location_user": { + "description": "Username for the given location.\nIf unset the value will not be changed.", + "type": "string" + }, + "location_password": { + "description": "Password for the given location.\nIf unset the value will not be changed.", + "type": "string", + "format": "password" + }, + "enable": { + "description": "Enable or disable a schedule.\nIf unset the value will not be changed.", + "type": "boolean" + }, + "recurrence_info": { + "description": "Recurrence information for the schedule.\nIf unset the infomration will not be changed. See Schedules.RecurrenceInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.recurrence_info" + }, + "retention_info": { + "description": "Retention information for the schedule.\nIf unset the information will not be changed. See Schedules.RetentionInfo", + "$ref": "#/definitions/appliance.recovery.backup.schedules.retention_info" + }, + "fast_backup": { + "description": "Option to enable Postgres DB/ VCDB fast backup\nIf unset backup will proceed at slow rate", + "type": "boolean" + } + } + }, + "appliance.recovery.backup.schedules_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.create_spec", + "description": "CreateSpec Structure" + } + }, + "required": [ + "spec" + ] + }, + "appliance.recovery.backup.schedules_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.schedules_run": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "field that specifies the description for the backup.\nIf unset the backup will have an empty comment." + } + } + }, + "appliance.recovery.backup.schedules_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.recovery.backup.schedules.update_spec", + "description": "UpdateSpec Structure" + } + }, + "required": [ + "spec" + ] + }, + "appliance.recovery.backup.system_name.archive.filter_spec": { + "type": "object", + "properties": { + "start_timestamp": { + "description": "Backup must have been taken on or after this time to match the filter.\nIf unset the filter will match oldest backups.", + "type": "string", + "format": "date-time" + }, + "end_timestamp": { + "description": "Backup must have been taken on or before this time to match the filter.\nIf unset the filter will match most recent backups.", + "type": "string", + "format": "date-time" + }, + "comment_substring": { + "description": "Backup comment must contain this string to match the filter.\nIf unset the filter will match backups with any comment.", + "type": "string" + }, + "max_results": { + "description": "Limit result to a max count of most recent backups.\nIf unset it defaults to 128.", + "type": "integer", + "format": "int64" + } + } + }, + "appliance.recovery.backup.system_name.archive.info": { + "type": "object", + "properties": { + "timestamp": { + "description": "Time when this backup was completed.", + "type": "string", + "format": "date-time" + }, + "location": { + "description": "Backup location URL.", + "type": "string", + "format": "uri" + }, + "parts": { + "description": "List of parts included in the backup.", + "type": "array", + "items": { + "type": "string" + } + }, + "version": { + "description": "The version of the appliance represented by the backup.", + "type": "string" + }, + "system_name": { + "description": "The system name identifier of the appliance represented by the backup.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.system_name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.system_name.", + "type": "string" + }, + "comment": { + "description": "Custom comment added by the user for this backup.", + "type": "string" + } + }, + "required": [ + "timestamp", + "location", + "parts", + "version", + "system_name", + "comment" + ] + }, + "appliance.recovery.backup.system_name.archive.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.backup.system_name.archive.summary" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.system_name.archive.summary": { + "type": "object", + "properties": { + "archive": { + "description": "Backup archive identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.backup.system_name.archive. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.backup.system_name.archive.", + "type": "string" + }, + "timestamp": { + "description": "Time when this backup was started.", + "type": "string", + "format": "date-time" + }, + "version": { + "description": "The version of the appliance represented by the backup archive.", + "type": "string" + }, + "comment": { + "description": "Custom comment added by the user for this backup.", + "type": "string" + } + }, + "required": [ + "archive", + "timestamp", + "version", + "comment" + ] + }, + "appliance.recovery.backup.system_name.archive_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.system_name.archive.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.system_name.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup.validate_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.backup.return_result" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.backup_validate": { + "type": "object", + "properties": { + "piece": { + "$ref": "#/definitions/appliance.recovery.backup.backup_request", + "description": "BackupRequest Structure" + } + }, + "required": [ + "piece" + ] + }, + "appliance.recovery.info": { + "type": "object", + "properties": { + "supported": { + "description": "Is recovery supported in this appliance.", + "type": "boolean" + } + }, + "required": [ + "supported" + ] + }, + "appliance.recovery.reconciliation.job.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.reconciliation.job.create_spec": { + "type": "object", + "properties": { + "sso_admin_user_name": { + "description": "Administrators username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "Password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + }, + "ignore_warnings": { + "description": "Flag indicating whether warnings should be ignored during reconciliation.\nIf unset, validation warnings will fail the reconciliation operation.", + "type": "boolean" + } + } + }, + "appliance.recovery.reconciliation.job.info": { + "type": "object", + "properties": { + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Name of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.reconciliation.job. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.reconciliation.job.", + "type": "string" + }, + "operation": { + "description": "Name of the operation associated with the task.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.recovery.reconciliation.job. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.recovery.reconciliation.job.", + "type": "string" + }, + "target": { + "description": "Identifier of the target resource the operation modifies.\nThis field will be unset if the task has multiple targets or no target.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/appliance.recovery.reconciliation.job.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.\nIf unset, the operation cannot be canceled.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info#result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of Job.Info.status is one of RUNNING, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of Job.Info.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "messages": { + "description": "A list of localized messages.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "progress": { + "description": "The progress of the job as a percentage.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "messages", + "progress" + ] + }, + "appliance.recovery.reconciliation.job.status": { + "type": "string", + "description": "The Job.Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "NONE", + "RUNNING", + "SUCCEEDED", + "FAILED" + ] + }, + "appliance.recovery.reconciliation.job_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job.create_spec", + "description": "CreateSpec Structure" + } + }, + "required": [ + "spec" + ] + }, + "appliance.recovery.reconciliation.job_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.reconciliation.job.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.restore.job.backup_restore_process_state": { + "type": "string", + "description": "Job.BackupRestoreProcessState enumerated type Defines state of backup/restore process", + "enum": [ + "FAILED", + "INPROGRESS", + "NONE", + "SUCCEEDED" + ] + }, + "appliance.recovery.restore.job.cancel_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.restore.job.return_result" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.restore.job.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.restore.job.restore_job_status" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.restore.job.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.recovery.restore.job.location_type": { + "type": "string", + "description": "Job.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "appliance.recovery.restore.job.restore_job_status": { + "type": "object", + "properties": { + "state": { + "description": "process state", + "$ref": "#/definitions/appliance.recovery.restore.job.backup_restore_process_state" + }, + "messages": { + "description": "list of messages", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.restore.job.localizable_message" + } + }, + "progress": { + "description": "percentage complete", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "state", + "messages", + "progress" + ] + }, + "appliance.recovery.restore.job.restore_request": { + "type": "object", + "properties": { + "backup_password": { + "description": "a password for a backup piece\nbackupPassword If no password then the piece will not be decrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/appliance.recovery.restore.job.location_type" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "sso_admin_user_name": { + "description": "Administrators Username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "The password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + }, + "ignore_warnings": { + "description": "The flag to ignore warnings during restore\nIf unset, validation warnings will fail the restore operation", + "type": "boolean" + } + }, + "required": [ + "location_type", + "location" + ] + }, + "appliance.recovery.restore.job.return_result": { + "type": "object", + "properties": { + "status": { + "description": "Check status", + "$ref": "#/definitions/appliance.recovery.restore.job.return_status" + }, + "messages": { + "description": "List of messages", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.restore.job.localizable_message" + } + } + }, + "required": [ + "status", + "messages" + ] + }, + "appliance.recovery.restore.job.return_status": { + "type": "string", + "description": "Job.ReturnStatus enumerated type Defines the state of precheck", + "enum": [ + "FAIL", + "WARNING", + "OK" + ] + }, + "appliance.recovery.restore.job_create": { + "type": "object", + "properties": { + "piece": { + "$ref": "#/definitions/appliance.recovery.restore.job.restore_request", + "description": "RestoreRequest Structure" + } + }, + "required": [ + "piece" + ] + }, + "appliance.recovery.restore.job_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.restore.job.restore_job_status" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.restore.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "id in message bundle", + "type": "string" + }, + "default_message": { + "description": "text in english", + "type": "string" + }, + "args": { + "description": "nested data", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "appliance.recovery.restore.location_type": { + "type": "string", + "description": "Restore.LocationType enumerated type Defines type of all locations for backup/restore", + "enum": [ + "FTP", + "HTTP", + "FTPS", + "HTTPS", + "SCP", + "SFTP", + "NFS", + "SMB" + ] + }, + "appliance.recovery.restore.metadata": { + "type": "object", + "properties": { + "timestamp": { + "description": "Time when this backup was completed.", + "type": "string", + "format": "date-time" + }, + "parts": { + "description": "List of parts included in the backup.", + "type": "array", + "items": { + "type": "string" + } + }, + "version": { + "description": "VCSA version", + "type": "string" + }, + "boxname": { + "description": "Box name is PNID/ FQDN etc", + "type": "string" + }, + "sso_login_required": { + "description": "Is SSO login required for the vCenter server.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "comment": { + "description": "Custom comment", + "type": "string" + }, + "applicable": { + "description": "Does the VCSA match the deployment type, network properties and version of backed up VC", + "type": "boolean" + }, + "messages": { + "description": "Any messages if the backup is not aplicable", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.recovery.restore.localizable_message" + } + } + }, + "required": [ + "timestamp", + "parts", + "version", + "boxname", + "comment", + "applicable", + "messages" + ] + }, + "appliance.recovery.restore.restore_request": { + "type": "object", + "properties": { + "backup_password": { + "description": "a password for a backup piece\nbackupPassword If no password then the piece will not be decrypted", + "type": "string", + "format": "password" + }, + "location_type": { + "description": "a type of location", + "$ref": "#/definitions/appliance.recovery.restore.location_type" + }, + "location": { + "description": "path or url", + "type": "string" + }, + "location_user": { + "description": "username for location\nlocationUser User name for this location if login is required.", + "type": "string" + }, + "location_password": { + "description": "password for location\nlocationPassword Password for the specified user if login is required at this location.", + "type": "string", + "format": "password" + }, + "sso_admin_user_name": { + "description": "Administrators username for SSO.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string" + }, + "sso_admin_user_password": { + "description": "The password for SSO admin user.\nIf unset SSO authentication will not be used. If the vCenter Server is a management node or an embedded node, authentication is required.", + "type": "string", + "format": "password" + } + }, + "required": [ + "location_type", + "location" + ] + }, + "appliance.recovery.restore.validate_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.restore.metadata" + } + }, + "required": [ + "value" + ] + }, + "appliance.recovery.restore_validate": { + "type": "object", + "properties": { + "piece": { + "$ref": "#/definitions/appliance.recovery.restore.restore_request", + "description": "RestoreRequest Structure" + } + }, + "required": [ + "piece" + ] + }, + "appliance.recovery_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.recovery.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.services.info": { + "type": "object", + "properties": { + "description": { + "description": "Service description", + "type": "string" + }, + "state": { + "description": "Running State", + "$ref": "#/definitions/appliance.services.state" + } + }, + "required": [ + "description", + "state" + ] + }, + "appliance.services.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.services.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.services.state": { + "type": "string", + "description": "The Services.State enumerated type defines valid Run State for services.", + "enum": [ + "STARTING", + "STOPPING", + "STARTED", + "STOPPED" + ] + }, + "appliance.services_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.services.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.shutdown.shutdown_config": { + "type": "object", + "properties": { + "shutdown_time": { + "description": "Shutdown time.\nshutdownTime Optional value of pending shutdown time", + "type": "string", + "format": "date-time" + }, + "action": { + "description": "The pending shutdown operation. The string values for pending operations can be 'poweroff', 'reboot' or ''.", + "type": "string" + }, + "reason": { + "description": "The reason behind the shutdown action", + "type": "string" + } + }, + "required": [ + "action", + "reason" + ] + }, + "appliance.shutdown_poweroff": { + "type": "object", + "properties": { + "delay": { + "type": "integer", + "format": "int64", + "description": "Minutes after which poweroff should start. If 0 is specified, poweroff will start immediately." + }, + "reason": { + "type": "string", + "description": "Reason for peforming poweroff." + } + }, + "required": [ + "delay", + "reason" + ] + }, + "appliance.shutdown_reboot": { + "type": "object", + "properties": { + "delay": { + "type": "integer", + "format": "int64", + "description": "Minutes after which reboot should start. If 0 is specified, reboot will start immediately." + }, + "reason": { + "type": "string", + "description": "Reason for peforming reboot." + } + }, + "required": [ + "delay", + "reason" + ] + }, + "appliance.shutdown_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.shutdown.shutdown_config" + } + }, + "required": [ + "value" + ] + }, + "appliance.subtask_info": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the operation.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/cis.task.progress" + }, + "result": { + "description": "Result of the operation. If an operation reports partial results before it completes, this field could be set before the CommonInfo#status has the value SUCCEEDED. The value could change as the operation progresses.\nThis field will be unset if result is not available at the current step of the operation.", + "$ref": "#/definitions/appliance.notifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "appliance.system.storage.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.system.storage.storage_mapping" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.system.storage.resize_ex_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.system.storage.storage_change" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.system.storage.storage_change": { + "type": "object", + "properties": { + "old_size": { + "description": "Original size of the partition in MB.", + "type": "integer", + "format": "int64" + }, + "new_size": { + "description": "Nedw size of the partition in MB.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "old_size", + "new_size" + ] + }, + "appliance.system.storage.storage_mapping": { + "type": "object", + "properties": { + "disk": { + "description": "The disk number in the vSphere Web Client.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.system.storage. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.system.storage.", + "type": "string" + }, + "partition": { + "description": "Storage partition name.", + "type": "string" + }, + "description": { + "description": "Description of partition\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "disk", + "partition" + ] + }, + "appliance.system.time.system_time_struct": { + "type": "object", + "properties": { + "seconds_since_epoch": { + "description": "seconds since the epoch", + "type": "number", + "format": "double" + }, + "date": { + "description": "date format: Thu 07-31-2014", + "type": "string" + }, + "time": { + "description": "time format: 18:18:32", + "type": "string" + }, + "timezone": { + "description": "timezone", + "type": "string" + } + }, + "required": [ + "seconds_since_epoch", + "date", + "time", + "timezone" + ] + }, + "appliance.system.time.timezone_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "appliance.system.time.timezone_set": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Time zone name." + } + }, + "required": [ + "name" + ] + }, + "appliance.system.time_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.system.time.system_time_struct" + } + }, + "required": [ + "value" + ] + }, + "appliance.system.uptime_resp": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double" + } + }, + "required": [ + "value" + ] + }, + "appliance.system.version.version_struct": { + "type": "object", + "properties": { + "version": { + "description": "Appliance version.", + "type": "string" + }, + "product": { + "description": "Appliance name.", + "type": "string" + }, + "build": { + "description": "Appliance build number.", + "type": "string" + }, + "type": { + "description": "Type of product. Same product can have different deployment options, which is represented by type.", + "type": "string" + }, + "summary": { + "description": "Summary of patch (empty string, if the appliance has not been patched)", + "type": "string" + }, + "releasedate": { + "description": "Release date of patch (empty string, if the appliance has not been patched)", + "type": "string" + }, + "install_time": { + "description": "Display the date and time when this system was first installed. Value will not change on subsequent updates.", + "type": "string" + } + }, + "required": [ + "version", + "product", + "build", + "type", + "summary", + "releasedate", + "install_time" + ] + }, + "appliance.system.version_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.system.version.version_struct" + } + }, + "required": [ + "value" + ] + }, + "appliance.task_info": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/cis.task.progress" + }, + "subtask_order": { + "description": "List of tasks that make up this appliance task in the order they are being run.", + "type": "array", + "items": { + "type": "string" + } + }, + "subtasks": { + "description": "Information about the subtasks that this appliance task consists of.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.subtask_info" + } + } + } + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "subtask_order", + "subtasks", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "appliance.timesync.time_sync_mode": { + "type": "string", + "description": "The Timesync.TimeSyncMode enumerated type defines time synchronization modes", + "enum": [ + "DISABLED", + "NTP", + "HOST" + ] + }, + "appliance.timesync_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.timesync.time_sync_mode" + } + }, + "required": [ + "value" + ] + }, + "appliance.timesync_set": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/definitions/appliance.timesync.time_sync_mode", + "description": "Time synchronization mode." + } + }, + "required": [ + "mode" + ] + }, + "appliance.update.common_info.category": { + "type": "string", + "description": "The CommonInfo.Category enumerated type defines update type", + "enum": [ + "SECURITY", + "FIX", + "UPDATE", + "UPGRADE" + ] + }, + "appliance.update.common_info.priority": { + "type": "string", + "description": "The CommonInfo.Priority enumerated type defines the update installation priority recommendations.", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "appliance.update.common_info.severity": { + "type": "string", + "description": "The CommonInfo.Severity enumerated type defines the severity of the issues fixed in the update.", + "enum": [ + "CRITICAL", + "IMPORTANT", + "MODERATE", + "LOW" + ] + }, + "appliance.update.info": { + "type": "object", + "properties": { + "state": { + "description": "State of the appliance update.", + "$ref": "#/definitions/appliance.update.state" + }, + "task": { + "description": "The running or completed update task.", + "$ref": "#/definitions/appliance.task_info" + }, + "version": { + "description": "Version of base appliance if state is UP_TO_DATE Version of update being staged or installed if state is INSTALL_IN_PROGRESS or STAGE_IN_PROGRESS Version of update staged if state is UPDATES_PENDING Version of update failed if state is INSTALL_FAILED or ROLLBACK_IN_PROGRESS", + "type": "string" + }, + "latest_query_time": { + "description": "Timestamp of latest query to update repository.\nIf unset the update was never queried", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "state", + "version" + ] + }, + "appliance.update.pending.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the update.", + "type": "string" + }, + "contents": { + "description": "List of the 1. issues addressed since previous/current version 2. new features/improvements", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "services_will_be_stopped": { + "description": "List of the services that will be stopped and restarted during the update installation.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.update.service_info" + } + }, + "eulas": { + "description": "List of EULAs. This list has multiple entries and can be dynamic based on what we are actually installing.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "staged": { + "description": "Is the update staged", + "type": "boolean" + }, + "knowledge_base": { + "description": "URL for the knowledge base article describing this update.", + "type": "string", + "format": "uri" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/appliance.update.common_info.priority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/appliance.update.common_info.severity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/appliance.update.common_info.category" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "name", + "contents", + "services_will_be_stopped", + "eulas", + "staged", + "knowledge_base", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "appliance.update.pending.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/appliance.update.summary" + } + } + }, + "required": [ + "value" + ] + }, + "appliance.update.pending.precheck_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.update.pending.precheck_result" + } + }, + "required": [ + "value" + ] + }, + "appliance.update.pending.precheck_result": { + "type": "object", + "properties": { + "check_time": { + "description": "Time when this precheck was run", + "type": "string", + "format": "date-time" + }, + "estimated_time_to_install": { + "description": "Rough estimate of time to install the update (minutes).\nestimatedTimeToInstall If unset N/A", + "type": "integer", + "format": "int64" + }, + "estimated_time_to_rollback": { + "description": "Rough estimate of time to rollback the update (minutes).\nestimatedTimeToRollback If unset N/A", + "type": "integer", + "format": "int64" + }, + "reboot_required": { + "description": "Is reboot required to install the update.", + "type": "boolean" + }, + "issues": { + "description": "Lists of the issues and warnings\nissues If unset N/A", + "$ref": "#/definitions/appliance.notifications" + }, + "questions": { + "description": "List of questions that must be answered to install the update.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.update.pending.question" + } + } + }, + "required": [ + "check_time", + "reboot_required", + "questions" + ] + }, + "appliance.update.pending.question": { + "type": "object", + "properties": { + "data_item": { + "description": "ID of the data item\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: applicance.update.pending.dataitem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: applicance.update.pending.dataitem.", + "type": "string" + }, + "text": { + "description": "Label for the item to be used in GUI/CLI", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "description": { + "description": "Description of the item", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "type": { + "description": "How this field shoudl be represented in GUI or CLI", + "$ref": "#/definitions/appliance.update.pending.question.input_type" + }, + "allowed_values": { + "description": "List of allowed values\nallowedValues If unset any value is valid.", + "type": "array", + "items": { + "type": "string" + } + }, + "regexp": { + "description": "Regexp to validate the input\nregexp If unset no validation will be performed.", + "type": "string" + }, + "default_answer": { + "description": "Default answer\ndefaultAnswer If unset then there is no default answer, so an explicit answer must be provided", + "type": "string" + } + }, + "required": [ + "data_item", + "text", + "description", + "type" + ] + }, + "appliance.update.pending.question.input_type": { + "type": "string", + "description": "The Pending.Question.InputType enumerated type defines representation of field fields in GUI or CLI", + "enum": [ + "PLAIN_TEXT", + "BOOLEAN", + "PASSWORD" + ] + }, + "appliance.update.pending.source_type": { + "type": "string", + "description": "The Pending.SourceType enumerated type defines the supported types of sources of updates.", + "enum": [ + "LAST_CHECK", + "LOCAL", + "LOCAL_AND_ONLINE" + ] + }, + "appliance.update.pending.validate_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.notifications" + } + }, + "required": [ + "value" + ] + }, + "appliance.update.pending_install": { + "type": "object", + "properties": { + "user_data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "appliance.update.pending_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.update.pending.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.update.pending_stage_and_install": { + "type": "object", + "properties": { + "user_data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "appliance.update.pending_validate": { + "type": "object", + "properties": { + "user_data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "description": "map of user provided data with IDs\nThe key in the parameter map must be an identifier for the resource type: applicance.update.pending.dataitem." + } + }, + "required": [ + "user_data" + ] + }, + "appliance.update.policy.config": { + "type": "object", + "properties": { + "custom_URL": { + "description": "Current appliance update repository URL.\nIf unset then default URL is assumed", + "type": "string" + }, + "username": { + "description": "Username for the update repository\nIf unset username will not be used to login", + "type": "string" + }, + "password": { + "description": "Password for the update repository\npassword If unset password will not be used to login", + "type": "string", + "format": "password" + }, + "check_schedule": { + "description": "Schedule when the automatic check will be run.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.update.policy.time" + } + }, + "auto_stage": { + "description": "Automatically stage the latest update if available.", + "type": "boolean" + }, + "certificate_check": { + "description": "Indicates whether certificates will be checked during patching. \n Warning: Setting this field to false will result in an insecure connection to update repository which can potentially put the appliance security at risk.\n\ncertificateCheck If unset the certificate checks are enabled.", + "type": "boolean" + } + }, + "required": [ + "check_schedule", + "auto_stage" + ] + }, + "appliance.update.policy.day_of_week": { + "type": "string", + "description": "The Policy.DayOfWeek enumerated type defines the set of days", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "appliance.update.policy.info": { + "type": "object", + "properties": { + "custom_URL": { + "description": "Current appliance update custom repository URL.\nIf unset update is checked at defaut URL.", + "type": "string" + }, + "default_URL": { + "description": "Current appliance update default repository URL.", + "type": "string" + }, + "username": { + "description": "Username for the update repository\nIf unset username will not be used to login", + "type": "string" + }, + "check_schedule": { + "description": "Schedule when the automatic check will be run.", + "type": "array", + "items": { + "$ref": "#/definitions/appliance.update.policy.time" + } + }, + "auto_stage": { + "description": "Automatically stage the latest update if available.", + "type": "boolean" + }, + "auto_update": { + "description": "Is the appliance updated automatically. If set the appliance may ignore the check schedule or auto-stage settings.", + "type": "boolean" + }, + "manual_control": { + "description": "Whether API client should allow the user to start update manually", + "type": "boolean" + }, + "certificate_check": { + "description": "Indicates whether certificates will be checked during patching. \n Warning: If this field is set to false, an insecure connection is made to the update repository which can potentially put the appliance security at risk.", + "type": "boolean" + } + }, + "required": [ + "default_URL", + "check_schedule", + "auto_stage", + "auto_update", + "manual_control", + "certificate_check" + ] + }, + "appliance.update.policy.time": { + "type": "object", + "properties": { + "day": { + "description": "weekday to check for updates.", + "$ref": "#/definitions/appliance.update.policy.day_of_week" + }, + "hour": { + "description": "Hour: 0-24", + "type": "integer", + "format": "int64" + }, + "minute": { + "description": "Minute: 0-59", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "day", + "hour", + "minute" + ] + }, + "appliance.update.policy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.update.policy.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.update.policy_set": { + "type": "object", + "properties": { + "policy": { + "$ref": "#/definitions/appliance.update.policy.config", + "description": "Info structure containing the policy for the appliance update." + } + }, + "required": [ + "policy" + ] + }, + "appliance.update.service_info": { + "type": "object", + "properties": { + "service": { + "description": "Service ID\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.service.", + "type": "string" + }, + "description": { + "description": "Service description", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "service", + "description" + ] + }, + "appliance.update.staged.info": { + "type": "object", + "properties": { + "staging_complete": { + "description": "Is staging complete", + "type": "boolean" + }, + "version": { + "description": "Version in form of X.Y.Z.P. e.g. 6.5.1.5400\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.update.pending.", + "type": "string" + }, + "name": { + "description": "Name of the update.", + "type": "string" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/appliance.update.common_info.priority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/appliance.update.common_info.severity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/appliance.update.common_info.category" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "staging_complete", + "version", + "name", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "appliance.update.staged_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.update.staged.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.update.state": { + "type": "string", + "description": "The Update.State enumerated type defines the various states the appliance update can be in.", + "enum": [ + "UP_TO_DATE", + "UPDATES_PENDING", + "STAGE_IN_PROGRESS", + "INSTALL_IN_PROGRESS", + "INSTALL_FAILED", + "ROLLBACK_IN_PROGRESS" + ] + }, + "appliance.update.summary": { + "type": "object", + "properties": { + "version": { + "description": "Version in form of X.Y.Z.P. e.g. 6.5.1.5400\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: appliance.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: appliance.update.pending.", + "type": "string" + }, + "name": { + "description": "Name of the update.", + "type": "string" + }, + "description": { + "description": "Description of the update. The short information what this update is. E.g. \"Update2 for vCenter Server Appliance 6.5\"", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "priority": { + "description": "Update priority", + "$ref": "#/definitions/appliance.update.common_info.priority" + }, + "severity": { + "description": "Update severity", + "$ref": "#/definitions/appliance.update.common_info.severity" + }, + "update_type": { + "description": "Update category", + "$ref": "#/definitions/appliance.update.common_info.category" + }, + "release_date": { + "description": "Update release date.", + "type": "string", + "format": "date-time" + }, + "reboot_required": { + "description": "Flag indicating whether reboot is required after update.", + "type": "boolean" + }, + "size": { + "description": "Download Size of update in Megabytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "version", + "name", + "description", + "priority", + "severity", + "update_type", + "release_date", + "reboot_required", + "size" + ] + }, + "appliance.update_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.update.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.vmon.service.health": { + "type": "string", + "description": "The Service.Health enumerated type defines the possible values for health of a service.", + "enum": [ + "DEGRADED", + "HEALTHY", + "HEALTHY_WITH_WARNINGS" + ] + }, + "appliance.vmon.service.info": { + "type": "object", + "properties": { + "name_key": { + "description": "Service name key. Can be used to lookup resource bundle", + "type": "string" + }, + "description_key": { + "description": "Service description key. Can be used to lookup resource bundle", + "type": "string" + }, + "startup_type": { + "description": "Startup Type.", + "$ref": "#/definitions/appliance.vmon.service.startup_type" + }, + "state": { + "description": "Running State.", + "$ref": "#/definitions/appliance.vmon.service.state" + }, + "health": { + "description": "Health of service.\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "$ref": "#/definitions/appliance.vmon.service.health" + }, + "health_messages": { + "description": "Localizable messages associated with the health of the service\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "name_key", + "description_key", + "startup_type", + "state" + ] + }, + "appliance.vmon.service.list_details_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/appliance.vmon.service.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "appliance.vmon.service.startup_type": { + "type": "string", + "description": "The Service.StartupType enumerated type defines valid Startup Type for services managed by vMon.", + "enum": [ + "MANUAL", + "AUTOMATIC", + "DISABLED" + ] + }, + "appliance.vmon.service.state": { + "type": "string", + "description": "The Service.State enumerated type defines valid Run State for services.", + "enum": [ + "STARTING", + "STOPPING", + "STARTED", + "STOPPED" + ] + }, + "appliance.vmon.service.update_spec": { + "type": "object", + "properties": { + "startup_type": { + "description": "Startup Type\nIf unspecified, leaves value unchanged.", + "$ref": "#/definitions/appliance.vmon.service.startup_type" + } + } + }, + "appliance.vmon.service_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/appliance.vmon.service.info" + } + }, + "required": [ + "value" + ] + }, + "appliance.vmon.service_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/appliance.vmon.service.update_spec", + "description": "Service Update specification." + } + }, + "required": [ + "spec" + ] + }, + "cis.task.progress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "cis.task.status": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "vapi.std.dynamic_ID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "vapi.std.errors.already_exists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_exists_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_exists" + } + } + }, + "vapi.std.errors.already_in_desired_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_in_desired_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_in_desired_state" + } + } + }, + "vapi.std.errors.error": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.error.type": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "vapi.std.errors.error_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.error" + } + } + }, + "vapi.std.errors.feature_in_use": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.feature_in_use_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.feature_in_use" + } + } + }, + "vapi.std.errors.invalid_argument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_argument_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument" + } + } + }, + "vapi.std.errors.not_allowed_in_current_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_allowed_in_current_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state" + } + } + }, + "vapi.std.errors.not_found": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_found_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_found" + } + } + }, + "vapi.std.errors.resource_busy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_busy_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_busy" + } + } + }, + "vapi.std.errors.timed_out": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.timed_out_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.timed_out" + } + } + }, + "vapi.std.errors.unable_to_allocate_resource": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unable_to_allocate_resource_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource" + } + } + }, + "vapi.std.errors.unauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthenticated_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated" + } + } + }, + "vapi.std.errors.unauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthorized_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthorized" + } + } + }, + "vapi.std.errors.unsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unsupported_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unsupported" + } + } + }, + "vapi.std.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "vapi.std.localization_param": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/vapi.std.nested_localizable_message" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/vapi.std.localization_param.date_time_format" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "vapi.std.localization_param.date_time_format": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "vapi.std.nested_localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/cis.json b/config/api_specifications/8.0.2/cis.json new file mode 100644 index 000000000..8fe7f173f --- /dev/null +++ b/config/api_specifications/8.0.2/cis.json @@ -0,0 +1,5999 @@ +{ + "swagger": "2.0", + "info": { + "description": "", + "title": "cis", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/cis/tagging/category": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Creates a category. To invoke this operation, you need the create category privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/CisTaggingCategoryCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the created category.\nThe result will be an identifier for the resource type: cis.tagging.Category.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the information in the createSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "403": { + "description": "if you do not have the privilege to create a category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "tagging/category" + ], + "summary": "Enumerates the categories in the system. To invoke this operation, you need the read privilege on the individual categories. The list will only contain those categories for which you have read privileges.", + "parameters": [], + "responses": { + "200": { + "description": "The list of resource identifiers for the categories in the system.\nThe result will contain identifiers for the resource type: cis.tagging.Category.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/category/{category_id}": { + "get": { + "tags": [ + "tagging/category" + ], + "summary": "Fetches the category information for the given category identifier. In order to view the category information, you need the read privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "200": { + "description": "The CategoryModel that corresponds to categoryId.", + "schema": { + "$ref": "#/definitions/CisTaggingCategoryModel" + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to read the category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "tagging/category" + ], + "summary": "Updates an existing category. To invoke this operation, you need the edit privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the category to be updated.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/CisTaggingCategoryUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if any of the information in the updateSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to update the category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "tagging/category" + ], + "summary": "Deletes an existing category. To invoke this operation, you need the delete privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of category to be deleted.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to delete the category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/category/{category_id}?action=add-to-used-by": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Adds the usedByEntity to the CategoryModel.used-by subscribers set for the specified category. If the usedByEntity is already in the set, then this becomes an idempotent no-op. To invoke this operation, you need the modify CategoryModel.used-by privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingCategoryAddToUsedBy" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to add an entity to the CategoryModel.used-by field.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "add_to_used_by", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/category/{category_id}?action=remove-from-used-by": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Removes the usedByEntity from the CategoryModel.used-by subscribers set. If the usedByEntity is not using this category, then this becomes a no-op. To invoke this operation, you need the modify CategoryModel.used-by privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingCategoryRemoveFromUsedBy" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to remove an entity from the CategoryModel.used-by field.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "remove_from_used_by", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/category/{category_id}?action=revoke-propagating-permissions": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Revokes all propagating permissions on the given category. You should then attach a direct permission with tagging privileges on the given category. To invoke this operation, you need category related privileges (direct or propagating) on the concerned category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to revoke propagating permissions on the category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "revoke_propagating_permissions", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/category?action=list-used-categories": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Enumerates all categories for which the usedByEntity is part of the CategoryModel.used-by subscribers set. To invoke this operation, you need the read privilege on the individual categories.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingCategoryListUsedCategories" + } + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the categories in the system that are used by usedByEntity.\nThe result will contain identifiers for the resource type: cis.tagging.Category.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list_used_categories", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Creates a tag. To invoke this operation, you need the create tag privilege on the input category.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/CisTaggingTagCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the created tag.\nThe result will be an identifier for the resource type: cis.tagging.Tag.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the input information in the createSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the category for in the given createSpec does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to create tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates the tags in the system. To invoke this operation, you need read privilege on the individual tags. The list will only contain tags for which you have read privileges.", + "parameters": [], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the system.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association/{tag_id}?action=attach": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tag to the input object. The tag needs to meet the cardinality (CategoryModel.cardinality) and associability (CategoryModel.associable-types) criteria in order to be eligible for attachment. If the tag is already attached to the object, then this operation is a no-op and an error will not be thrown. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on the object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationAttach" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the input tag is not eligible to be attached to this object or if the objectId is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "403": { + "description": "if you do not have the privilege to attach the tag or do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "attach", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association/{tag_id}?action=attach-tag-to-multiple-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tag to the input objects. If a tag is already attached to the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on each object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationAttachTagToMultipleObjects" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing attachment failures.", + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationBatchResult" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the attach tag privilege on the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "attach_tag_to_multiple_objects", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association/{tag_id}?action=detach": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the tag from the given object. If the tag is already removed from the object, then this operation is a no-op and an error will not be thrown. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on the object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationDetach" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to detach the tag or do not have the privilege to read the given object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "detach", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association/{tag_id}?action=detach-tag-from-multiple-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the given tag from the input objects. If a tag is already removed from the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on each object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationDetachTagFromMultipleObjects" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing detachment failures.", + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationBatchResult" + } + }, + "404": { + "description": "if the tag for the given tag does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the attach tag privilege on the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "detach_tag_from_multiple_objects", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association/{tag_id}?action=list-attached-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of attached objects for the given tag. To invoke this operation, you need the read privilege on the input tag. Only those objects for which you have the read privilege will be returned.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "The list of attached object identifiers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + } + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to read the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list_attached_objects", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=attach-multiple-tags-to-object": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tags to the input object. If a tag is already attached to the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the read privilege on the object and the attach tag privilege on each tag.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationAttachMultipleTagsToObject" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing attachment failures.", + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationBatchResult" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "attach_multiple_tags_to_object", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=detach-multiple-tags-from-object": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the given tags from the input object. If a tag is already removed from the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the read privilege on the object and the attach tag privilege each tag.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationDetachMultipleTagsFromObject" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing detachment failures.", + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationBatchResult" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "detach_multiple_tags_from_object", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=list-attachable-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of attachable tags for the given object, omitting the tags that have already been attached. Criteria for attachability is calculated based on tagging cardinality (CategoryModel.cardinality) and associability (CategoryModel.associable-types) constructs. To invoke this operation, you need the read privilege on the input object. The list will only contain those tags for which you have read privileges.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationListAttachableTags" + } + } + ], + "responses": { + "200": { + "description": "The list of tag identifiers that are eligible to be attached to the given object.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list_attachable_tags", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=list-attached-objects-on-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of TagAssociation.TagToObjects describing the input tag identifiers and the objects they are attached to. To invoke this operation, you need the read privilege on each input tag. The TagAssociation.TagToObjects.object-ids will only contain those objects for which you have the read privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationListAttachedObjectsOnTags" + } + } + ], + "responses": { + "200": { + "description": "The list of the tag identifiers to all object identifiers that each tag is attached to.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/CisTaggingTagAssociationTagToObjects" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list_attached_objects_on_tags", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=list-attached-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of tags attached to the given object. To invoke this operation, you need the read privilege on the input object. The list will only contain those tags for which you have the read privileges.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationListAttachedTags" + } + } + ], + "responses": { + "200": { + "description": "The list of all tag identifiers that correspond to the tags attached to the given object.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list_attached_tags", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag-association?action=list-attached-tags-on-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of TagAssociation.ObjectToTags describing the input object identifiers and the tags attached to each object. To invoke this operation, you need the read privilege on each input object. The TagAssociation.ObjectToTags.tag-ids will only contain those tags for which you have the read privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAssociationListAttachedTagsOnObjects" + } + } + ], + "responses": { + "200": { + "description": "The list of the object identifiers to all tag identifiers that are attached to that object.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/CisTaggingTagAssociationObjectToTags" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list_attached_tags_on_objects", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag/{tag_id}": { + "get": { + "tags": [ + "tagging/tag" + ], + "summary": "Fetches the tag information for the given tag identifier. To invoke this operation, you need the read privilege on the tag in order to view the tag info.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "The TagModel that corresponds to tagId.", + "schema": { + "$ref": "#/definitions/CisTaggingTagModel" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user does not have the privilege to read the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "tagging/tag" + ], + "summary": "Updates an existing tag. To invoke this operation, you need the edit privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/CisTaggingTagUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if any of the input information in the updateSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to update the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "tagging/tag" + ], + "summary": "Deletes an existing tag. To invoke this operation, you need the delete privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to delete the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag/{tag_id}?action=add-to-used-by": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Adds the usedByEntity to the TagModel.used-by subscribers set. If the usedByEntity is already in the set, then this becomes a no-op. To invoke this operation, you need the modify TagModel.used-by privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagAddToUsedBy" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to add an entity to the TagModel.used-by field.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "add_to_used_by", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag/{tag_id}?action=remove-from-used-by": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Removes the usedByEntity from the TagModel.used-by subscribers set. If the usedByEntity is not using this tag, then this becomes a no-op. To invoke this operation, you need modify TagModel.used-by privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagRemoveFromUsedBy" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to remove an entity from the TagModel.used-by field.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "remove_from_used_by", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag/{tag_id}?action=revoke-propagating-permissions": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Revokes all propagating permissions on the given tag. You should then attach a direct permission with tagging privileges on the given tag. To invoke this operation, you need tag related privileges (direct or propagating) on the concerned tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to revoke propagating permissions on the tag.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "revoke_propagating_permissions", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag?action=list-tags-for-category": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates all tags for the given category. To invoke this operation, you need the read privilege on the given category and the individual tags in that category.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagListTagsForCategory" + } + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the given input category.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if you do not have the privilege to read the category.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list_tags_for_category", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tagging/tag?action=list-used-tags": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates all tags for which the usedByEntity is part of the TagModel.used-by subscribers set. To invoke this operation, you need the read privilege on the individual tags.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/CisTaggingTagListUsedTags" + } + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the system that are used by usedByEntity.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list_used_tags", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tasks/{task}": { + "get": { + "tags": [ + "tasks" + ], + "summary": "Returns information about a task.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "task", + "description": "Task identifier.\nThe parameter must be an identifier for the resource type: cis.task." + }, + { + "in": "query", + "name": "return_all", + "type": "boolean", + "description": "If true, all data, including operation-specific data, will be returned, otherwise only the data described in Info will be returned.\nIf unset, only the data described in Info will be returned." + }, + { + "in": "query", + "name": "exclude_result", + "type": "boolean", + "description": "If true, the result will not be included in the task information, otherwise it will be included.\nIf unset, the result of the operation will be included in the task information." + } + ], + "responses": { + "200": { + "description": "Information about the specified task.", + "schema": { + "$ref": "#/definitions/CisTaskInfo" + } + }, + "500": { + "description": "if the task's state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the task is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tasks/{task}?action=cancel": { + "post": { + "tags": [ + "tasks" + ], + "summary": "Cancel a running operation associated with the task. This is the best effort attempt. Operation may not be cancelled anymore once it reaches certain stage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "task", + "description": "Task identifier.\nThe parameter must be an identifier for the resource type: cis.task." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the task's state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the task is not cancelable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the task is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/cis/tasks?action=list": { + "post": { + "tags": [ + "tasks" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) tasks matching the Tasks.FilterSpec. All tasks must be in the same provider.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/CisTasksList" + } + } + ], + "responses": { + "200": { + "description": "Map of task identifier to information about the task.\nThe key in the result map will be an identifier for the resource type: cis.task.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/CisTaskInfo" + } + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if a task's state cannot be accessed or over 1000 tasks matching the Tasks.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/cis/tasks": { + "get": { + "tags": [ + "tasks" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) tasks matching the Tasks.FilterSpec. All tasks must be in the same provider.", + "parameters": [ + { + "in": "query", + "name": "filter_spec.tasks", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of tasks that can match the filter.\nThis field may be unset if Tasks.FilterSpec.services is specified. Currently all tasks must be from the same provider. If unset or empty, tasks with any identifier will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.task. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.task." + }, + { + "in": "query", + "name": "filter_spec.services", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of services. Tasks created by operations in these services match the filter (see CommonInfo.service).\nThis field may be unset if Tasks.FilterSpec.tasks is specified. Currently all services must be from the same provider. If this field is unset or empty, tasks for any service will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.service." + }, + { + "in": "query", + "name": "filter_spec.operations", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of operations. Tasks created by these operations match the filter (see CommonInfo.operation). \n Note that an operation identifier by itself is not globally unique. To filter on an operation, the identifier of the service interface containing the operation should also be specified in Tasks.FilterSpec.services.\n\nIf unset or empty, tasks associated with any operation will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation." + }, + { + "in": "query", + "name": "filter_spec.status", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "description": "Status that a task must have to match the filter (see CommonInfo.status).\nIf unset or empty, tasks with any status match the filter." + }, + { + "in": "query", + "name": "filter_spec.targets", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "description": "Identifiers of the targets the operation for the associated task created or was performed on (see CommonInfo.target).\nIf unset or empty, tasks associated with operations on any target match the filter.", + "required": false + }, + { + "in": "query", + "name": "filter_spec.users", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Users who must have initiated the operation for the associated task to match the filter (see CommonInfo.user).\nIf unset or empty, tasks associated with operations initiated by any user match the filter.", + "required": false + }, + { + "in": "query", + "name": "result_spec.return_all", + "type": "boolean", + "description": "If true, all data, including operation-specific data, will be returned, otherwise only the data described in Info will be returned.\nIf unset, only the data described in Info will be returned." + }, + { + "in": "query", + "name": "result_spec.exclude_result", + "type": "boolean", + "description": "If true, the result will not be included in the task information, otherwise it will be included.\nIf unset, the result of the operation will be included in the task information." + } + ], + "responses": { + "200": { + "description": "Map of task identifier to information about the task.\nThe key in the result map will be an identifier for the resource type: cis.task.", + "schema": { + "$ref": "#/definitions/cis.tasks.list_resp" + } + }, + "400": { + "description": "if a task's state cannot be accessed or over 1000 tasks matching the Tasks.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tasks?action=list/post" + } + } + }, + "/rest/cis/tasks/{task}": { + "get": { + "tags": [ + "tasks" + ], + "summary": "Returns information about a task.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "task", + "description": "Task identifier.\nThe parameter must be an identifier for the resource type: cis.task." + }, + { + "in": "query", + "name": "spec.return_all", + "type": "boolean", + "description": "If true, all data, including operation-specific data, will be returned, otherwise only the data described in Info will be returned.\nIf unset, only the data described in Info will be returned." + }, + { + "in": "query", + "name": "spec.exclude_result", + "type": "boolean", + "description": "If true, the result will not be included in the task information, otherwise it will be included.\nIf unset, the result of the operation will be included in the task information." + } + ], + "responses": { + "200": { + "description": "Information about the specified task.", + "schema": { + "$ref": "#/definitions/cis.tasks_resp" + } + }, + "400": { + "description": "if the task's state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the task is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tasks~1{task}/get" + } + } + }, + "/rest/cis/tasks/{task}?action=cancel": { + "post": { + "tags": [ + "tasks" + ], + "summary": "Cancel a running operation associated with the task. This is the best effort attempt. Operation may not be cancelled anymore once it reaches certain stage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "task", + "description": "Task identifier.\nThe parameter must be an identifier for the resource type: cis.task." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the task is not cancelable.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the task is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tasks~1{task}?action=cancel/post" + } + } + }, + "/rest/com/vmware/cis/session": { + "post": { + "tags": [ + "session" + ], + "summary": "Creates a session with the API. This is the equivalent of login. This operation exchanges user credentials supplied in the security context for a session token that is to be used for authenticating subsequent calls. \nTo authenticate subsequent calls clients are expected to include the session token. For REST API calls the HTTP vmware-api-session-id header field should be used for this.", + "parameters": [], + "responses": { + "200": { + "description": "Newly created session token to be used for authenticating further requests.", + "schema": { + "$ref": "#/definitions/cis.session.create_resp" + } + }, + "401": { + "description": "if the session creation fails due to request specific issues. Due to the security nature of the API the details of the error are not disclosed. \n Please check the following preconditions if using a SAML token to authenticate: \n\n - the supplied token is delegate-able.\n - the time of client and server system are synchronized.\n - the token supplied is valid.\n - if bearer tokens are used check that system configuration allows the API endpoint to accept such tokens.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if session creation fails due to server specific issues, for example connection to a back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "create", + "security": [ + { + "basic_auth": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1session/post" + } + }, + "delete": { + "tags": [ + "session" + ], + "summary": "Terminates the validity of a session token. This is the equivalent of log out. \n A session token is expected as part of the request.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if session deletion fails due to server specific issues, for example connection to a back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1session/delete" + } + } + }, + "/rest/com/vmware/cis/session?~action=get": { + "post": { + "tags": [ + "session" + ], + "summary": "Returns information about the current session. This operation expects a valid session token to be supplied. \n A side effect of invoking this operation may be a change to the session's last accessed time to the current time if this is supported by the session implementation. Invoking any other operation in the API will also update the session's last accessed time. \n\n This API is meant to serve the needs of various front end projects that may want to display the name of the user. Examples of this include various web based user interfaces and logging facilities.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the session.", + "schema": { + "$ref": "#/definitions/cis.session_resp" + } + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if session retrieval fails due to server specific issues e.g. connection to back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1session/get" + } + } + }, + "/rest/com/vmware/cis/tagging/category": { + "get": { + "tags": [ + "tagging/category" + ], + "summary": "Enumerates the categories in the system. To invoke this operation, you need the read privilege on the individual categories. The list will only contain those categories for which you have read privileges.", + "parameters": [], + "responses": { + "200": { + "description": "The list of resource identifiers for the categories in the system.\nThe result will contain identifiers for the resource type: cis.tagging.Category.", + "schema": { + "$ref": "#/definitions/cis.tagging.category.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category/get" + } + }, + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Creates a category. To invoke this operation, you need the create category privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.category_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the created category.\nThe result will be an identifier for the resource type: cis.tagging.Category.", + "schema": { + "$ref": "#/definitions/cis.tagging.category.create_resp" + } + }, + "400": { + "description": "if any of the information in the createSpec is invalid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "403": { + "description": "if you do not have the privilege to create a category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category/post" + } + } + }, + "/rest/com/vmware/cis/tagging/category/id:{category_id}": { + "delete": { + "tags": [ + "tagging/category" + ], + "summary": "Deletes an existing category. To invoke this operation, you need the delete privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of category to be deleted.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to delete the category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}/delete" + } + }, + "get": { + "tags": [ + "tagging/category" + ], + "summary": "Fetches the category information for the given category identifier. In order to view the category information, you need the read privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "200": { + "description": "The CategoryModel that corresponds to categoryId.", + "schema": { + "$ref": "#/definitions/cis.tagging.category_resp" + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to read the category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}/get" + } + }, + "patch": { + "tags": [ + "tagging/category" + ], + "summary": "Updates an existing category. To invoke this operation, you need the edit privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the category to be updated.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.category_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if any of the information in the updateSpec is invalid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to update the category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}/patch" + } + } + }, + "/rest/com/vmware/cis/tagging/category/id:{category_id}?~action=add-to-used-by": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Adds the usedByEntity to the CategoryModel.used-by subscribers set for the specified category. If the usedByEntity is already in the set, then this becomes an idempotent no-op. To invoke this operation, you need the modify CategoryModel.used-by privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.category_add_to_used_by" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to add an entity to the CategoryModel.used-by field.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "add_to_used_by", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}?action=add-to-used-by/post" + } + } + }, + "/rest/com/vmware/cis/tagging/category/id:{category_id}?~action=remove-from-used-by": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Removes the usedByEntity from the CategoryModel.used-by subscribers set. If the usedByEntity is not using this category, then this becomes a no-op. To invoke this operation, you need the modify CategoryModel.used-by privilege on the category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.category_remove_from_used_by" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to remove an entity from the CategoryModel.used-by field.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "remove_from_used_by", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}?action=remove-from-used-by/post" + } + } + }, + "/rest/com/vmware/cis/tagging/category/id:{category_id}?~action=revoke-propagating-permissions": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Revokes all propagating permissions on the given category. You should then attach a direct permission with tagging privileges on the given category. To invoke this operation, you need category related privileges (direct or propagating) on the concerned category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to revoke propagating permissions on the category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "revoke_propagating_permissions", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category~1{category_id}?action=revoke-propagating-permissions/post" + } + } + }, + "/rest/com/vmware/cis/tagging/category?~action=list-used-categories": { + "post": { + "tags": [ + "tagging/category" + ], + "summary": "Enumerates all categories for which the usedByEntity is part of the CategoryModel.used-by subscribers set. To invoke this operation, you need the read privilege on the individual categories.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.category_list_used_categories" + } + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the categories in the system that are used by usedByEntity.\nThe result will contain identifiers for the resource type: cis.tagging.Category.", + "schema": { + "$ref": "#/definitions/cis.tagging.category.list_used_categories_resp" + } + } + }, + "operationId": "list_used_categories", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1category?action=list-used-categories/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Creates a tag. To invoke this operation, you need the create tag privilege on the input category.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the created tag.\nThe result will be an identifier for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag.create_resp" + } + }, + "400": { + "description": "if any of the input information in the createSpec is invalid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the category for in the given createSpec does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to create tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag/post" + } + }, + "get": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates the tags in the system. To invoke this operation, you need read privilege on the individual tags. The list will only contain tags for which you have read privileges.", + "parameters": [], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the system.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag/get" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association/id:{tag_id}?~action=attach": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tag to the input object. The tag needs to meet the cardinality (CategoryModel.cardinality) and associability (CategoryModel.associable-types) criteria in order to be eligible for attachment. If the tag is already attached to the object, then this operation is a no-op and an error will not be thrown. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on the object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_attach" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the input tag is not eligible to be attached to this object or if the objectId is not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "403": { + "description": "if you do not have the privilege to attach the tag or do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "attach", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association~1{tag_id}?action=attach/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association/id:{tag_id}?~action=attach-tag-to-multiple-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tag to the input objects. If a tag is already attached to the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on each object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_attach_tag_to_multiple_objects" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing attachment failures.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.attach_tag_to_multiple_objects_resp" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the attach tag privilege on the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "attach_tag_to_multiple_objects", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association~1{tag_id}?action=attach-tag-to-multiple-objects/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association/id:{tag_id}?~action=detach": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the tag from the given object. If the tag is already removed from the object, then this operation is a no-op and an error will not be thrown. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on the object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_detach" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to detach the tag or do not have the privilege to read the given object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "detach", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association~1{tag_id}?action=detach/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association/id:{tag_id}?~action=detach-tag-from-multiple-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the given tag from the input objects. If a tag is already removed from the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the attach tag privilege on the tag and the read privilege on each object.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_detach_tag_from_multiple_objects" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing detachment failures.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.detach_tag_from_multiple_objects_resp" + } + }, + "404": { + "description": "if the tag for the given tag does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the attach tag privilege on the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "detach_tag_from_multiple_objects", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association~1{tag_id}?action=detach-tag-from-multiple-objects/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association/id:{tag_id}?~action=list-attached-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of attached objects for the given tag. To invoke this operation, you need the read privilege on the input tag. Only those objects for which you have the read privilege will be returned.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "The list of attached object identifiers.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.list_attached_objects_resp" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to read the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "list_attached_objects", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association~1{tag_id}?action=list-attached-objects/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=attach-multiple-tags-to-object": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Attaches the given tags to the input object. If a tag is already attached to the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the read privilege on the object and the attach tag privilege on each tag.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_attach_multiple_tags_to_object" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing attachment failures.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.attach_multiple_tags_to_object_resp" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "attach_multiple_tags_to_object", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=attach-multiple-tags-to-object/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=detach-multiple-tags-from-object": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Detaches the given tags from the input object. If a tag is already removed from the object, then the individual operation is a no-op and an error will not be added to TagAssociation.BatchResult.error-messages. To invoke this operation, you need the read privilege on the object and the attach tag privilege each tag.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_detach_multiple_tags_from_object" + } + } + ], + "responses": { + "200": { + "description": "The outcome of the batch operation and the list of error messages (TagAssociation.BatchResult.error-messages) describing detachment failures.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.detach_multiple_tags_from_object_resp" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "detach_multiple_tags_from_object", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=detach-multiple-tags-from-object/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=list-attachable-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of attachable tags for the given object, omitting the tags that have already been attached. Criteria for attachability is calculated based on tagging cardinality (CategoryModel.cardinality) and associability (CategoryModel.associable-types) constructs. To invoke this operation, you need the read privilege on the input object. The list will only contain those tags for which you have read privileges.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_list_attachable_tags" + } + } + ], + "responses": { + "200": { + "description": "The list of tag identifiers that are eligible to be attached to the given object.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.list_attachable_tags_resp" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "list_attachable_tags", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=list-attachable-tags/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=list-attached-objects-on-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of TagAssociation.TagToObjects describing the input tag identifiers and the objects they are attached to. To invoke this operation, you need the read privilege on each input tag. The TagAssociation.TagToObjects.object-ids will only contain those objects for which you have the read privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_list_attached_objects_on_tags" + } + } + ], + "responses": { + "200": { + "description": "The list of the tag identifiers to all object identifiers that each tag is attached to.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.list_attached_objects_on_tags_resp" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "list_attached_objects_on_tags", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=list-attached-objects-on-tags/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=list-attached-tags": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of tags attached to the given object. To invoke this operation, you need the read privilege on the input object. The list will only contain those tags for which you have the read privileges.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_list_attached_tags" + } + } + ], + "responses": { + "200": { + "description": "The list of all tag identifiers that correspond to the tags attached to the given object.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.list_attached_tags_resp" + } + }, + "403": { + "description": "if you do not have the privilege to read the object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "list_attached_tags", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=list-attached-tags/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag-association?~action=list-attached-tags-on-objects": { + "post": { + "tags": [ + "tagging/tag_association" + ], + "summary": "Fetches the list of TagAssociation.ObjectToTags describing the input object identifiers and the tags attached to each object. To invoke this operation, you need the read privilege on each input object. The TagAssociation.ObjectToTags.tag-ids will only contain those tags for which you have the read privilege.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association_list_attached_tags_on_objects" + } + } + ], + "responses": { + "200": { + "description": "The list of the object identifiers to all tag identifiers that are attached to that object.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_association.list_attached_tags_on_objects_resp" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "list_attached_tags_on_objects", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag-association?action=list-attached-tags-on-objects/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag/id:{category_id}?~action=list-tags-for-category": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates all tags for the given category. To invoke this operation, you need the read privilege on the given category and the individual tags in that category.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "category_id", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the given input category.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag.list_tags_for_category_resp" + } + }, + "404": { + "description": "if the category for the given categoryId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to read the category.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list_tags_for_category", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag?action=list-tags-for-category/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag/id:{tag_id}": { + "delete": { + "tags": [ + "tagging/tag" + ], + "summary": "Deletes an existing tag. To invoke this operation, you need the delete privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to delete the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}/delete" + } + }, + "patch": { + "tags": [ + "tagging/tag" + ], + "summary": "Updates an existing tag. To invoke this operation, you need the edit privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if any of the input information in the updateSpec is invalid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to update the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}/patch" + } + }, + "get": { + "tags": [ + "tagging/tag" + ], + "summary": "Fetches the tag information for the given tag identifier. To invoke this operation, you need the read privilege on the tag in order to view the tag info.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "The TagModel that corresponds to tagId.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag_resp" + } + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if the user does not have the privilege to read the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}/get" + } + } + }, + "/rest/com/vmware/cis/tagging/tag/id:{tag_id}?~action=add-to-used-by": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Adds the usedByEntity to the TagModel.used-by subscribers set. If the usedByEntity is already in the set, then this becomes a no-op. To invoke this operation, you need the modify TagModel.used-by privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_add_to_used_by" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to add an entity to the TagModel.used-by field.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "add_to_used_by", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}?action=add-to-used-by/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag/id:{tag_id}?~action=remove-from-used-by": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Removes the usedByEntity from the TagModel.used-by subscribers set. If the usedByEntity is not using this tag, then this becomes a no-op. To invoke this operation, you need modify TagModel.used-by privilege on the tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_remove_from_used_by" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to remove an entity from the TagModel.used-by field.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "remove_from_used_by", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}?action=remove-from-used-by/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag/id:{tag_id}?~action=revoke-propagating-permissions": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Revokes all propagating permissions on the given tag. You should then attach a direct permission with tagging privileges on the given tag. To invoke this operation, you need tag related privileges (direct or propagating) on the concerned tag.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tag_id", + "description": "The identifier of the input tag.\nThe parameter must be an identifier for the resource type: cis.tagging.Tag." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the tag for the given tagId does not exist in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have the privilege to revoke propagating permissions on the tag.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "revoke_propagating_permissions", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag~1{tag_id}?action=revoke-propagating-permissions/post" + } + } + }, + "/rest/com/vmware/cis/tagging/tag?~action=list-used-tags": { + "post": { + "tags": [ + "tagging/tag" + ], + "summary": "Enumerates all tags for which the usedByEntity is part of the TagModel.used-by subscribers set. To invoke this operation, you need the read privilege on the individual tags.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/cis.tagging.tag_list_used_tags" + } + } + ], + "responses": { + "200": { + "description": "The list of resource identifiers for the tags in the system that are used by usedByEntity.\nThe result will contain identifiers for the resource type: cis.tagging.Tag.", + "schema": { + "$ref": "#/definitions/cis.tagging.tag.list_used_tags_resp" + } + } + }, + "operationId": "list_used_tags", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_cis.json#/paths/~1api~1cis~1tagging~1tag?action=list-used-tags/post" + } + } + } + }, + "definitions": { + "CisTaggingCategoryAddToUsedBy": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be added to the CategoryModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingCategoryCreate": { + "$ref": "#/definitions/CisTaggingCategoryCreateSpec", + "description": "Specification for the new category to be created." + }, + "CisTaggingCategoryCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the category.", + "type": "string" + }, + "description": { + "description": "The description of the category.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.", + "$ref": "#/definitions/CisTaggingCategoryModelCardinality" + }, + "associable_types": { + "description": "Object types to which this category's tags can be attached.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "category_id": { + "description": "If unset an identifier will be generated by the server\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "cardinality", + "associable_types" + ] + }, + "CisTaggingCategoryListUsedCategories": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The field on which the results will be filtered." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingCategoryModel": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the category.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "name": { + "description": "The display name of the category.", + "type": "string" + }, + "description": { + "description": "The description of the category.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.", + "$ref": "#/definitions/CisTaggingCategoryModelCardinality" + }, + "associable_types": { + "description": "The types of objects that the tags in this category can be attached to. If the set is empty, then tags can be attached to all types of objects. This field works only for objects that reside in Inventory Service (IS). For non IS objects, this check is not performed today and hence a tag can be attached to any non IS object.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "used_by": { + "description": "The set of users that can use this category. To add users to this, you need to have the edit privilege on the category. Similarly, to unsubscribe from this category, you need the edit privilege on the category. You should not modify other users subscription from this set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "name", + "description", + "cardinality", + "associable_types", + "used_by" + ] + }, + "CisTaggingCategoryModelCardinality": { + "type": "string", + "description": "The CategoryModel.Cardinality enumerated type defines the number of tags in a category that can be assigned to an object.", + "enum": [ + "SINGLE", + "MULTIPLE" + ] + }, + "CisTaggingCategoryRemoveFromUsedBy": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be removed from the CategoryModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingCategoryUpdate": { + "$ref": "#/definitions/CisTaggingCategoryUpdateSpec", + "description": "Specification to update the category." + }, + "CisTaggingCategoryUpdateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the category.\nIf unset the name will not be modified.", + "type": "string" + }, + "description": { + "description": "The description of the category.\nIf unset the description will not be modified.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.\nIf unset the cardinality will not be modified.", + "$ref": "#/definitions/CisTaggingCategoryModelCardinality" + }, + "associable_types": { + "description": "Object types to which this category's tags can be attached. \n The set of associable types cannot be updated incrementally. For example, if Category.UpdateSpec.associable-types originally contains {A,B,C} and you want to add D, then you need to pass {A,B,C,D} in your update specification. You also cannot remove any item from this set. For example, if you have {A,B,C}, then you cannot remove say {A} from it. Similarly, if you start with an empty set, then that implies that you can tag any object and hence you cannot later pass say {A}, because that would be restricting the type of objects you want to tag. Thus, associable types can only grow and not shrink.\n\nIf unset the associable types will not be modified.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "CisTaggingTagAddToUsedBy": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be added to the TagModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingTagAssociationAttach": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "CisTaggingTagAssociationAttachMultipleTagsToObject": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + }, + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "CisTaggingTagAssociationAttachTagToMultipleObjects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "CisTaggingTagAssociationBatchResult": { + "type": "object", + "properties": { + "success": { + "description": "This is true if the batch operation completed without any errors. Otherwise it is false and all or some operations have failed.", + "type": "boolean" + }, + "error_messages": { + "description": "The list of error messages.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "success", + "error_messages" + ] + }, + "CisTaggingTagAssociationDetach": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "CisTaggingTagAssociationDetachMultipleTagsFromObject": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + }, + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "CisTaggingTagAssociationDetachTagFromMultipleObjects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "CisTaggingTagAssociationListAttachableTags": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "CisTaggingTagAssociationListAttachedObjectsOnTags": { + "type": "object", + "properties": { + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "tag_ids" + ] + }, + "CisTaggingTagAssociationListAttachedTags": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/VapiStdDynamicID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "CisTaggingTagAssociationListAttachedTagsOnObjects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "CisTaggingTagAssociationObjectToTags": { + "type": "object", + "properties": { + "object_id": { + "description": "The identifier of the object.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "tag_ids": { + "description": "The identifiers of the related tags.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.tagging.Tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "CisTaggingTagAssociationTagToObjects": { + "type": "object", + "properties": { + "tag_id": { + "description": "The identifier of the tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + }, + "object_ids": { + "description": "The identifiers of the related objects.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + } + } + }, + "required": [ + "tag_id", + "object_ids" + ] + }, + "CisTaggingTagCreate": { + "$ref": "#/definitions/CisTaggingTagCreateSpec", + "description": "Specification for the new tag to be created." + }, + "CisTaggingTagCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the tag. The name must be unique within its category.", + "type": "string" + }, + "description": { + "description": "The description of the tag.", + "type": "string" + }, + "category_id": { + "description": "The unique identifier of the parent category in which this tag will be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "tag_id": { + "description": "If unset an identifier will be generated by the server\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "category_id" + ] + }, + "CisTaggingTagListTagsForCategory": { + "type": "object", + "properties": { + "category_id": { + "type": "string", + "description": "The identifier of the input category.\nThe parameter must be an identifier for the resource type: cis.tagging.Category." + } + }, + "required": [ + "category_id" + ] + }, + "CisTaggingTagListUsedTags": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The field on which the results will be filtered." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingTagModel": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + }, + "category_id": { + "description": "The identifier of the parent category in which this tag will be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "name": { + "description": "The display name of the tag.", + "type": "string" + }, + "description": { + "description": "The description of the tag.", + "type": "string" + }, + "used_by": { + "description": "The set of users that can use this tag. To add users to this, you need to have the edit privilege on the tag. Similarly, to unsubscribe from this tag, you need the edit privilege on the tag. You should not modify other users subscription from this set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "category_id", + "name", + "description", + "used_by" + ] + }, + "CisTaggingTagRemoveFromUsedBy": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be removed from the TagModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "CisTaggingTagUpdate": { + "$ref": "#/definitions/CisTaggingTagUpdateSpec", + "description": "Specification to update the tag." + }, + "CisTaggingTagUpdateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the tag.\nIf unset the name will not be modified.", + "type": "string" + }, + "description": { + "description": "The description of the tag.\nIf unset the description will not be modified.", + "type": "string" + } + } + }, + "CisTaskInfo": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the operation.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "result": { + "description": "Result of the operation. \n If an operation reports partial results before it completes, this field could be set before the CommonInfo.status has the value SUCCEEDED. The value could change as the operation progresses.\n\nThis field will be unset if the operation does not return a result or if the result is not available at the current step of the operation.", + "type": "object" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "CisTaskProgress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "CisTaskStatus": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "CisTasksFilterSpec": { + "type": "object", + "properties": { + "tasks": { + "description": "Identifiers of tasks that can match the filter.\nThis field may be unset if Tasks.FilterSpec.services is specified. Currently all tasks must be from the same provider. If unset or empty, tasks with any identifier will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.task. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.task.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "services": { + "description": "Identifiers of services. Tasks created by operations in these services match the filter (see CommonInfo.service).\nThis field may be unset if Tasks.FilterSpec.tasks is specified. Currently all services must be from the same provider. If this field is unset or empty, tasks for any service will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "operations": { + "description": "Identifiers of operations. Tasks created by these operations match the filter (see CommonInfo.operation). \n Note that an operation identifier by itself is not globally unique. To filter on an operation, the identifier of the service interface containing the operation should also be specified in Tasks.FilterSpec.services.\n\nIf unset or empty, tasks associated with any operation will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "status": { + "description": "Status that a task must have to match the filter (see CommonInfo.status).\nIf unset or empty, tasks with any status match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/CisTaskStatus" + } + }, + "targets": { + "description": "Identifiers of the targets the operation for the associated task created or was performed on (see CommonInfo.target).\nIf unset or empty, tasks associated with operations on any target match the filter.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + } + }, + "users": { + "description": "Users who must have initiated the operation for the associated task to match the filter (see CommonInfo.user).\nIf unset or empty, tasks associated with operations initiated by any user match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "CisTasksGetSpec": { + "type": "object", + "properties": { + "return_all": { + "description": "If true, all data, including operation-specific data, will be returned, otherwise only the data described in Info will be returned.\nIf unset, only the data described in Info will be returned.", + "type": "boolean" + }, + "exclude_result": { + "description": "If true, the result will not be included in the task information, otherwise it will be included.\nIf unset, the result of the operation will be included in the task information.", + "type": "boolean" + } + } + }, + "CisTasksList": { + "type": "object", + "properties": { + "filter_spec": { + "$ref": "#/definitions/CisTasksFilterSpec", + "description": "Specification of matching tasks.\nThis is currently required. In the future, if it is unset, the behavior is equivalent to a Tasks.FilterSpec with all fields unset which means all tasks match the filter." + }, + "result_spec": { + "$ref": "#/definitions/CisTasksGetSpec", + "description": "Specification of what to return for a task.\nIf unset, the behavior is equivalent to a Tasks.GetSpec with all fields unset which means only the data describe in Info will be returned and the result of the operation will be return." + } + } + }, + "VapiStdDynamicID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "cis.session.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string", + "format": "password" + } + }, + "required": [ + "value" + ] + }, + "cis.session.info": { + "type": "object", + "properties": { + "user": { + "description": "Fully qualified name of the end user that created the session, for example Administrator@vsphere.local. A typical use case for this information is in Graphical User Interfaces (GUI) or logging systems to visualize the identity of the current user.", + "type": "string" + }, + "created_time": { + "description": "Time when the session was created.", + "type": "string", + "format": "date-time" + }, + "last_accessed_time": { + "description": "Last time this session was used by passing the session token for invoking an API.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "user", + "created_time", + "last_accessed_time" + ] + }, + "cis.session_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.session.info" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.category.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.category.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the category.", + "type": "string" + }, + "description": { + "description": "The description of the category.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.", + "$ref": "#/definitions/cis.tagging.category_model.cardinality" + }, + "associable_types": { + "description": "Object types to which this category's tags can be attached.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "category_id": { + "description": "If unset an identifier will be generated by the server\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "cardinality", + "associable_types" + ] + }, + "cis.tagging.category.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.category.list_used_categories_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.category.update_spec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the category.\nIf unset the name will not be modified.", + "type": "string" + }, + "description": { + "description": "The description of the category.\nIf unset the description will not be modified.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.\nIf unset the cardinality will not be modified.", + "$ref": "#/definitions/cis.tagging.category_model.cardinality" + }, + "associable_types": { + "description": "Object types to which this category's tags can be attached. \n The set of associable types cannot be updated incrementally. For example, if Category.UpdateSpec.associable-types originally contains {A,B,C} and you want to add D, then you need to pass {A,B,C,D} in your update specification. You also cannot remove any item from this set. For example, if you have {A,B,C}, then you cannot remove say {A} from it. Similarly, if you start with an empty set, then that implies that you can tag any object and hence you cannot later pass say {A}, because that would be restricting the type of objects you want to tag. Thus, associable types can only grow and not shrink.\n\nIf unset the associable types will not be modified.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "cis.tagging.category_add_to_used_by": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be added to the CategoryModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.category_create": { + "type": "object", + "properties": { + "create_spec": { + "$ref": "#/definitions/cis.tagging.category.create_spec", + "description": "Specification for the new category to be created." + } + }, + "required": [ + "create_spec" + ] + }, + "cis.tagging.category_list_used_categories": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The field on which the results will be filtered." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.category_model": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the category.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "name": { + "description": "The display name of the category.", + "type": "string" + }, + "description": { + "description": "The description of the category.", + "type": "string" + }, + "cardinality": { + "description": "The associated cardinality (Cardinality) of the category.", + "$ref": "#/definitions/cis.tagging.category_model.cardinality" + }, + "associable_types": { + "description": "The types of objects that the tags in this category can be attached to. If the set is empty, then tags can be attached to all types of objects. This field works only for objects that reside in Inventory Service (IS). For non IS objects, this check is not performed today and hence a tag can be attached to any non IS object.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "used_by": { + "description": "The set of users that can use this category. To add users to this, you need to have the edit privilege on the category. Similarly, to unsubscribe from this category, you need the edit privilege on the category. You should not modify other users subscription from this set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "name", + "description", + "cardinality", + "associable_types", + "used_by" + ] + }, + "cis.tagging.category_model.cardinality": { + "type": "string", + "description": "The CategoryModel.Cardinality enumerated type defines the number of tags in a category that can be assigned to an object.", + "enum": [ + "SINGLE", + "MULTIPLE" + ] + }, + "cis.tagging.category_remove_from_used_by": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be removed from the CategoryModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.category_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.category_model" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.category_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/cis.tagging.category.update_spec", + "description": "Specification to update the category." + } + }, + "required": [ + "update_spec" + ] + }, + "cis.tagging.tag.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the tag. The name must be unique within its category.", + "type": "string" + }, + "description": { + "description": "The description of the tag.", + "type": "string" + }, + "category_id": { + "description": "The unique identifier of the parent category in which this tag will be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "tag_id": { + "description": "If unset an identifier will be generated by the server\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "category_id" + ] + }, + "cis.tagging.tag.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag.list_tags_for_category_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag.list_used_tags_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag.update_spec": { + "type": "object", + "properties": { + "name": { + "description": "The display name of the tag.\nIf unset the name will not be modified.", + "type": "string" + }, + "description": { + "description": "The description of the tag.\nIf unset the description will not be modified.", + "type": "string" + } + } + }, + "cis.tagging.tag_add_to_used_by": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be added to the TagModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.tag_association.attach_multiple_tags_to_object_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.tag_association.batch_result" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.attach_tag_to_multiple_objects_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.tag_association.batch_result" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.batch_result": { + "type": "object", + "properties": { + "success": { + "description": "This is true if the batch operation completed without any errors. Otherwise it is false and all or some operations have failed.", + "type": "boolean" + }, + "error_messages": { + "description": "The list of error messages.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "success", + "error_messages" + ] + }, + "cis.tagging.tag_association.detach_multiple_tags_from_object_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.tag_association.batch_result" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.detach_tag_from_multiple_objects_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.tag_association.batch_result" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.list_attachable_tags_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.list_attached_objects_on_tags_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/cis.tagging.tag_association.tag_to_objects" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.list_attached_objects_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.list_attached_tags_on_objects_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/cis.tagging.tag_association.object_to_tags" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.list_attached_tags_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_association.object_to_tags": { + "type": "object", + "properties": { + "object_id": { + "description": "The identifier of the object.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "tag_ids": { + "description": "The identifiers of the related tags.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.tagging.Tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "cis.tagging.tag_association.tag_to_objects": { + "type": "object", + "properties": { + "tag_id": { + "description": "The identifier of the tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + }, + "object_ids": { + "description": "The identifiers of the related objects.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + } + } + }, + "required": [ + "tag_id", + "object_ids" + ] + }, + "cis.tagging.tag_association_attach": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "cis.tagging.tag_association_attach_multiple_tags_to_object": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + }, + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "cis.tagging.tag_association_attach_tag_to_multiple_objects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "cis.tagging.tag_association_detach": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "cis.tagging.tag_association_detach_multiple_tags_from_object": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + }, + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "object_id", + "tag_ids" + ] + }, + "cis.tagging.tag_association_detach_tag_from_multiple_objects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "cis.tagging.tag_association_list_attachable_tags": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "cis.tagging.tag_association_list_attached_objects_on_tags": { + "type": "object", + "properties": { + "tag_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The identifiers of the input tags.\nThe parameter must contain identifiers for the resource type: cis.tagging.Tag." + } + }, + "required": [ + "tag_ids" + ] + }, + "cis.tagging.tag_association_list_attached_tags": { + "type": "object", + "properties": { + "object_id": { + "$ref": "#/definitions/vapi.std.dynamic_ID", + "description": "The identifier of the input object." + } + }, + "required": [ + "object_id" + ] + }, + "cis.tagging.tag_association_list_attached_tags_on_objects": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "description": "The identifiers of the input objects." + } + }, + "required": [ + "object_ids" + ] + }, + "cis.tagging.tag_create": { + "type": "object", + "properties": { + "create_spec": { + "$ref": "#/definitions/cis.tagging.tag.create_spec", + "description": "Specification for the new tag to be created." + } + }, + "required": [ + "create_spec" + ] + }, + "cis.tagging.tag_list_used_tags": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The field on which the results will be filtered." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.tag_model": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + }, + "category_id": { + "description": "The identifier of the parent category in which this tag will be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Category. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Category.", + "type": "string" + }, + "name": { + "description": "The display name of the tag.", + "type": "string" + }, + "description": { + "description": "The description of the tag.", + "type": "string" + }, + "used_by": { + "description": "The set of users that can use this tag. To add users to this, you need to have the edit privilege on the tag. Similarly, to unsubscribe from this tag, you need the edit privilege on the tag. You should not modify other users subscription from this set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "category_id", + "name", + "description", + "used_by" + ] + }, + "cis.tagging.tag_remove_from_used_by": { + "type": "object", + "properties": { + "used_by_entity": { + "type": "string", + "description": "The name of the user to be removed from the TagModel.used-by set." + } + }, + "required": [ + "used_by_entity" + ] + }, + "cis.tagging.tag_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.tagging.tag_model" + } + }, + "required": [ + "value" + ] + }, + "cis.tagging.tag_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/cis.tagging.tag.update_spec", + "description": "Specification to update the tag." + } + }, + "required": [ + "update_spec" + ] + }, + "cis.task.info": { + "type": "object", + "properties": { + "progress": { + "description": "Progress of the operation.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/cis.task.progress" + }, + "result": { + "description": "Result of the operation. \n If an operation reports partial results before it completes, this field could be set before the CommonInfo.status has the value SUCCEEDED. The value could change as the operation progresses.\n\nThis field will be unset if the operation does not return a result or if the result is not available at the current step of the operation.", + "type": "object" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "cis.task.progress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "cis.task.status": { + "type": "string", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "cis.tasks.filter_spec": { + "type": "object", + "properties": { + "tasks": { + "description": "Identifiers of tasks that can match the filter.\nThis field may be unset if Tasks.FilterSpec.services is specified. Currently all tasks must be from the same provider. If unset or empty, tasks with any identifier will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.task. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.task.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "services": { + "description": "Identifiers of services. Tasks created by operations in these services match the filter (see CommonInfo.service).\nThis field may be unset if Tasks.FilterSpec.tasks is specified. Currently all services must be from the same provider. If this field is unset or empty, tasks for any service will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "operations": { + "description": "Identifiers of operations. Tasks created by these operations match the filter (see CommonInfo.operation). \n Note that an operation identifier by itself is not globally unique. To filter on an operation, the identifier of the service interface containing the operation should also be specified in Tasks.FilterSpec.services.\n\nIf unset or empty, tasks associated with any operation will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "status": { + "description": "Status that a task must have to match the filter (see CommonInfo.status).\nIf unset or empty, tasks with any status match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/cis.task.status" + } + }, + "targets": { + "description": "Identifiers of the targets the operation for the associated task created or was performed on (see CommonInfo.target).\nIf unset or empty, tasks associated with operations on any target match the filter.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.dynamic_ID" + } + }, + "users": { + "description": "Users who must have initiated the operation for the associated task to match the filter (see CommonInfo.user).\nIf unset or empty, tasks associated with operations initiated by any user match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "cis.tasks.get_spec": { + "type": "object", + "properties": { + "return_all": { + "description": "If true, all data, including operation-specific data, will be returned, otherwise only the data described in Info will be returned.\nIf unset, only the data described in Info will be returned.", + "type": "boolean" + }, + "exclude_result": { + "description": "If true, the result will not be included in the task information, otherwise it will be included.\nIf unset, the result of the operation will be included in the task information.", + "type": "boolean" + } + } + }, + "cis.tasks.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/cis.task.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "cis.tasks_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/cis.task.info" + } + }, + "required": [ + "value" + ] + }, + "vapi.std.dynamic_ID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "vapi.std.errors.already_exists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_exists_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_exists" + } + } + }, + "vapi.std.errors.error": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.error.type": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "vapi.std.errors.error_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.error" + } + } + }, + "vapi.std.errors.invalid_argument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_argument_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument" + } + } + }, + "vapi.std.errors.not_allowed_in_current_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_allowed_in_current_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state" + } + } + }, + "vapi.std.errors.not_found": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_found_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_found" + } + } + }, + "vapi.std.errors.resource_inaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_inaccessible_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible" + } + } + }, + "vapi.std.errors.service_unavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.service_unavailable_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable" + } + } + }, + "vapi.std.errors.unauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthenticated_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated" + } + } + }, + "vapi.std.errors.unauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthorized_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthorized" + } + } + }, + "vapi.std.errors.unsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unsupported_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unsupported" + } + } + }, + "vapi.std.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "vapi.std.localization_param": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/vapi.std.nested_localizable_message" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/vapi.std.localization_param.date_time_format" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "vapi.std.localization_param.date_time_format": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "vapi.std.nested_localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/content.json b/config/api_specifications/8.0.2/content.json new file mode 100644 index 000000000..1571866fc --- /dev/null +++ b/config/api_specifications/8.0.2/content.json @@ -0,0 +1,11306 @@ +{ + "swagger": "2.0", + "info": { + "description": "VMware vSphere\u00ae Content Library empowers vSphere Admins to effectively manage VM templates, vApps, ISO images and scripts with ease.", + "title": "content", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/content/configuration": { + "get": { + "tags": [ + "configuration" + ], + "summary": "Retrieves the current configuration values.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.GetConfiguration.", + "parameters": [], + "responses": { + "200": { + "description": "The ConfigurationModel instance representing the configuration of the Content Library Service.", + "schema": { + "$ref": "#/definitions/ContentConfigurationModel" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "configuration" + ], + "summary": "Updates the configuration. The update is incremental. Any field in the ConfigurationModel structure that is unset will not be modified. Note that this update operation doesn't guarantee an atomic change of all the properties. In the case of a system crash or failure, some of the properties could be left unchanged while others may be updated.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.UpdateConfiguration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentConfigurationUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if one of the configuration properties is not within the proper range.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library": { + "get": { + "tags": [ + "library" + ], + "summary": "Returns the identifiers of all libraries of any type in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of all identifiers of all libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Creates a new library item. \n A new library item is created without any content. After creation, content can be added through the UpdateSession and File services. \n\n A library item cannot be created in a subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the attribute ItemModel.library-id requires ContentLibrary.AddLibraryItem.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the new library item.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the ItemModel.library-id property of createSpec refers to a library that does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is already a library item with same name in the library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Creates a new download session.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the attribute DownloadSessionModel.library-item-id requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadSessionCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated by the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the new download session being created.\nThe result will be an identifier for the resource type: content.library.item.DownloadSession.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the session specification is not valid.\n format.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the library item targeted by the download does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "library/item/download_session" + ], + "summary": "Lists the identifiers of the download sessions created by the calling user. Optionally may filter by library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.item.DownloadSession referenced by the parameter libraryItemId requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Library item identifier on which to filter results.\nIf not specified all download session identifiers are listed.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all download sessions created by the calling user.\nThe result will contain identifiers for the resource type: content.library.item.DownloadSession.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if a library item identifier is given for an item which does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}": { + "get": { + "tags": [ + "library/item/download_session" + ], + "summary": "Gets the download session with the specified identifier, including the most up-to-date status information for the session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to retrieve.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "The DownloadSessionModel instance with the given downloadSessionId.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadSessionModel" + } + }, + "404": { + "description": "if no download session with the given downloadSessionId exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "library/item/download_session" + ], + "summary": "Deletes a download session. This removes the session and all information associated with it. \n Removing a download session leaves any current transfers for that session in an indeterminate state (there is no guarantee that the transfers will be able to complete). However there will no longer be a means of inspecting the status of those downloads except by seeing the effect on the library item. \n\n Download sessions for which there is no download activity or which are complete will automatically be expired and then deleted after a period of time.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to be deleted.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}/file": { + "get": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Lists the information of all the files in the library item associated with the download session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "The list of File.Info instances.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFileInfo" + } + } + }, + "404": { + "description": "if the download session associated with downloadSessionId doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}/file?action=prepare": { + "post": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Requests a file to be prepared for download.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFilePrepare" + } + } + ], + "responses": { + "200": { + "description": "File information containing the status of the request and the download link to the file.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFileInfo" + } + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is no file with the specified fileName.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "403": { + "description": "if the the download session wasn't created with the ContentLibrary.ReadStorage privilege and the caller requested a DIRECT endpoint type.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "prepare", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}/file?file_name": { + "get": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Retrieves file download information for a specific file.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "type": "string", + "required": true, + "in": "query", + "name": "file_name", + "description": "Name of the file requested." + } + ], + "responses": { + "200": { + "description": "The File.Info instance containing the status of the file and its download link if available.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFileInfo" + } + }, + "404": { + "description": "if the download session associated with downloadSessionId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is no file with the specified fileName.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}?action=cancel": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Cancels the download session. This operation will abort any ongoing transfers and invalidate transfer urls that the client may be downloading from.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifer of the download session that should be canceled.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no download session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}?action=fail": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Terminates the download session with a client specified error message. \n This is useful in transmitting client side failures (for example, not being able to download a file) to the server side.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to fail.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadSessionFail" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "fail", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/download-session/{download_session_id}?action=keep-alive": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Keeps a download session alive. This operation is allowed only if the session is in the ACTIVE state. \n If there is no activity for a download session for a certain period of time, the download session will expire. The download session expiration timeout is configurable in the Content Library Service system configuration. The default is five minutes. Invoking this operation enables a client to specifically extend the lifetime of an active download session.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session whose lifetime should be extended.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemDownloadSessionKeepAlive" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no download session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "keep_alive", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Creates a new update session. An update session is used to make modifications to a library item. Modifications are not visible to other clients unless the session is completed and all necessary files have been received. \n Content Library Service allows only one single update session to be active for a specific library item.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the attribute UpdateSessionModel.library-item-id requires ContentLibrary.UpdateSession.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "Unique token generated by the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the new update session being created.\nThe result will be an identifier for the resource type: content.library.item.UpdateSession.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the update session is being created on a subscribed library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidElementType" + } + }, + "404": { + "description": "if the item targeted for update does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if there is another update session on the same library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "library/item/update_session" + ], + "summary": "Lists the identifiers of the update session created by the calling user. Optionally may filter by library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.item.UpdateSession referenced by the parameter libraryItemId requires ContentLibrary.UpdateSession.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Optional library item identifier on which to filter results.\nIf not specified the results are not filtered.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all update sessions created by the calling user.\nThe result will contain identifiers for the resource type: content.library.item.UpdateSession.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if a library item identifier is given for an item which does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}": { + "get": { + "tags": [ + "library/item/update_session" + ], + "summary": "Gets the update session with the specified identifier, including the most up-to-date status information for the session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to retrieve.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "The UpdateSessionModel instance with the given updateSessionId.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionModel" + } + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "library/item/update_session" + ], + "summary": "Updates the properties of an update session. \n This is an incremental update to the update session. Any field in the UpdateSessionModel structure that is unset will not be modified. \n\n This operation will only update the property UpdateSessionModel.warning-behavior of the update session. This will not, for example, update the UpdateSessionModel.library-item-id or UpdateSessionModel.state of an update session. \n\n This operation requires the session to be in the ACTIVE state.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifer of the update session that should be updated.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session specification is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "library/item/update_session" + ], + "summary": "Deletes an update session. This removes the session and all information associated with it. \n Removing an update session leaves any current transfers for that session in an indeterminate state (there is no guarantee that the server will terminate the transfers, or that the transfers can be completed). However there will no longer be a means of inspecting the status of those uploads except by seeing the effect on the library item. \n\n Update sessions for which there is no upload activity or which are complete will automatically be deleted after a period of time.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifer of the update session to delete.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}/file": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Requests file content to be changed (either created, or updated). Depending on the source type of the file, this operation will either return an upload endpoint where the client can push the content, or the server will pull from the provided source endpoint. If a file with the same name already exists in this session, this operation will be used to update the content of the existing file. \n When importing a file directly from storage, where the source endpoint is a file or datastore URI, you will need to have the ContentLibrary.ReadStorage privilege on the library item. If the file is located in the same directory as the library storage backing folder, the server will move the file instead of copying it, thereby allowing instantaneous import of files for efficient backup and restore scenarios. In all other cases, a copy is performed rather than a move.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to be modified.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileAdd" + } + } + ], + "responses": { + "201": { + "description": "An File.Info structure containing upload links as well as server side state tracking the transfer of the file.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileInfo" + } + }, + "400": { + "description": "if the content of the library item associated with the update session has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it.\n if metadata files such as manifest and certificate file are added after the OVF descriptor file. This is applicable to update sessions with library item type OVF only. This error was added in vSphere 6.8.0.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the caller doesn't have ContentLibrary.ReadStorage privilege on the library item of the update session and source type PULL is requested for a file or datastore source endpoint (that is, not HTTP or HTTPs based endpoint).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Lists all files in the library item associated with the update session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "The list of the files in the library item associated with the update session. This list may be empty if the caller has removed all the files as part of this session (in which case completing the update session will result in an empty library item).", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileInfo" + } + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}/file/{file_name}": { + "get": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Retrieves information about a specific file in the snapshot of the library item at the time when the update session was created.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "file_name", + "description": "Name of the file." + } + ], + "responses": { + "200": { + "description": "Information about the file.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileInfo" + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the file doesn't exist in the library item associated with the update session.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Requests a file to be removed. The file will only be effectively removed when the update session is completed.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "file_name", + "description": "Name of the file to be removed." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the file doesn't exist in the library item associated with the update session.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}/file?action=validate": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Validates the files in the update session with the referenced identifier and ensures all necessary files are received. In the case where a file is missing, this operation will return its name in the File.ValidationResult.missing-files set. The user can add the missing files and try re-validating. For other type of errors, File.ValidationResult.invalid-files will contain the list of invalid files.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to validate.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "A validation result containing missing files or invalid files and the reason why they are invalid.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileValidationResult" + } + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state, or if some of the files that will be uploaded by the client aren't received correctly.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}?action=cancel": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Cancels the update session and sets its state to CANCELED. This operation will free up any temporary resources currently associated with the session. \n This operation is not allowed if the session has been already completed. \n\n Cancelling an update session will cancel any in progress transfers (either uploaded by the client or pulled by the server). Any content that has been already received will be scheduled for deletion.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session that should be canceled.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}?action=complete": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Completes the update session. This indicates that the client has finished making all the changes required to the underlying library item. If the client is pushing the content to the server, the library item will be updated once this call returns. If the server is pulling the content, the call may return before the changes become visible. In that case, the client can track the session to know when the server is done. \n This operation requires the session to be in the ACTIVE state. \n\n Depending on the type of the library item associated with this session, a type adapter may be invoked to verify the validity of the files uploaded. The user can explicitly validate the session before completing the session by using the File.validate operation. \n\n Modifications are not visible to other clients unless the session is completed and all necessary files have been received.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session that should be completed.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state, or if some of the files that will be uploaded by the client aren't received correctly.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "complete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}?action=fail": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Terminates the update session with a client specified error message. \n This is useful in transmitting client side failures (for example, not being able to access a file) to the server side.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to fail.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionFail" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "fail", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/update-session/{update_session_id}?action=keep-alive": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Keeps an update session alive. \n If there is no activity for an update session after a period of time, the update session will expire, then be deleted. The update session expiration timeout is configurable in the Content Library Service system configuration. The default is five minutes. Invoking this operation enables a client to specifically extend the lifetime of the update session.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session whose lifetime should be extended.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionKeepAlive" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "keep_alive", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}": { + "get": { + "tags": [ + "library/item" + ], + "summary": "Returns the ItemModel with the given identifier.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to return.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "The ItemModel instance with the given libraryItemId.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemModel" + } + }, + "404": { + "description": "if no item with the given libraryItemId exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "library/item" + ], + "summary": "Updates the specified properties of a library item. \n This is an incremental update to the library item. Fields that are unset in the update specification are left unchanged. \n\n This operation cannot update a library item that is a member of a subscribed library. Those items must be updated in the source published library and synchronized to the subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.UpdateLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to update.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is already a library item with same name in the library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "library/item" + ], + "summary": "Deletes a library item. \n This operation will immediately remove the item from the library that owns it. The content of the item will be asynchronously removed from the storage backings. The content deletion can be tracked with a task. In the event that the task fails, an administrator may need to manually remove the files from the storage backing. \n\n This operation cannot be used to delete a library item that is a member of a subscribed library. Removing an item from a subscribed library requires deleting the item from the original published local library and syncing the subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.DeleteLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to delete.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the library item contains a virtual machine template and a virtual machine is checked out of the library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the library item with the specified libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}/file": { + "get": { + "tags": [ + "library/item/file" + ], + "summary": "Lists all of the files that are stored within a given library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose files should be listed.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "The list of all of the files that are stored within the given library item.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemFileInfo" + } + } + }, + "404": { + "description": "if libraryItemId refers to a library item that does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}/file?name": { + "get": { + "tags": [ + "library/item/file" + ], + "summary": "Retrieves the information for a single file in a library item by its name.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose file information should be returned.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "query", + "name": "name", + "description": "Name of the file in the library item whose information should be returned." + } + ], + "responses": { + "200": { + "description": "The File.Info object with information on the specified file.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemFileInfo" + } + }, + "404": { + "description": "if libraryItemId refers to a library item that does not exist.\n if name refers to a file that does not exist in the library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}/storage": { + "get": { + "tags": [ + "library/item/storage" + ], + "summary": "Lists all storage items for a given library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.ReadStorage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose storage information should be listed.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "The list of all storage items for a given library item.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemStorageInfo" + } + } + }, + "404": { + "description": "if the specified library item does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}/storage?file_name": { + "get": { + "tags": [ + "library/item/storage" + ], + "summary": "Retrieves the storage information for a specific file in a library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.ReadStorage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose storage information should be retrieved.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "query", + "name": "file_name", + "description": "Name of the file for which the storage information should be listed." + } + ], + "responses": { + "200": { + "description": "The list of all the storage items for the given file within the given library item.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemStorageInfo" + } + } + }, + "404": { + "description": "if the specified library item does not exist.\n if the specified file does not exist in the given library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item_id}?action=publish": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Publishes the library item to specified subscriptions of the library. If no subscriptions are specified, then publishes the library item to all subscriptions of the library.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.PublishLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Library item identifier.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentLibraryItemPublish" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the library item specified by libraryItemId does not belong to a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "publish", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item}/changes": { + "get": { + "tags": [ + "library/item/changes" + ], + "summary": "Returns commonly used information about the content changes made to a library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item", + "description": "Library item identifier.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the library item changes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemChangesSummary" + } + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{library_item}/changes/{version}": { + "get": { + "tags": [ + "library/item/changes" + ], + "summary": "Returns information about a library item change.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item", + "description": "Library item identifer.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Library item version.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "200": { + "description": "Information about the specified library item change.", + "schema": { + "$ref": "#/definitions/ContentLibraryItemChangesInfo" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item/{source_library_item_id}?action=copy": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Copies a library item. \n Copying a library item allows a duplicate to be made within the same or different library. The copy occurs by first creating a new library item, whose identifier is returned. The content of the library item is then copied asynchronously. This copy can be tracked as a task. \n\n If the copy fails, Content Library Service will roll back the copy by deleting any content that was already copied, and removing the new library item. A failure during rollback may require manual cleanup by an administrator. \n\n A library item cannot be copied into a subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter sourceLibraryItemId requires System.Read. \n - The resource content.Library referenced by the attribute ItemModel.library-id requires ContentLibrary.AddLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "source_library_item_id", + "description": "Identifier of the existing library item from which the content will be copied.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemCopy" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated on the client for each copy request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent copy.\nIf not specified copy is not idempotent." + } + ], + "responses": { + "200": { + "description": "The identifier of the new library item into which the content is being copied.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the library item with sourceLibraryItemId does not exist, or if the library referenced by the ItemModel.library-id property of destinationCreateSpec does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the content of the source library item specified by sourceLibraryItemId, or the content of the target library specified by the library ID (see ItemModel.library-id) property of destinationCreateSpec has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the copy operation failed because the source or destination library item is not accessible.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + } + }, + "operationId": "copy", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item?action=find": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Returns identifiers of all the visible (as determined by authorization policy) library items matching the requested Item.FindSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.Library referenced by the attribute Item.FindSpec.library-id requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryItemFind" + } + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all the visible library items matching the given spec.\nThe result will contain identifiers for the resource type: content.library.Item.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "400": { + "description": "if no properties are specified in the spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/item?library_id": { + "get": { + "tags": [ + "library/item" + ], + "summary": "Returns the identifiers of all items in the given library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "query", + "name": "library_id", + "description": "Identifier of the library whose items should be returned.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The list of identifiers of the items in the library specified by libraryId.\nThe result will contain identifiers for the resource type: content.library.Item.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/subscribed-item/{library_item_id}?action=evict": { + "post": { + "tags": [ + "library/subscribed_item" + ], + "summary": "Evicts the cached content of a library item in a subscribed library. \n This operation allows the cached content of a library item to be removed to free up storage capacity. This operation will only work when a library item is synchronized on-demand. When a library is not synchronized on-demand, it always attempts to keep its cache up-to-date with the published source. Evicting the library item will set ItemModel.cached to false.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.EvictLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose content should be evicted.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the content of the library item specified by libraryItemId has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it. \n For instance, this {@term error) is reported on evicting a library item in an on-demand subscribed library that was restored from backup, and the library item was deleted after backup, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library item is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "evict", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/subscribed-item/{library_item_id}?action=sync": { + "post": { + "tags": [ + "library/subscribed_item" + ], + "summary": "Forces the synchronization of an individual library item in a subscribed library. \n Synchronizing an individual item will update that item's metadata from the remote source. If the source library item on the remote library has been deleted, this operation will delete the library item from the subscribed library as well. \n\n The default behavior of the synchronization is determined by the SubscriptionInfo of the library which owns the library item. \n\n - If SubscriptionInfo.on-demand is true, then the file content is not synchronized by default. In this case, only the library item metadata is synchronized. The file content may still be forcefully synchronized by passing true for the forceSyncContent parameter.\n - If SubscriptionInfo.on-demand is false, then this call will always synchronize the file content. The forceSyncContent parameter is ignored when the subscription is not on-demand.\n When the file content has been synchronized, the ItemModel.cached field will be true. \n This operation will return immediately and create an asynchronous task to perform the synchronization.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.SyncLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to synchronize.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentLibrarySubscribedItemSync" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the content of the library item specified by libraryItemId has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it. \n For instance, this {@term error) is reported on synchronizing a library item in a subscribed library that was restored from backup, and the library item was deleted after backup, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library item is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "sync", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/{library_id}": { + "get": { + "tags": [ + "library" + ], + "summary": "Returns a given LibraryModel.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance with the specified libraryId.", + "schema": { + "$ref": "#/definitions/ContentLibraryModel" + } + }, + "404": { + "description": "if the specified library does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "library" + ], + "summary": "Updates the properties of a library. \n This is an incremental update to the library. Any field in the LibraryModel structure that is unset will not be modified. \n\n This operation will only update the common properties for all library types. This will not, for example, update the LibraryModel.publish-info of a local library, nor the LibraryModel.subscription-info of a subscribed library. Specific properties are updated in LocalLibrary.update and SubscribedLibrary.update.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the updateSpec is not valid.\n if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/{library}/subscriptions": { + "post": { + "tags": [ + "library/subscriptions" + ], + "summary": "Creates a subscription of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.AddSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibrarySubscriptionsCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified, creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Subscription identifier.\nThe result will be an identifier for the resource type: content.library.Subscriptions.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "If the vCenter instance specified by subscribedLibrary#vcenter cannot be contacted or found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscribed library specified by subscribedLibrary#subscribedLibrary does not exist at the vCenter instance specified by subscribedLibrary#vcenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "library/subscriptions" + ], + "summary": "Lists the subscriptions of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about subscriptions of the published library.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibrarySubscriptionsSummary" + } + } + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the library specified by library does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library/{library}/subscriptions/{subscription}": { + "get": { + "tags": [ + "library/subscriptions" + ], + "summary": "Returns information about the specified subscription of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subscription", + "description": "Identifier of the subscription.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + } + ], + "responses": { + "200": { + "description": "Information about the subscription.", + "schema": { + "$ref": "#/definitions/ContentLibrarySubscriptionsInfo" + } + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If the library specified by library does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "library/subscriptions" + ], + "summary": "Updates the specified subscription of the published library. \n This is an incremental update to the subscription. Except for the Subscriptions.UpdateSpecPlacement structure, fields that are unset in the update specification will be left unchanged. If spec#subscribedLibraryPlacement is specified, all fields of the current subscribed library placement will be replaced by this placement.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.UpdateSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subscription", + "description": "subscription identifier.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibrarySubscriptionsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the subscribed library cannot be contacted or found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscription specified by subscription does not exist for the library specified by library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "library/subscriptions" + ], + "summary": "Deletes the specified subscription of the published library. The subscribed library associated with the subscription will not be deleted.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.DeleteSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subscription", + "description": "Subscription identifier.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscription specified by subscription does not exist for the library specified by library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/library?action=find": { + "post": { + "tags": [ + "library" + ], + "summary": "Returns a list of all the visible (as determined by authorization policy) libraries matching the requested Library.FindSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLibraryFind" + } + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all the visible libraries matching the given spec.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "400": { + "description": "if no properties are specified in the spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/local-library": { + "post": { + "tags": [ + "local_library" + ], + "summary": "Creates a new local library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.CreateLocalLibrary. \n - The resource Datastore referenced by the attribute StorageBacking.datastore-id requires Datastore.AllocateSpace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLocalLibraryCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the newly created LibraryModel.\nThe result will be an identifier for the resource type: content.Library.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if using multiple storage backings.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "local_library" + ], + "summary": "Returns the identifiers of all local libraries in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers of all local libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/local-library/{library_id}": { + "get": { + "tags": [ + "local_library" + ], + "summary": "Returns a given local library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance associated with libraryId.", + "schema": { + "$ref": "#/definitions/ContentLibraryModel" + } + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library specified by libraryId is not a local library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidElementType" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "local_library" + ], + "summary": "Updates the properties of a local library. \n This is an incremental update to the local library. Fields that are unset in the update specification will be left unchanged.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateLocalLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLocalLibraryUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the updateSpec is not valid.\n if the PublishInfo.current-password in the updateSpec does not match the existing password of the published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the LibraryModel.version of updateSpec is unset and the library is being concurrently updated by another user.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "409": { + "description": "if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsConcurrentChange" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "local_library" + ], + "summary": "Deletes the specified local library. \n Deleting a local library will remove the entry immediately and begin an asynchronous task to remove all cached content for the library. If the asynchronous task fails, file content may remain on the storage backing. This content will require manual removal.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.DeleteLocalLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to delete.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the library contains a library item that cannot be deleted in its current state. For example, the library item contains a virtual machine template and a virtual machine is checked out of the library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/local-library/{library_id}?action=publish": { + "post": { + "tags": [ + "local_library" + ], + "summary": "Publishes the library to specified subscriptions. If no subscriptions are specified, then publishes the library to all its subscriptions.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.PublishLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentLocalLibraryPublish" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the library specified by libraryId is not a published library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "publish", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/security-policies": { + "get": { + "tags": [ + "security_policies" + ], + "summary": "Returns the list of security policies.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of security policies.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentSecurityPoliciesInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/subscribed-library": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Creates a new subscribed library. \n Once created, the subscribed library will be empty. If the LibraryModel.subscription-info property is set, the Content Library Service will attempt to synchronize to the remote source. This is an asynchronous operation so the content of the published library may not immediately appear.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.CreateSubscribedLibrary. \n - The resource Datastore referenced by the attribute StorageBacking.datastore-id requires Datastore.AllocateSpace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentSubscribedLibraryCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "Unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the newly created subscribed library.\nThe result will be an identifier for the resource type: content.Library.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if using multiple storage backings.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if subscribing to a published library which cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "subscribed_library" + ], + "summary": "Returns the identifiers of all subscribed libraries in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers of all subscribed libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/subscribed-library/{library_id}": { + "get": { + "tags": [ + "subscribed_library" + ], + "summary": "Returns a given subscribed library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance that corresponds to libraryId.", + "schema": { + "$ref": "#/definitions/ContentLibraryModel" + } + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library associated with libraryId is not a subscribed library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidElementType" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "subscribed_library" + ], + "summary": "Updates the properties of a subscribed library. \n This is an incremental update to the subscribed library. Fields that are unset in the update specification will be left unchanged.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentSubscribedLibraryUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the updateSpec is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the LibraryModel.version of updateSpec is unset and the library is being concurrently updated by another user.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "409": { + "description": "if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsConcurrentChange" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "subscribed_library" + ], + "summary": "Deletes the specified subscribed library. \n Deleting a subscribed library will remove the entry immediately and begin an asynchronous task to remove all cached content for the library. If the asynchronous task fails, file content may remain on the storage backing. This content will require manual removal.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.DeleteSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to delete.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the library referenced by libraryId is not a subscribed library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidElementType" + } + }, + "404": { + "description": "if the library referenced by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/subscribed-library/{library_id}?action=evict": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Evicts the cached content of an on-demand subscribed library. \n This operation allows the cached content of a subscribed library to be removed to free up storage capacity. This operation will only work when a subscribed library is synchronized on-demand.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.EvictSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library whose content should be evicted.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library specified by libraryId does not synchronize on-demand, or if the content of the library specified by libraryId has been deleted from the storage backings (see LibraryModel.storage-backings) associated with it. \n For instance, this {@term error) is reported on evicting an on-demand subscribed library that was restored from backup, and the library was deleted after the backup was taken, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "evict", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/subscribed-library/{library_id}?action=sync": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Forces the synchronization of the subscribed library. \n Synchronizing a subscribed library forcefully with this operation will perform the same synchronization behavior as would run periodically for the library. The SubscriptionInfo.on-demand setting is respected. Calling this operation on a library that is already in the process of synchronizing will have no effect.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.SyncLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to synchronize.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if some parameter in the subscribed library subscription info is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the published library cannot be contacted or found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + } + }, + "operationId": "sync", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/subscribed-library?action=probe": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Probes remote library subscription information, including URL, SSL certificate and password. The resulting SubscribedLibrary.ProbeResult structure describes whether or not the subscription configuration is successful.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.ProbeSubscription.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentSubscribedLibraryProbe" + } + } + ], + "responses": { + "200": { + "description": "The subscription info probe result.", + "schema": { + "$ref": "#/definitions/ContentSubscribedLibraryProbeResult" + } + } + }, + "operationId": "probe", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/trusted-certificates": { + "post": { + "tags": [ + "trusted_certificates" + ], + "summary": "Adds a certificate to content library trust store. \n This API has to be invoked separately for each certificate block - (BEGIN_CERTIFICATE ... END_CERTIFICATE)\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.AddCertToTrustStore.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/ContentTrustedCertificatesCreate" + } + } + ], + "responses": { + "201": { + "description": "ID of the certificates added. The certificate ID will be unique for each certificate. If the certificate already exists, existing ID is returned.\nThe result will be an identifier for the resource type: content.TrustedCertificate.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "trusted_certificates" + ], + "summary": "Returns TrustedCertificates.ListResult structure. All content library's trusted certificates.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "TrustedCertificates.ListResult containing trusted certificates.", + "schema": { + "$ref": "#/definitions/ContentTrustedCertificatesListResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/trusted-certificates/{certificate}": { + "get": { + "tags": [ + "trusted_certificates" + ], + "summary": "Retrieves a trusted certificate for a given certificate id.\nif you do not have all of the privileges described as follows: \n - The resource content.TrustedCertificate referenced by the parameter certificate requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "certificate", + "description": "id of the trusted certificate.\nThe parameter must be an identifier for the resource type: content.TrustedCertificate." + } + ], + "responses": { + "200": { + "description": "TrustedCertificates.Info instance that corresponds to the certificate.", + "schema": { + "$ref": "#/definitions/ContentTrustedCertificatesInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "if a trusted certificate does not exist for given id.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_certificates" + ], + "summary": "Deletes the trusted certificate from content library's trust store for a given identifier.\nif you do not have all of the privileges described as follows: \n - The resource content.TrustedCertificate referenced by the parameter certificate requires ContentLibrary.DeleteCertFromTrustStore.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "certificate", + "description": "id of the trusted certificate.\nThe parameter must be an identifier for the resource type: content.TrustedCertificate." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the trusted certificate specified by certificate could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/content/type": { + "get": { + "tags": [ + "type" + ], + "summary": "Returns a list of Type.Info instances which describe the type support plugins in a Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.TypeIntrospection.", + "parameters": [], + "responses": { + "200": { + "description": "The list of Type.Info instances which describe the type support plugins in a Content Library.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentTypeInfo" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/com/vmware/content/configuration": { + "patch": { + "tags": [ + "configuration" + ], + "summary": "Updates the configuration. The update is incremental. Any field in the ConfigurationModel structure that is unset will not be modified. Note that this update operation doesn't guarantee an atomic change of all the properties. In the case of a system crash or failure, some of the properties could be left unchanged while others may be updated.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.UpdateConfiguration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.configuration_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if one of the configuration properties is not within the proper range.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1configuration/patch" + } + } + }, + "/rest/com/vmware/content/configuration?~action=get": { + "post": { + "tags": [ + "configuration" + ], + "summary": "Retrieves the current configuration values.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.GetConfiguration.", + "parameters": [], + "responses": { + "200": { + "description": "The ConfigurationModel instance representing the configuration of the Content Library Service.", + "schema": { + "$ref": "#/definitions/content.configuration_resp" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1configuration/get" + } + } + }, + "/rest/com/vmware/content/library": { + "get": { + "tags": [ + "library" + ], + "summary": "Returns the identifiers of all libraries of any type in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of all identifiers of all libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.library.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library/get" + } + } + }, + "/rest/com/vmware/content/library/id:{library_id}": { + "get": { + "tags": [ + "library" + ], + "summary": "Returns a given LibraryModel.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance with the specified libraryId.", + "schema": { + "$ref": "#/definitions/content.library_resp" + } + }, + "404": { + "description": "if the specified library does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library_id}/get" + } + }, + "patch": { + "tags": [ + "library" + ], + "summary": "Updates the properties of a library. \n This is an incremental update to the library. Any field in the LibraryModel structure that is unset will not be modified. \n\n This operation will only update the common properties for all library types. This will not, for example, update the LibraryModel.publish-info of a local library, nor the LibraryModel.subscription-info of a subscribed library. Specific properties are updated in LocalLibrary.update and SubscribedLibrary.update.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the updateSpec is not valid.\n if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library_id}/patch" + } + } + }, + "/rest/com/vmware/content/library/item": { + "get": { + "tags": [ + "library/item" + ], + "summary": "Returns the identifiers of all items in the given library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "library_id", + "description": "Identifier of the library whose items should be returned.\nThe parameter must be an identifier for the resource type: content.Library.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of identifiers of the items in the library specified by libraryId.\nThe result will contain identifiers for the resource type: content.library.Item.", + "schema": { + "$ref": "#/definitions/content.library.item.list_resp" + } + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item?library_id/get" + } + }, + "post": { + "tags": [ + "library/item" + ], + "summary": "Creates a new library item. \n A new library item is created without any content. After creation, content can be added through the UpdateSession and File services. \n\n A library item cannot be created in a subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the attribute ItemModel.library-id requires ContentLibrary.AddLibraryItem.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the new library item.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "$ref": "#/definitions/content.library.item.create_resp" + } + }, + "404": { + "description": "if the ItemModel.library-id property of createSpec refers to a library that does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if there is already a library item with same name in the library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item/post" + } + } + }, + "/rest/com/vmware/content/library/item/download-session": { + "get": { + "tags": [ + "library/item/download_session" + ], + "summary": "Lists the identifiers of the download sessions created by the calling user. Optionally may filter by library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.item.DownloadSession referenced by the parameter libraryItemId requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Library item identifier on which to filter results.\nIf not specified all download session identifiers are listed.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all download sessions created by the calling user.\nThe result will contain identifiers for the resource type: content.library.item.DownloadSession.", + "schema": { + "$ref": "#/definitions/content.library.item.download_session.list_resp" + } + }, + "404": { + "description": "if a library item identifier is given for an item which does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session/get" + } + }, + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Creates a new download session.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the attribute DownloadSessionModel.library-item-id requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.download_session_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the new download session being created.\nThe result will be an identifier for the resource type: content.library.item.DownloadSession.", + "schema": { + "$ref": "#/definitions/content.library.item.download_session.create_resp" + } + }, + "400": { + "description": "if the session specification is not valid.\n format.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the library item targeted by the download does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session/post" + } + } + }, + "/rest/com/vmware/content/library/item/download-session/id:{download_session_id}": { + "get": { + "tags": [ + "library/item/download_session" + ], + "summary": "Gets the download session with the specified identifier, including the most up-to-date status information for the session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to retrieve.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "The DownloadSessionModel instance with the given downloadSessionId.", + "schema": { + "$ref": "#/definitions/content.library.item.download_session_resp" + } + }, + "404": { + "description": "if no download session with the given downloadSessionId exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}/get" + } + }, + "delete": { + "tags": [ + "library/item/download_session" + ], + "summary": "Deletes a download session. This removes the session and all information associated with it. \n Removing a download session leaves any current transfers for that session in an indeterminate state (there is no guarantee that the transfers will be able to complete). However there will no longer be a means of inspecting the status of those downloads except by seeing the effect on the library item. \n\n Download sessions for which there is no download activity or which are complete will automatically be expired and then deleted after a period of time.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to be deleted.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}/delete" + } + } + }, + "/rest/com/vmware/content/library/item/download-session/id:{download_session_id}?~action=cancel": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Cancels the download session. This operation will abort any ongoing transfers and invalidate transfer urls that the client may be downloading from.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifer of the download session that should be canceled.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if no download session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}?action=cancel/post" + } + } + }, + "/rest/com/vmware/content/library/item/download-session/id:{download_session_id}?~action=fail": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Terminates the download session with a client specified error message. \n This is useful in transmitting client side failures (for example, not being able to download a file) to the server side.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session to fail.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.download_session_fail" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "fail", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}?action=fail/post" + } + } + }, + "/rest/com/vmware/content/library/item/download-session/id:{download_session_id}?~action=keep-alive": { + "post": { + "tags": [ + "library/item/download_session" + ], + "summary": "Keeps a download session alive. This operation is allowed only if the session is in the ACTIVE state. \n If there is no activity for a download session for a certain period of time, the download session will expire. The download session expiration timeout is configurable in the Content Library Service system configuration. The default is five minutes. Invoking this operation enables a client to specifically extend the lifetime of an active download session.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session whose lifetime should be extended.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/content.library.item.download_session_keep_alive" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if no download session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the download session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "keep_alive", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}?action=keep-alive/post" + } + } + }, + "/rest/com/vmware/content/library/item/downloadsession/file": { + "get": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Lists the information of all the files in the library item associated with the download session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of File.Info instances.", + "schema": { + "$ref": "#/definitions/content.library.item.downloadsession.file.list_resp" + } + }, + "404": { + "description": "if the download session associated with downloadSessionId doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}~1file/get" + } + } + }, + "/rest/com/vmware/content/library/item/downloadsession/file/id:{download_session_id}?~action=get": { + "post": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Retrieves file download information for a specific file.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.downloadsession.file_get" + } + } + ], + "responses": { + "200": { + "description": "The File.Info instance containing the status of the file and its download link if available.", + "schema": { + "$ref": "#/definitions/content.library.item.downloadsession.file_resp" + } + }, + "404": { + "description": "if the download session associated with downloadSessionId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if there is no file with the specified fileName.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}~1file?file_name/get" + } + } + }, + "/rest/com/vmware/content/library/item/downloadsession/file/id:{download_session_id}?~action=prepare": { + "post": { + "tags": [ + "library/item/downloadsession/file" + ], + "summary": "Requests a file to be prepared for download.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "download_session_id", + "description": "Identifier of the download session.\nThe parameter must be an identifier for the resource type: content.library.item.DownloadSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.downloadsession.file_prepare" + } + } + ], + "responses": { + "200": { + "description": "File information containing the status of the request and the download link to the file.", + "schema": { + "$ref": "#/definitions/content.library.item.downloadsession.file.prepare_resp" + } + }, + "404": { + "description": "if the download session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if there is no file with the specified fileName.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "403": { + "description": "if the the download session wasn't created with the ContentLibrary.ReadStorage privilege and the caller requested a DIRECT endpoint type.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "prepare", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1download-session~1{download_session_id}~1file?action=prepare/post" + } + } + }, + "/rest/com/vmware/content/library/item/file": { + "get": { + "tags": [ + "library/item/file" + ], + "summary": "Lists all of the files that are stored within a given library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Identifier of the library item whose files should be listed.\nThe parameter must be an identifier for the resource type: content.library.Item.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of all of the files that are stored within the given library item.", + "schema": { + "$ref": "#/definitions/content.library.item.file.list_resp" + } + }, + "404": { + "description": "if libraryItemId refers to a library item that does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}~1file/get" + } + } + }, + "/rest/com/vmware/content/library/item/file/id:{library_item_id}?~action=get": { + "post": { + "tags": [ + "library/item/file" + ], + "summary": "Retrieves the information for a single file in a library item by its name.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose file information should be returned.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.file_get" + } + } + ], + "responses": { + "200": { + "description": "The File.Info object with information on the specified file.", + "schema": { + "$ref": "#/definitions/content.library.item.file_resp" + } + }, + "404": { + "description": "if libraryItemId refers to a library item that does not exist.\n if name refers to a file that does not exist in the library item.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}~1file?name/get" + } + } + }, + "/rest/com/vmware/content/library/item/id:{library_item_id}": { + "get": { + "tags": [ + "library/item" + ], + "summary": "Returns the ItemModel with the given identifier.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to return.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "The ItemModel instance with the given libraryItemId.", + "schema": { + "$ref": "#/definitions/content.library.item_resp" + } + }, + "404": { + "description": "if no item with the given libraryItemId exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}/get" + } + }, + "patch": { + "tags": [ + "library/item" + ], + "summary": "Updates the specified properties of a library item. \n This is an incremental update to the library item. Fields that are unset in the update specification are left unchanged. \n\n This operation cannot update a library item that is a member of a subscribed library. Those items must be updated in the source published library and synchronized to the subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.UpdateLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to update.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if there is already a library item with same name in the library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}/patch" + } + }, + "delete": { + "tags": [ + "library/item" + ], + "summary": "Deletes a library item. \n This operation will immediately remove the item from the library that owns it. The content of the item will be asynchronously removed from the storage backings. The content deletion can be tracked with a task. In the event that the task fails, an administrator may need to manually remove the files from the storage backing. \n\n This operation cannot be used to delete a library item that is a member of a subscribed library. Removing an item from a subscribed library requires deleting the item from the original published local library and syncing the subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.DeleteLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to delete.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the library item contains a virtual machine template and a virtual machine is checked out of the library item.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "if the library item with the specified libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}/delete" + } + } + }, + "/rest/com/vmware/content/library/item/id:{library_item_id}?~action=publish": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Publishes the library item to specified subscriptions of the library. If no subscriptions are specified, then publishes the library item to all subscriptions of the library.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.PublishLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Library item identifier.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item_publish" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the library item specified by libraryItemId does not belong to a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "publish", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}?action=publish/post" + } + } + }, + "/rest/com/vmware/content/library/item/id:{source_library_item_id}?~action=copy": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Copies a library item. \n Copying a library item allows a duplicate to be made within the same or different library. The copy occurs by first creating a new library item, whose identifier is returned. The content of the library item is then copied asynchronously. This copy can be tracked as a task. \n\n If the copy fails, Content Library Service will roll back the copy by deleting any content that was already copied, and removing the new library item. A failure during rollback may require manual cleanup by an administrator. \n\n A library item cannot be copied into a subscribed library.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter sourceLibraryItemId requires System.Read. \n - The resource content.Library referenced by the attribute ItemModel.library-id requires ContentLibrary.AddLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "source_library_item_id", + "description": "Identifier of the existing library item from which the content will be copied.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item_copy" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the new library item into which the content is being copied.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "$ref": "#/definitions/content.library.item.copy_resp" + } + }, + "404": { + "description": "if the library item with sourceLibraryItemId does not exist, or if the library referenced by the ItemModel.library-id property of destinationCreateSpec does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the content of the source library item specified by sourceLibraryItemId, or the content of the target library specified by the library ID (see ItemModel.library-id) property of destinationCreateSpec has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "copy", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{source_library_item_id}?action=copy/post" + } + } + }, + "/rest/com/vmware/content/library/item/storage": { + "get": { + "tags": [ + "library/item/storage" + ], + "summary": "Lists all storage items for a given library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.ReadStorage.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Identifier of the library item whose storage information should be listed.\nThe parameter must be an identifier for the resource type: content.library.Item.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of all storage items for a given library item.", + "schema": { + "$ref": "#/definitions/content.library.item.storage.list_resp" + } + }, + "404": { + "description": "if the specified library item does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}~1storage/get" + } + } + }, + "/rest/com/vmware/content/library/item/storage/id:{library_item_id}?~action=get": { + "post": { + "tags": [ + "library/item/storage" + ], + "summary": "Retrieves the storage information for a specific file in a library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.ReadStorage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose storage information should be retrieved.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.storage_get" + } + } + ], + "responses": { + "200": { + "description": "The list of all the storage items for the given file within the given library item.", + "schema": { + "$ref": "#/definitions/content.library.item.storage_resp" + } + }, + "404": { + "description": "if the specified library item does not exist.\n if the specified file does not exist in the given library item.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item_id}~1storage?file_name/get" + } + } + }, + "/rest/com/vmware/content/library/item/update-session": { + "get": { + "tags": [ + "library/item/update_session" + ], + "summary": "Lists the identifiers of the update session created by the calling user. Optionally may filter by library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.item.UpdateSession referenced by the parameter libraryItemId requires ContentLibrary.UpdateSession.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "library_item_id", + "description": "Optional library item identifier on which to filter results.\nIf not specified the results are not filtered.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all update sessions created by the calling user.\nThe result will contain identifiers for the resource type: content.library.item.UpdateSession.", + "schema": { + "$ref": "#/definitions/content.library.item.update_session.list_resp" + } + }, + "404": { + "description": "if a library item identifier is given for an item which does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session/get" + } + }, + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Creates a new update session. An update session is used to make modifications to a library item. Modifications are not visible to other clients unless the session is completed and all necessary files have been received. \n Content Library Service allows only one single update session to be active for a specific library item.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the attribute UpdateSessionModel.library-item-id requires ContentLibrary.UpdateSession.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.update_session_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the new update session being created.\nThe result will be an identifier for the resource type: content.library.item.UpdateSession.", + "schema": { + "$ref": "#/definitions/content.library.item.update_session.create_resp" + } + }, + "400": { + "description": "if there is another update session on the same library item.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the item targeted for update does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session/post" + } + } + }, + "/rest/com/vmware/content/library/item/update-session/id:{update_session_id}": { + "get": { + "tags": [ + "library/item/update_session" + ], + "summary": "Gets the update session with the specified identifier, including the most up-to-date status information for the session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to retrieve.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "The UpdateSessionModel instance with the given updateSessionId.", + "schema": { + "$ref": "#/definitions/content.library.item.update_session_resp" + } + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}/get" + } + }, + "patch": { + "tags": [ + "library/item/update_session" + ], + "summary": "Updates the properties of an update session. \n This is an incremental update to the update session. Any field in the UpdateSessionModel structure that is unset will not be modified. \n\n This operation will only update the property UpdateSessionModel.warning-behavior of the update session. This will not, for example, update the UpdateSessionModel.library-item-id or UpdateSessionModel.state of an update session. \n\n This operation requires the session to be in the ACTIVE state.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifer of the update session that should be updated.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.update_session_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session specification is not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}/patch" + } + }, + "delete": { + "tags": [ + "library/item/update_session" + ], + "summary": "Deletes an update session. This removes the session and all information associated with it. \n Removing an update session leaves any current transfers for that session in an indeterminate state (there is no guarantee that the server will terminate the transfers, or that the transfers can be completed). However there will no longer be a means of inspecting the status of those uploads except by seeing the effect on the library item. \n\n Update sessions for which there is no upload activity or which are complete will automatically be deleted after a period of time.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifer of the update session to delete.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}/delete" + } + } + }, + "/rest/com/vmware/content/library/item/update-session/id:{update_session_id}?~action=cancel": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Cancels the update session and sets its state to CANCELED. This operation will free up any temporary resources currently associated with the session. \n This operation is not allowed if the session has been already completed. \n\n Cancelling an update session will cancel any in progress transfers (either uploaded by the client or pulled by the server). Any content that has been already received will be scheduled for deletion.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session that should be canceled.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}?action=cancel/post" + } + } + }, + "/rest/com/vmware/content/library/item/update-session/id:{update_session_id}?~action=complete": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Completes the update session. This indicates that the client has finished making all the changes required to the underlying library item. If the client is pushing the content to the server, the library item will be updated once this call returns. If the server is pulling the content, the call may return before the changes become visible. In that case, the client can track the session to know when the server is done. \n This operation requires the session to be in the ACTIVE state. \n\n Depending on the type of the library item associated with this session, a type adapter may be invoked to verify the validity of the files uploaded. The user can explicitly validate the session before completing the session by using the File.validate operation. \n\n Modifications are not visible to other clients unless the session is completed and all necessary files have been received.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session that should be completed.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state, or if some of the files that will be uploaded by the client aren't received correctly.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "complete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}?action=complete/post" + } + } + }, + "/rest/com/vmware/content/library/item/update-session/id:{update_session_id}?~action=fail": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Terminates the update session with a client specified error message. \n This is useful in transmitting client side failures (for example, not being able to access a file) to the server side.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to fail.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.update_session_fail" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the update session does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "fail", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}?action=fail/post" + } + } + }, + "/rest/com/vmware/content/library/item/update-session/id:{update_session_id}?~action=keep-alive": { + "post": { + "tags": [ + "library/item/update_session" + ], + "summary": "Keeps an update session alive. \n If there is no activity for an update session after a period of time, the update session will expire, then be deleted. The update session expiration timeout is configurable in the Content Library Service system configuration. The default is five minutes. Invoking this operation enables a client to specifically extend the lifetime of the update session.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session whose lifetime should be extended.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/content.library.item.update_session_keep_alive" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "keep_alive", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}?action=keep-alive/post" + } + } + }, + "/rest/com/vmware/content/library/item/updatesession/file": { + "get": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Lists all files in the library item associated with the update session.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of the files in the library item associated with the update session. This list may be empty if the caller has removed all the files as part of this session (in which case completing the update session will result in an empty library item).", + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file.list_resp" + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}~1file/get" + } + } + }, + "/rest/com/vmware/content/library/item/updatesession/file/id:{update_session_id}?~action=add": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Requests file content to be changed (either created, or updated). Depending on the source type of the file, this operation will either return an upload endpoint where the client can push the content, or the server will pull from the provided source endpoint. If a file with the same name already exists in this session, this operation will be used to update the content of the existing file. \n When importing a file directly from storage, where the source endpoint is a file or datastore URI, you will need to have the ContentLibrary.ReadStorage privilege on the library item. If the file is located in the same directory as the library storage backing folder, the server will move the file instead of copying it, thereby allowing instantaneous import of files for efficient backup and restore scenarios. In all other cases, a copy is performed rather than a move.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to be modified.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file_add" + } + } + ], + "responses": { + "200": { + "description": "An File.Info structure containing upload links as well as server side state tracking the transfer of the file.", + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file.add_resp" + } + }, + "400": { + "description": "if the content of the library item associated with the update session has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it.\n if metadata files such as manifest and certificate file are added after the OVF descriptor file. This is applicable to update sessions with library item type OVF only. This error was added in vSphere 6.8.0.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if the caller doesn't have ContentLibrary.ReadStorage privilege on the library item of the update session and source type PULL is requested for a file or datastore source endpoint (that is, not HTTP or HTTPs based endpoint).", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}~1file/post" + } + } + }, + "/rest/com/vmware/content/library/item/updatesession/file/id:{update_session_id}?~action=get": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Retrieves information about a specific file in the snapshot of the library item at the time when the update session was created.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file_get" + } + } + ], + "responses": { + "200": { + "description": "Information about the file.", + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file_resp" + } + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the file doesn't exist in the library item associated with the update session.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}~1file~1{file_name}/get" + } + } + }, + "/rest/com/vmware/content/library/item/updatesession/file/id:{update_session_id}?~action=remove": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Requests a file to be removed. The file will only be effectively removed when the update session is completed.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file_remove" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the update session doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the file doesn't exist in the library item associated with the update session.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}~1file~1{file_name}/delete" + } + } + }, + "/rest/com/vmware/content/library/item/updatesession/file/id:{update_session_id}?~action=validate": { + "post": { + "tags": [ + "library/item/updatesession/file" + ], + "summary": "Validates the files in the update session with the referenced identifier and ensures all necessary files are received. In the case where a file is missing, this operation will return its name in the File.ValidationResult.missing-files set. The user can add the missing files and try re-validating. For other type of errors, File.ValidationResult.invalid-files will contain the list of invalid files.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "update_session_id", + "description": "Identifier of the update session to validate.\nThe parameter must be an identifier for the resource type: content.library.item.UpdateSession." + } + ], + "responses": { + "200": { + "description": "A validation result containing missing files or invalid files and the reason why they are invalid.", + "schema": { + "$ref": "#/definitions/content.library.item.updatesession.file.validate_resp" + } + }, + "404": { + "description": "if no update session with the given identifier exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the update session is not in the ACTIVE state, or if some of the files that will be uploaded by the client aren't received correctly.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "validate", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1update-session~1{update_session_id}~1file?action=validate/post" + } + } + }, + "/rest/com/vmware/content/library/item?~action=find": { + "post": { + "tags": [ + "library/item" + ], + "summary": "Returns identifiers of all the visible (as determined by authorization policy) library items matching the requested Item.FindSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.Library referenced by the attribute Item.FindSpec.library-id requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.item_find" + } + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all the visible library items matching the given spec.\nThe result will contain identifiers for the resource type: content.library.Item.", + "schema": { + "$ref": "#/definitions/content.library.item.find_resp" + } + }, + "400": { + "description": "if no properties are specified in the spec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item?action=find/post" + } + } + }, + "/rest/com/vmware/content/library/subscribed-item/id:{library_item_id}?~action=evict": { + "post": { + "tags": [ + "library/subscribed_item" + ], + "summary": "Evicts the cached content of a library item in a subscribed library. \n This operation allows the cached content of a library item to be removed to free up storage capacity. This operation will only work when a library item is synchronized on-demand. When a library is not synchronized on-demand, it always attempts to keep its cache up-to-date with the published source. Evicting the library item will set ItemModel.cached to false.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.EvictLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item whose content should be evicted.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the content of the library item specified by libraryItemId has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it. \n For instance, this {@term error) is reported on evicting a library item in an on-demand subscribed library that was restored from backup, and the library item was deleted after backup, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library item is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "evict", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1subscribed-item~1{library_item_id}?action=evict/post" + } + } + }, + "/rest/com/vmware/content/library/subscribed-item/id:{library_item_id}?~action=sync": { + "post": { + "tags": [ + "library/subscribed_item" + ], + "summary": "Forces the synchronization of an individual library item in a subscribed library. \n Synchronizing an individual item will update that item's metadata from the remote source. If the source library item on the remote library has been deleted, this operation will delete the library item from the subscribed library as well. \n\n The default behavior of the synchronization is determined by the SubscriptionInfo of the library which owns the library item. \n\n - If SubscriptionInfo.on-demand is true, then the file content is not synchronized by default. In this case, only the library item metadata is synchronized. The file content may still be forcefully synchronized by passing true for the forceSyncContent parameter.\n - If SubscriptionInfo.on-demand is false, then this call will always synchronize the file content. The forceSyncContent parameter is ignored when the subscription is not on-demand.\n When the file content has been synchronized, the ItemModel.cached field will be true. \n This operation will return immediately and create an asynchronous task to perform the synchronization.\n\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItemId requires ContentLibrary.SyncLibraryItem.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item_id", + "description": "Identifier of the library item to synchronize.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.subscribed_item_sync" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library item specified by libraryItemId could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the content of the library item specified by libraryItemId has been deleted from the storage backings (see LibraryModel#storageBackings) associated with it. \n For instance, this {@term error) is reported on synchronizing a library item in a subscribed library that was restored from backup, and the library item was deleted after backup, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library item is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "sync", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1subscribed-item~1{library_item_id}?action=sync/post" + } + } + }, + "/rest/com/vmware/content/library/subscriptions": { + "get": { + "tags": [ + "library/subscriptions" + ], + "summary": "Lists the subscriptions of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires System.Read.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library.", + "required": true + } + ], + "responses": { + "200": { + "description": "List of commonly used information about subscriptions of the published library.", + "schema": { + "$ref": "#/definitions/content.library.subscriptions.list_resp" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by library does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library}~1subscriptions/get" + } + } + }, + "/rest/com/vmware/content/library/subscriptions/id:{library}": { + "patch": { + "tags": [ + "library/subscriptions" + ], + "summary": "Updates the specified subscription of the published library. \n This is an incremental update to the subscription. Except for the Subscriptions.UpdateSpecPlacement structure, fields that are unset in the update specification will be left unchanged. If spec#subscribedLibraryPlacement is specified, all fields of the current subscribed library placement will be replaced by this placement.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.UpdateSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.subscriptions_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscription specified by subscription does not exist for the library specified by library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library}~1subscriptions~1{subscription}/patch" + } + }, + "post": { + "tags": [ + "library/subscriptions" + ], + "summary": "Creates a subscription of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.AddSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.subscriptions_create" + } + } + ], + "responses": { + "200": { + "description": "Subscription identifier.\nThe result will be an identifier for the resource type: content.library.Subscriptions.", + "schema": { + "$ref": "#/definitions/content.library.subscriptions.create_resp" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscribed library specified by subscribedLibrary#subscribedLibrary does not exist at the vCenter instance specified by subscribedLibrary#vcenter.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library}~1subscriptions/post" + } + } + }, + "/rest/com/vmware/content/library/subscriptions/id:{library}?~action=delete": { + "post": { + "tags": [ + "library/subscriptions" + ], + "summary": "Deletes the specified subscription of the published library. The subscribed library associated with the subscription will not be deleted.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires ContentLibrary.DeleteSubscription.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.subscriptions_delete" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by library does not exist.\n If the subscription specified by subscription does not exist for the library specified by library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library}~1subscriptions~1{subscription}/delete" + } + } + }, + "/rest/com/vmware/content/library/subscriptions/id:{library}?~action=get": { + "post": { + "tags": [ + "library/subscriptions" + ], + "summary": "Returns information about the specified subscription of the published library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter library requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library.subscriptions_get" + } + } + ], + "responses": { + "200": { + "description": "Information about the subscription.", + "schema": { + "$ref": "#/definitions/content.library.subscriptions_resp" + } + }, + "400": { + "description": "If the library specified by library is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by library does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1{library}~1subscriptions~1{subscription}/get" + } + } + }, + "/rest/com/vmware/content/library?~action=find": { + "post": { + "tags": [ + "library" + ], + "summary": "Returns a list of all the visible (as determined by authorization policy) libraries matching the requested Library.FindSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.library_find" + } + } + ], + "responses": { + "200": { + "description": "The list of identifiers of all the visible libraries matching the given spec.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.library.find_resp" + } + }, + "400": { + "description": "if no properties are specified in the spec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library?action=find/post" + } + } + }, + "/rest/com/vmware/content/local-library": { + "get": { + "tags": [ + "local_library" + ], + "summary": "Returns the identifiers of all local libraries in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers of all local libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.local_library.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library/get" + } + }, + "post": { + "tags": [ + "local_library" + ], + "summary": "Creates a new local library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.CreateLocalLibrary. \n - The resource Datastore referenced by the attribute StorageBacking.datastore-id requires Datastore.AllocateSpace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.local_library_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly created LibraryModel.\nThe result will be an identifier for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.local_library.create_resp" + } + }, + "400": { + "description": "if using multiple storage backings.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library/post" + } + } + }, + "/rest/com/vmware/content/local-library/id:{library_id}": { + "get": { + "tags": [ + "local_library" + ], + "summary": "Returns a given local library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance associated with libraryId.", + "schema": { + "$ref": "#/definitions/content.local_library_resp" + } + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the library specified by libraryId is not a local library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_type_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library~1{library_id}/get" + } + }, + "patch": { + "tags": [ + "local_library" + ], + "summary": "Updates the properties of a local library. \n This is an incremental update to the local library. Fields that are unset in the update specification will be left unchanged.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateLocalLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.local_library_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.concurrent_change_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library~1{library_id}/patch" + } + }, + "delete": { + "tags": [ + "local_library" + ], + "summary": "Deletes the specified local library. \n Deleting a local library will remove the entry immediately and begin an asynchronous task to remove all cached content for the library. If the asynchronous task fails, file content may remain on the storage backing. This content will require manual removal.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.DeleteLocalLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the local library to delete.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the library contains a library item that cannot be deleted in its current state. For example, the library item contains a virtual machine template and a virtual machine is checked out of the library item.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library~1{library_id}/delete" + } + } + }, + "/rest/com/vmware/content/local-library/id:{library_id}?~action=publish": { + "post": { + "tags": [ + "local_library" + ], + "summary": "Publishes the library to specified subscriptions. If no subscriptions are specified, then publishes the library to all its subscriptions.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.PublishLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the published library.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/content.local_library_publish" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the library specified by libraryId is not a published library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "If the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "If the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "publish", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1local-library~1{library_id}?action=publish/post" + } + } + }, + "/rest/com/vmware/content/subscribed-library": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Creates a new subscribed library. \n Once created, the subscribed library will be empty. If the LibraryModel.subscription-info property is set, the Content Library Service will attempt to synchronize to the remote source. This is an asynchronous operation so the content of the published library may not immediately appear.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.CreateSubscribedLibrary. \n - The resource Datastore referenced by the attribute StorageBacking.datastore-id requires Datastore.AllocateSpace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.subscribed_library_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly created subscribed library.\nThe result will be an identifier for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.subscribed_library.create_resp" + } + }, + "400": { + "description": "if subscribing to a published library which cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library/post" + } + }, + "get": { + "tags": [ + "subscribed_library" + ], + "summary": "Returns the identifiers of all subscribed libraries in the Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers of all subscribed libraries in the Content Library.\nThe result will contain identifiers for the resource type: content.Library.", + "schema": { + "$ref": "#/definitions/content.subscribed_library.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library/get" + } + } + }, + "/rest/com/vmware/content/subscribed-library/id:{library_id}": { + "patch": { + "tags": [ + "subscribed_library" + ], + "summary": "Updates the properties of a subscribed library. \n This is an incremental update to the subscribed library. Fields that are unset in the update specification will be left unchanged.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.UpdateSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to update.\nThe parameter must be an identifier for the resource type: content.Library." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.subscribed_library_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the LibraryModel.version of updateSpec is not equal to the current version of the library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.concurrent_change_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library~1{library_id}/patch" + } + }, + "delete": { + "tags": [ + "subscribed_library" + ], + "summary": "Deletes the specified subscribed library. \n Deleting a subscribed library will remove the entry immediately and begin an asynchronous task to remove all cached content for the library. If the asynchronous task fails, file content may remain on the storage backing. This content will require manual removal.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.DeleteSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to delete.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the library referenced by libraryId is not a subscribed library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_type_error" + } + }, + "404": { + "description": "if the library referenced by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library~1{library_id}/delete" + } + }, + "get": { + "tags": [ + "subscribed_library" + ], + "summary": "Returns a given subscribed library.\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to return.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "The LibraryModel instance that corresponds to libraryId.", + "schema": { + "$ref": "#/definitions/content.subscribed_library_resp" + } + }, + "404": { + "description": "if the library associated with libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the library associated with libraryId is not a subscribed library.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_type_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library~1{library_id}/get" + } + } + }, + "/rest/com/vmware/content/subscribed-library/id:{library_id}?~action=evict": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Evicts the cached content of an on-demand subscribed library. \n This operation allows the cached content of a subscribed library to be removed to free up storage capacity. This operation will only work when a subscribed library is synchronized on-demand.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.EvictSubscribedLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library whose content should be evicted.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the library specified by libraryId does not synchronize on-demand, or if the content of the library specified by libraryId has been deleted from the storage backings (see LibraryModel.storage-backings) associated with it. \n For instance, this {@term error) is reported on evicting an on-demand subscribed library that was restored from backup, and the library was deleted after the backup was taken, thus resulting in its content being deleted from the associated storage backings. In this scenario, the metadata of the library is present on a restore, while its content has been deleted.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "evict", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library~1{library_id}?action=evict/post" + } + } + }, + "/rest/com/vmware/content/subscribed-library/id:{library_id}?~action=sync": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Forces the synchronization of the subscribed library. \n Synchronizing a subscribed library forcefully with this operation will perform the same synchronization behavior as would run periodically for the library. The SubscriptionInfo.on-demand setting is respected. Calling this operation on a library that is already in the process of synchronizing will have no effect.\n\nif you do not have all of the privileges described as follows: \n - The resource content.Library referenced by the parameter libraryId requires ContentLibrary.SyncLibrary.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_id", + "description": "Identifier of the subscribed library to synchronize.\nThe parameter must be an identifier for the resource type: content.Library." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library specified by libraryId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the published library cannot be contacted or found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + } + }, + "operationId": "sync", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library~1{library_id}?action=sync/post" + } + } + }, + "/rest/com/vmware/content/subscribed-library?~action=probe": { + "post": { + "tags": [ + "subscribed_library" + ], + "summary": "Probes remote library subscription information, including URL, SSL certificate and password. The resulting SubscribedLibrary.ProbeResult structure describes whether or not the subscription configuration is successful.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.ProbeSubscription.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/content.subscribed_library_probe" + } + } + ], + "responses": { + "200": { + "description": "The subscription info probe result.", + "schema": { + "$ref": "#/definitions/content.subscribed_library.probe_resp" + } + } + }, + "operationId": "probe", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1subscribed-library?action=probe/post" + } + } + }, + "/rest/com/vmware/content/type": { + "get": { + "tags": [ + "type" + ], + "summary": "Returns a list of Type.Info instances which describe the type support plugins in a Content Library.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.TypeIntrospection.", + "parameters": [], + "responses": { + "200": { + "description": "The list of Type.Info instances which describe the type support plugins in a Content Library.", + "schema": { + "$ref": "#/definitions/content.type.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1type/get" + } + } + }, + "/rest/content/library/item/{library_item}/changes": { + "get": { + "tags": [ + "library/item/changes" + ], + "summary": "Returns commonly used information about the content changes made to a library item.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item", + "description": "Library item identifier.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the library item changes.", + "schema": { + "$ref": "#/definitions/content.library.item.changes.list_resp" + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item}~1changes/get" + } + } + }, + "/rest/content/library/item/{library_item}/changes/{version}": { + "get": { + "tags": [ + "library/item/changes" + ], + "summary": "Returns information about a library item change.\nif you do not have all of the privileges described as follows: \n - The resource content.library.Item referenced by the parameter libraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item", + "description": "Library item identifer.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Library item version.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "200": { + "description": "Information about the specified library item change.", + "schema": { + "$ref": "#/definitions/content.library.item.changes_resp" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_content.json#/paths/~1api~1content~1library~1item~1{library_item}~1changes~1{version}/get" + } + } + } + }, + "definitions": { + "ContentConfigurationModel": { + "type": "object", + "properties": { + "automatic_sync_enabled": { + "description": "Whether automatic synchronization is enabled. \n When automatic synchronization is enabled, the Content Library Service will automatically synchronize all subscribed libraries on a daily basis. Subscribed libraries with the SubscriptionInfo.automatic-sync-enabled flag turned on will be synchronized every hour between ConfigurationModel.automatic-sync-start-hour and ConfigurationModel.automatic-sync-stop-hour.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "automatic_sync_start_hour": { + "description": "The hour at which the automatic synchronization will start. This value is between 0 (midnight) and 23 inclusive.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "automatic_sync_stop_hour": { + "description": "The hour at which the automatic synchronization will stop. Any active synchronization operation will continue to run, however no new synchronization operations will be triggered after the stop hour. This value is between 0 (midnight) and 23 inclusive.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "maximum_concurrent_item_syncs": { + "description": "The maximum allowed number of library items to synchronize concurrently from remote libraries. This must be a positive number. The service may not be able to guarantee the requested concurrency if there is no available capacity. \n This setting is global across all subscribed libraries.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + } + } + }, + "ContentConfigurationUpdate": { + "$ref": "#/definitions/ContentConfigurationModel", + "description": "The ConfigurationModel specifying the settings to update." + }, + "ContentLibraryFind": { + "$ref": "#/definitions/ContentLibraryFindSpec", + "description": "Specification describing what properties to filter on." + }, + "ContentLibraryFindSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the library to search. The name is case-insensitive. See LibraryModel.name.\nIf not specified any name will be searched.", + "type": "string" + }, + "type": { + "description": "Library type to search. See LibraryModel.type.\nIf not specified any library type will be searched.", + "$ref": "#/definitions/ContentLibraryModelLibraryType" + } + } + }, + "ContentLibraryItemCertVerificationStatus": { + "type": "string", + "description": "The CertVerificationStatus enumerated type defines the certificate verification status of a library item. Currently applicable only to ovf item type", + "enum": [ + "NOT_AVAILABLE", + "VERIFIED", + "INTERNAL", + "VERIFICATION_FAILURE", + "VERIFICATION_IN_PROGRESS", + "UNTRUSTED" + ] + }, + "ContentLibraryItemCertificateVerificationInfo": { + "type": "object", + "properties": { + "status": { + "description": "The certificate verification status of item.", + "$ref": "#/definitions/ContentLibraryItemCertVerificationStatus" + }, + "cert_chain": { + "description": "A certificate in base64 encoding.\nCertificate chain is unset if the item not signed", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "status" + ] + }, + "ContentLibraryItemChangesInfo": { + "type": "object", + "properties": { + "time": { + "description": "The date and time when the item content was changed.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "The user who made the content change.\nThis field will be unset if the user could not be determined.", + "type": "string" + }, + "message": { + "description": "The full message describing the content change.\nThis field will be unset if a message was not provided when the item content was changed.", + "type": "string" + } + }, + "required": [ + "time" + ] + }, + "ContentLibraryItemChangesSummary": { + "type": "object", + "properties": { + "version": { + "description": "The version of the library item.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "time": { + "description": "The date and time when the item content was changed.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "The user who made the content change.\nThis field will be unset if the user could not be determined.", + "type": "string" + }, + "short_message": { + "description": "The short message describing the content change. The message is truncated to the first 80 characters or first non-leading newline character, whichever length is shorter.\nThis field will be unset if a message was not provided when the item content was changed.", + "type": "string" + } + }, + "required": [ + "version", + "time" + ] + }, + "ContentLibraryItemCopy": { + "$ref": "#/definitions/ContentLibraryItemModel", + "description": "Specification for the new library item to be created." + }, + "ContentLibraryItemCreate": { + "$ref": "#/definitions/ContentLibraryItemModel", + "description": "Specification that defines the properties of the new library item." + }, + "ContentLibraryItemDestinationSpec": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + }, + "required": [ + "subscription" + ] + }, + "ContentLibraryItemDownloadSessionCreate": { + "$ref": "#/definitions/ContentLibraryItemDownloadSessionModel", + "description": "Specification for the new download session to be created." + }, + "ContentLibraryItemDownloadSessionFail": { + "type": "object", + "properties": { + "client_error_message": { + "type": "string", + "description": "Client side error message. This can be useful in providing some extra details about the client side failure. Note that the message won't be translated to the user's locale." + } + }, + "required": [ + "client_error_message" + ] + }, + "ContentLibraryItemDownloadSessionKeepAlive": { + "type": "object", + "properties": { + "progress": { + "type": "integer", + "format": "int64", + "description": "Optional update to the progress property of the session. If specified, the new progress should be greater then the current progress. See DownloadSessionModel.client-progress.\nIf not specified the progress is not updated." + } + } + }, + "ContentLibraryItemDownloadSessionModel": { + "type": "object", + "properties": { + "id": { + "description": "The identifier of this download session.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.DownloadSession. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.DownloadSession.", + "type": "string" + }, + "library_item_id": { + "description": "The identifier of the library item whose content is being downloaded.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_item_content_version": { + "description": "The content version of the library item whose content is being downloaded. This value is the ItemModel.content-version at the time when the session is created for the library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "error_message": { + "description": "If the session is in the ERROR status this property will have more details about the error.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "client_progress": { + "description": "The progress that has been made with the download. This property is to be updated by the client during the download process to indicate the progress of its work in completing the download. The initial progress is 0 until updated by the client. The maximum value is 100, which indicates that the download is complete.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "state": { + "description": "The current state (State) of the download session.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/ContentLibraryItemDownloadSessionModelState" + }, + "expiration_time": { + "description": "Indicates the time after which the session will expire. The session is guaranteed not to expire before this time.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + } + } + }, + "ContentLibraryItemDownloadSessionModelState": { + "type": "string", + "description": "The state of the download session.", + "enum": [ + "ACTIVE", + "CANCELED", + "ERROR" + ] + }, + "ContentLibraryItemDownloadsessionFileEndpointType": { + "type": "string", + "description": "The File.EndpointType enumerated type defines the types of endpoints used to download the file.", + "enum": [ + "HTTPS", + "DIRECT" + ] + }, + "ContentLibraryItemDownloadsessionFileInfo": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes.\nThis field may not be available immediately. It is guaranteed to be set when the client finishes downloading the file.", + "type": "integer", + "format": "int64" + }, + "bytes_transferred": { + "description": "The number of bytes that have been transferred by the server so far for making this file prepared for download. This value may stay at zero till the client starts downloading the file.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The preparation status (PrepareStatus) of the file.", + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFilePrepareStatus" + }, + "download_endpoint": { + "description": "Endpoint at which the file is available for download. The value is valid only when the File.Info.status is PREPARED.\nThis field won't be set until the file status is PREPARED.", + "$ref": "#/definitions/ContentLibraryItemTransferEndpoint" + }, + "checksum_info": { + "description": "The checksum information of the file. When the download is complete, you can retrieve the checksum from the File.get operation to verify the checksum for the downloaded file.\nThe checksum is always calculated for the downloaded file, but this field won't be set until the download is complete.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumInfo" + }, + "error_message": { + "description": "Error message for a failed preparation when the prepare status is ERROR.\nThis field won't be set unless there was an error with the file transfer.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "name", + "bytes_transferred", + "status" + ] + }, + "ContentLibraryItemDownloadsessionFilePrepare": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file requested for download." + }, + "endpoint_type": { + "$ref": "#/definitions/ContentLibraryItemDownloadsessionFileEndpointType", + "description": "Endpoint type request, one of EndpointType. This will determine the type of the File.Info.download-endpoint that is generated when the file is prepared. The DIRECT is only available to users who have the ContentLibrary.ReadStorage privilege.\nIf not specified the default is HTTPS." + } + }, + "required": [ + "file_name" + ] + }, + "ContentLibraryItemDownloadsessionFilePrepareStatus": { + "type": "string", + "description": "The File.PrepareStatus enumerated type defines the state of the file in preparation for download.", + "enum": [ + "UNPREPARED", + "PREPARE_REQUESTED", + "PREPARING", + "PREPARED", + "ERROR" + ] + }, + "ContentLibraryItemFileChecksumAlgorithm": { + "type": "string", + "description": "The File.ChecksumAlgorithm enumerated type defines the valid checksum algorithms.", + "enum": [ + "SHA1", + "MD5", + "SHA256", + "SHA512" + ] + }, + "ContentLibraryItemFileChecksumInfo": { + "type": "object", + "properties": { + "algorithm": { + "description": "The checksum algorithm (ChecksumAlgorithm) used to calculate the checksum.\nIf not specified the default checksum algorithm is SHA1.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumAlgorithm" + }, + "checksum": { + "description": "The checksum value calculated with File.ChecksumInfo.algorithm.", + "type": "string" + } + }, + "required": [ + "checksum" + ] + }, + "ContentLibraryItemFileInfo": { + "type": "object", + "properties": { + "checksum_info": { + "description": "A checksum for validating the content of the file. \n This value can be used to verify that a transfer was completed without errors.\n\nA checksum cannot always be calculated, and the value will be unset if the file does not have content.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumInfo" + }, + "name": { + "description": "The name of the file. \n This value will be unique within the library item for each file. It cannot be an empty string.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes. The file size is the storage used and not the uploaded or provisioned size. For example, when uploading a disk to a datastore, the amount of storage that the disk consumes may be different from the disk file size. When the file is not cached, the size is 0.", + "type": "integer", + "format": "int64" + }, + "cached": { + "description": "Indicates whether the file is on disk or not.", + "type": "boolean" + }, + "version": { + "description": "The version of this file; incremented when a new copy of the file is uploaded.", + "type": "string" + } + }, + "required": [ + "name", + "size", + "cached", + "version" + ] + }, + "ContentLibraryItemFind": { + "$ref": "#/definitions/ContentLibraryItemFindSpec", + "description": "Specification describing what properties to filter on." + }, + "ContentLibraryItemFindSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the library item. The name is case-insensitive. See ItemModel.name.\nIf not specified all library item names are searched.", + "type": "string" + }, + "library_id": { + "description": "The identifier of the library containing the item. See ItemModel.library-id.\nIf not specified all libraries are searched.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "source_id": { + "description": "The identifier of the library item as reported by the publisher. See ItemModel.source-id.\nIf not specified all library items are searched.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "type": { + "description": "The type of the library item. The type is case-insensitive. See ItemModel.type.\nIf not specified all types are searched.", + "type": "string" + }, + "cached": { + "description": "Whether the item is cached. Possible values are 'true' or 'false'. See ItemModel.cached.\nIf not specified all library items are searched.", + "type": "boolean" + } + } + }, + "ContentLibraryItemModel": { + "type": "object", + "properties": { + "id": { + "description": "A unique identifier for this library item.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_id": { + "description": "The identifier of the LibraryModel to which this item belongs.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "content_version": { + "description": "The latest version of the file content list of this library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when this library item was created.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "A human-readable description for this library item.\nThis field is optional for the create operation. Leaving it unset during creation will result in an empty string value. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that the description remains unchanged.", + "type": "string" + }, + "last_modified_time": { + "description": "The date and time when the metadata for this library item was last changed. \n This field is affected by changes to the properties or file content of this item. It is not modified by changes to the tags of the item, or by changes to the library which owns this item.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "last_sync_time": { + "description": "The date and time when this library item was last synchronized. \n This field is updated every time a synchronization is triggered on the library item, including when a synchronization is triggered on the library to which this item belongs. The value is unset for a library item that belongs to a local library.\n\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "metadata_version": { + "description": "A version number for the metadata of this library item. \n This value is incremented with each change to the metadata of this item. Changes to name, description, and so on will increment this value. The value is not incremented by changes to the content or tags of the item or the library which owns it.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "name": { + "description": "A human-readable name for this library item. \n The name may not be unset or an empty string. The name does not have to be unique, even within the same library.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "cached": { + "description": "The status that indicates whether the library item is on disk or not. The library item is cached when all its files are on disk.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "boolean" + }, + "size": { + "description": "The library item size, in bytes. The size is the sum of the size used on the storage backing for all the files in the item. When the library item is not cached, the size is 0.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "integer", + "format": "int64" + }, + "type": { + "description": "An optional type identifier which indicates the type adapter plugin to use. \n This field may be set to a non-empty string value that corresponds to an identifier supported by a type adapter plugin present in the Content Library Service. A type adapter plugin, if present for the specified type, can provide additional information and services around the item content. A type adapter can guide the upload process by creating file entries that are in need of being uploaded to complete an item. \n\n The types and plugins supported by the Content Library Service can be queried using the Type service.\n\nThis field is optional for the create and update operations. During creation, if the type is left unspecified, or if the type is specified but does not have a corresponding type support plugin, then the type of the library item is considered to be generic and all data is treated as generic files. During update, if the type is not specified, then it is not updated.", + "type": "string" + }, + "version": { + "description": "A version number that is updated on metadata changes. This value is used to validate update requests to provide optimistic concurrency of changes. \n This value represents a number that is incremented every time library item properties, such as name or description, are changed. It is not incremented by changes to the file content of the library item, including adding or removing files. It is also not affected by tagging the library item.\n\nThis field is not used for the create operation. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that you do not need to detect concurrent updates.", + "type": "string" + }, + "source_id": { + "description": "The identifier of the ItemModel to which this item is synchronized to if the item belongs to a subscribed library. The value is unset for a library item that belongs to a local library.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "security_compliance": { + "description": "Shows the security compliance of ItemModel.\nThis field is not used for the create and update operations. It will be present in the result of a get or list operation.", + "type": "boolean" + }, + "certificate_verification_info": { + "description": "Certificate verification status and ItemModel's signing certificate . Currently, this field is available only in following cases 1. This item belongs to a secure content library 2. The item is of type ovf.\nThis field is not used for the create and update operations. It may be present in the result of a get or list operation.", + "$ref": "#/definitions/ContentLibraryItemCertificateVerificationInfo" + } + } + }, + "ContentLibraryItemPublish": { + "type": "object", + "properties": { + "force_sync_content": { + "type": "boolean", + "description": "Whether to synchronize file content as well as metadata. This parameter applies only if the subscription is on-demand." + }, + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemDestinationSpec" + }, + "description": "The list of subscriptions to publish this library item to." + } + }, + "required": [ + "force_sync_content" + ] + }, + "ContentLibraryItemStorageInfo": { + "type": "object", + "properties": { + "storage_backing": { + "description": "The storage backing on which this object resides. This might not be the same as the default storage backing associated with the library.", + "$ref": "#/definitions/ContentLibraryStorageBacking" + }, + "storage_uris": { + "description": "URIs that identify the file on the storage backing. \n These URIs may be specific to the backing and may need interpretation by the client. A client that understands a URI scheme in this list may use that URI to directly access the file on the storage backing. This can provide high-performance support for file manipulation.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "checksum_info": { + "description": "A checksum for validating the content of the file. \n This value can be used to verify that a transfer was completed without errors.\n\nA checksum cannot always be calculated, and the value will be unset if the file does not have content.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumInfo" + }, + "name": { + "description": "The name of the file. \n This value will be unique within the library item for each file. It cannot be an empty string.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes. The file size is the storage used and not the uploaded or provisioned size. For example, when uploading a disk to a datastore, the amount of storage that the disk consumes may be different from the disk file size. When the file is not cached, the size is 0.", + "type": "integer", + "format": "int64" + }, + "cached": { + "description": "Indicates whether the file is on disk or not.", + "type": "boolean" + }, + "version": { + "description": "The version of this file; incremented when a new copy of the file is uploaded.", + "type": "string" + } + }, + "required": [ + "storage_backing", + "storage_uris", + "name", + "size", + "cached", + "version" + ] + }, + "ContentLibraryItemTransferEndpoint": { + "type": "object", + "properties": { + "uri": { + "description": "Transfer endpoint URI. The supported URI schemes are: http, https, and ds. \n An endpoint URI with the ds scheme specifies the location of the file on the datastore. The format of the datastore URI is: \n\n - ds:///vmfs/volumes/uuid/path\n \n When the transfer endpoint is a datastore location, the server can import the file directly from the storage backing without the overhead of streaming over HTTP.", + "type": "string", + "format": "uri" + }, + "ssl_certificate_thumbprint": { + "description": "Thumbprint of the expected SSL certificate for this endpoint. Only used for HTTPS connections. The thumbprint is the SHA-1 hash of the DER encoding of the remote endpoint's SSL certificate. If set, the remote endpoint's SSL certificate is only accepted if it matches this thumbprint, and no other certificate validation is performed. The specified sslCertificateThumbprint will not be checked for SSL certificate validation if {TransferEndpoint#sslCertificate} is also set.\nIf unset, standard certificate validation is performed.", + "type": "string" + } + }, + "required": [ + "uri" + ] + }, + "ContentLibraryItemTransferStatus": { + "type": "string", + "description": "The TransferStatus enumerated type defines the transfer state of a file.", + "enum": [ + "WAITING_FOR_TRANSFER", + "TRANSFERRING", + "READY", + "VALIDATING", + "ERROR" + ] + }, + "ContentLibraryItemUpdate": { + "$ref": "#/definitions/ContentLibraryItemModel", + "description": "Specification of the properties to set." + }, + "ContentLibraryItemUpdateSessionCreate": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionModel", + "description": "Specification for the new update session to be created." + }, + "ContentLibraryItemUpdateSessionFail": { + "type": "object", + "properties": { + "client_error_message": { + "type": "string", + "description": "Client side error message. This can be useful in providing some extra details about the client side failure. Note that the message won't be translated to the user's locale." + } + }, + "required": [ + "client_error_message" + ] + }, + "ContentLibraryItemUpdateSessionKeepAlive": { + "type": "object", + "properties": { + "client_progress": { + "type": "integer", + "format": "int64", + "description": "Optional update to the progress property of the session. If specified, the new progress should be greater then the current progress. See UpdateSessionModel.client-progress.\nIf not specified the progress is not updated." + } + } + }, + "ContentLibraryItemUpdateSessionModel": { + "type": "object", + "properties": { + "id": { + "description": "The identifier of this update session.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.UpdateSession. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.UpdateSession.", + "type": "string" + }, + "library_item_id": { + "description": "The identifier of the library item to which content will be uploaded or removed.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_item_content_version": { + "description": "The content version of the library item whose content is being modified. This value is the ItemModel.content-version at the time when the session is created for the library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "error_message": { + "description": "If the session is in the ERROR status this property will have more details about the error.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "client_progress": { + "description": "The progress that has been made with the upload. This property is to be updated by the client during the upload process to indicate the progress of its work in completing the upload. The initial progress is 0 until updated by the client. The maximum value is 100, which indicates that the update is complete.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "integer", + "format": "int64" + }, + "state": { + "description": "The current state (State) of the update session.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/ContentLibraryItemUpdateSessionModelState" + }, + "expiration_time": { + "description": "Indicates the time after which the session will expire. The session is guaranteed not to expire earlier than this time.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "preview_info": { + "description": "A preview of the files currently being uploaded in the session. This property will be set only when the session is in the ACTIVE.\nThis field is optional and it is only relevant when the value of UpdateSessionModel.state is ACTIVE.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionPreviewInfo" + }, + "warning_behavior": { + "description": "Indicates the update session behavior if warnings are raised in the session preview. Any warning which is raised by session preview but not ignored by the client will, by default, fail the update session.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionWarningBehavior" + } + } + } + }, + "ContentLibraryItemUpdateSessionModelState": { + "type": "string", + "description": "The state of an update session.", + "enum": [ + "ACTIVE", + "DONE", + "ERROR", + "CANCELED" + ] + }, + "ContentLibraryItemUpdateSessionUpdate": { + "$ref": "#/definitions/ContentLibraryItemUpdateSessionModel", + "description": "Specification for the new property values to be set on the update session." + }, + "ContentLibraryItemUpdatesessionCertificateInfo": { + "type": "object", + "properties": { + "issuer": { + "description": "Certificate issuer. For example: /C=US/ST=California/L=Palo Alto/O=VMware, Inc.", + "type": "string" + }, + "subject": { + "description": "Certificate subject. For example: C=US/ST=Massachusetts/L=Hopkinton/O=EMC Corporation/OU=EMC Avamar/CN=EMC Corporation.", + "type": "string" + }, + "self_signed": { + "description": "Whether the certificate is self-signed.", + "type": "boolean" + }, + "x509": { + "description": "The X509 representation of the certificate.", + "type": "string" + } + }, + "required": [ + "issuer", + "subject", + "self_signed", + "x509" + ] + }, + "ContentLibraryItemUpdatesessionFileAdd": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileAddSpec", + "description": "Specification for the file that needs to be added or updated. This includes whether the client wants to push the content or have the server pull it." + }, + "ContentLibraryItemUpdatesessionFileAddSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file being uploaded.", + "type": "string" + }, + "source_type": { + "description": "The source type (SourceType) from which the file content will be retrieved.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileSourceType" + }, + "source_endpoint": { + "description": "Location from which the Content Library Service will fetch the file, rather than requiring a client to upload the file.\nThis field is optional and it is only relevant when the value of File.AddSpec.source-type is PULL.", + "$ref": "#/definitions/ContentLibraryItemTransferEndpoint" + }, + "size": { + "description": "The file size, in bytes.\nIf unset, the server will not verify it received the correct size.", + "type": "integer", + "format": "int64" + }, + "checksum_info": { + "description": "The checksum of the file. If specified, the server will verify the checksum once the file is received. If there is a mismatch, the upload will fail. For ova files, this value should not be set.\nIf unset, the server will not verify the checksum.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumInfo" + } + }, + "required": [ + "name", + "source_type" + ] + }, + "ContentLibraryItemUpdatesessionFileInfo": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "source_type": { + "description": "The source type (SourceType) from which the file is being retrieved. This may be NONE if the file is not being changed.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileSourceType" + }, + "size": { + "description": "The file size, in bytes as received by the server. This field is guaranteed to be set when the server has completely received the file.\nThis field won't be set until the file status is READY.", + "type": "integer", + "format": "int64" + }, + "checksum_info": { + "description": "The checksum information of the file received by the server.\nIf unset, the server does not verify the checksum.", + "$ref": "#/definitions/ContentLibraryItemFileChecksumInfo" + }, + "source_endpoint": { + "description": "A source endpoint from which to retrieve the file.\nThis field is optional and it is only relevant when the value of File.Info.source-type is PULL.", + "$ref": "#/definitions/ContentLibraryItemTransferEndpoint" + }, + "upload_endpoint": { + "description": "An upload endpoint to which the client can push the content.\nThis field is optional and it is only relevant when the value of File.Info.source-type is PUSH.", + "$ref": "#/definitions/ContentLibraryItemTransferEndpoint" + }, + "bytes_transferred": { + "description": "The number of bytes of this file that have been received by the server.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The transfer status (TransferStatus) of this file.", + "$ref": "#/definitions/ContentLibraryItemTransferStatus" + }, + "error_message": { + "description": "Details about the transfer error.\nAn error message is set if the status is ERROR.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "keep_in_storage": { + "description": "Whether or not the file will be kept in storage upon update session completion. The flag is true for most files, and false for metadata files such as manifest and certificate file of update session with library item type OVF. Any file with File.Info.keep-in-storage set to false will not show up in the list of files returned from File.list upon update session completion.\nIf unset, the file will be kept in storage upon update session completion.", + "type": "boolean" + } + }, + "required": [ + "name", + "source_type", + "bytes_transferred", + "status" + ] + }, + "ContentLibraryItemUpdatesessionFileSourceType": { + "type": "string", + "description": "The File.SourceType enumerated type defines how the file content is retrieved.", + "enum": [ + "NONE", + "PUSH", + "PULL" + ] + }, + "ContentLibraryItemUpdatesessionFileValidationError": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "error_message": { + "description": "A message indicating why the file was considered invalid.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "name", + "error_message" + ] + }, + "ContentLibraryItemUpdatesessionFileValidationResult": { + "type": "object", + "properties": { + "has_errors": { + "description": "Whether the validation was succesful or not. In case of errors, the File.ValidationResult.missing-files and File.ValidationResult.invalid-files will contain at least one entry.", + "type": "boolean" + }, + "missing_files": { + "description": "A set containing the names of the files that are required but the client hasn't added.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "invalid_files": { + "description": "A list containing the files that have been identified as invalid and details about the error.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionFileValidationError" + } + } + }, + "required": [ + "has_errors", + "missing_files", + "invalid_files" + ] + }, + "ContentLibraryItemUpdatesessionPreviewInfo": { + "type": "object", + "properties": { + "state": { + "description": "Indicates the state of the preview of the update session.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionPreviewInfoState" + }, + "certificate_info": { + "description": "The certificate information of the signed update session content.\nThis field is unset if the update session content is not signed.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionCertificateInfo" + }, + "warnings": { + "description": "The list of warnings raised for this update session. Any warning which is not ignored by the client will, by default, fail the update session during session complete operation.\nThis field is optional and it is only relevant when the value of PreviewInfo.state is AVAILABLE.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryItemUpdatesessionPreviewWarningInfo" + } + }, + "cert_chain": { + "description": "Certificate chain in base64 format.\nThis field is unset if the update session content is not signed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "state" + ] + }, + "ContentLibraryItemUpdatesessionPreviewInfoState": { + "type": "string", + "description": "The PreviewInfo.State enumerated type defines the state of the update session's preview.", + "enum": [ + "UNAVAILABLE", + "NOT_APPLICABLE", + "PREPARING", + "AVAILABLE" + ] + }, + "ContentLibraryItemUpdatesessionPreviewWarningInfo": { + "type": "object", + "properties": { + "type": { + "description": "The warning type raised during preview of the update session.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionWarningType" + }, + "message": { + "description": "The message specifying more details about the warning.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "ignored": { + "description": "Indicates if this warning will be ignored during session complete operation.", + "type": "boolean" + } + }, + "required": [ + "type", + "message", + "ignored" + ] + }, + "ContentLibraryItemUpdatesessionWarningBehavior": { + "type": "object", + "properties": { + "type": { + "description": "The warning type which may be raised during the update session.", + "$ref": "#/definitions/ContentLibraryItemUpdatesessionWarningType" + }, + "ignored": { + "description": "Indicates if this warning will be ignored during session complete operation.", + "type": "boolean" + } + }, + "required": [ + "type", + "ignored" + ] + }, + "ContentLibraryItemUpdatesessionWarningType": { + "type": "string", + "description": "The WarningType enumerated type defines the warnings which can be raised during the update session.", + "enum": [ + "SELF_SIGNED_CERTIFICATE", + "EXPIRED_CERTIFICATE", + "NOT_YET_VALID_CERTIFICATE", + "UNTRUSTED_CERTIFICATE" + ] + }, + "ContentLibraryModel": { + "type": "object", + "properties": { + "id": { + "description": "An identifier which uniquely identifies this LibraryModel.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when this library was created.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "A human-readable description for this library.\nThis field is optional for the create operation. Leaving it unset during creation will result in an empty string value. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that the description should be left unchanged.", + "type": "string" + }, + "last_modified_time": { + "description": "The date and time when this library was last updated. \n This field is updated automatically when the library properties are changed. This field is not affected by adding, removing, or modifying a library item or its content within the library. Tagging the library or syncing the subscribed library does not alter this field.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "last_sync_time": { + "description": "The date and time when this library was last synchronized. \n This field applies only to subscribed libraries. It is updated every time a synchronization is triggered on the library. The value is unset for a local library.\n\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "name": { + "description": "The name of the library. \n A Library is identified by a human-readable name. Library names cannot be undefined or an empty string. Names do not have to be unique.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "storage_backings": { + "description": "The list of default storage backings which are available for this library. \n A StorageBacking defines a default storage location which can be used to store files for library items in this library. Some library items, for instance, virtual machine template items, support files that may be distributed across various storage backings. One or more item files may or may not be located on the default storage backing. \n\n Multiple default storage locations are not currently supported but may become supported in future releases.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryStorageBacking" + } + }, + "type": { + "description": "The type (LibraryModel.LibraryType) of this library. \n This value can be used to determine what additional services and information can be available for this library. This field is not used for the create and update operations. It will always be present in the result of a get operation.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/ContentLibraryModelLibraryType" + }, + "optimization_info": { + "description": "Defines various optimizations and optimization parameters applied to this library.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/ContentLibraryOptimizationInfo" + }, + "version": { + "description": "A version number which is updated on metadata changes. This value allows clients to detect concurrent updates and prevent accidental clobbering of data. \n This value represents a number which is incremented every time library properties, such as name or description, are changed. It is not incremented by changes to a library item within the library, including adding or removing items. It is also not affected by tagging the library.\n\nThis field is not used for the create operation. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that you do not need to detect concurrent updates.", + "type": "string" + }, + "publish_info": { + "description": "Defines how this library is published so that it can be subscribed to by a remote subscribed library. \n The PublishInfo defines where and how the metadata for this local library is accessible. A local library is only published publically if PublishInfo.published is true.\n\nThis field is optional for the create and update operations. If not specified during creation, the default is for the library to not be published. If not specified during update, the field is left unchanged.", + "$ref": "#/definitions/ContentLibraryPublishInfo" + }, + "subscription_info": { + "description": "Defines the subscription behavior for this Library. \n The SubscriptionInfo defines how this subscribed library synchronizes to a remote source. Setting the value will determine the remote source to which the library synchronizes, and how. Changing the subscription will result in synchronizing to a new source. If the new source differs from the old one, the old library items and data will be lost. Setting SubscriptionInfo.automatic-sync-enabled to false will halt subscription but will not remove existing cached data.\n\nThis field is optional for the create and update operations. If not specified during creation, a default will be created without an active subscription. If not specified during update, the field is left unchanged.", + "$ref": "#/definitions/ContentLibrarySubscriptionInfo" + }, + "server_guid": { + "description": "The unique identifier of the vCenter server where the library exists.\nThis field is optional for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.", + "type": "string" + }, + "security_policy_id": { + "description": "Represents the security policy applied to this library. \n Setting the field will make the library secure. This field is ignored in update operation if LibraryModel.unset-security-policy-id is set to true.\n\nThis field is optional for the create and update operations. If not set in create operation, the library will be insecure. If not specified in update operation, the field is left unchanged.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "unset_security_policy_id": { + "description": "This represents the intent of the change to LibraryModel.security-policy-id in update operation. \n If this field is set to true, any security policy applied to the library will be removed. If this field is set to false, any security policy applied to library will be changed to the value specified in LibraryModel.security-policy-id, if any.\n\nThis field is optional for the update operation. If unset, any existing security policy will be changed to the value specified in LibraryModel.security-policy-id, if any.", + "type": "boolean" + } + } + }, + "ContentLibraryModelLibraryType": { + "type": "string", + "description": "The LibraryModel.LibraryType enumerated type defines the type of a LibraryModel. \n The type of a library can be used to determine which additional services can be performed with a library.", + "enum": [ + "LOCAL", + "SUBSCRIBED" + ] + }, + "ContentLibraryOptimizationInfo": { + "type": "object", + "properties": { + "optimize_remote_publishing": { + "description": "If set to true then library would be optimized for remote publishing. \n Turn it on if remote publishing is dominant use case for this library. Remote publishing means here that publisher and subscribers are not the part of the same Vcenter SSO domain. \n\n Any optimizations could be done as result of turning on this optimization during library creation. For example, library content could be stored in different format but optimizations are not limited to just storage format. \n\n Note, that value of this toggle could be set only during creation of the library and you would need to migrate your library in case you need to change this value (optimize the library for different use case).\n\nThis field is optional for the create operation. If not specified for the create, the default is for the library to not be optmized for specific use case. It is not used for the update operation.", + "type": "boolean" + } + } + }, + "ContentLibraryPublishInfo": { + "type": "object", + "properties": { + "authentication_method": { + "description": "Indicates how a subscribed library should authenticate (AuthenticationMethod) to the published library endpoint.\nThis field is required for the LocalLibrary.create operation. It is optional for the LocalLibrary.update operation, and if unset the value will not be changed. When the existing authentication method is BASIC and authentication is being turned off by updating this field to NONE, then the PublishInfo.current-password field is required. This field will always be present in the results of the LocalLibrary.get operation.", + "$ref": "#/definitions/ContentLibraryPublishInfoAuthenticationMethod" + }, + "published": { + "description": "Whether the local library is published.\nThis field is required for the LocalLibrary.create operation. It is optional for the LocalLibrary.update operation, and if unset the value will not be changed. When the existing authentication method is BASIC and the local library is published, the PublishInfo.current-password field is required before turning off publishing. This field will always be present in the results of the LocalLibrary.get operation.", + "type": "boolean" + }, + "publish_url": { + "description": "The URL to which the library metadata is published by the Content Library Service. \n This value can be used to set the SubscriptionInfo.subscription-url property when creating a subscribed library.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "uri" + }, + "user_name": { + "description": "The username to require for authentication.\nThis field is optional for the LocalLibrary.create and LocalLibrary.update operations. When the authentication method is NONE, the username can be left unset. When the authentication method is BASIC, the username is ignored in the current release. It defaults to \"vcsp\". It is preferable to leave this unset. If specified, it must be set to \"vcsp\".", + "type": "string" + }, + "password": { + "description": "The new password to require for authentication.\nThis field is optional for the LocalLibrary.create operation. When the authentication method is NONE, the password can be left unset. When the authentication method is BASIC, the password should be a non-empty string. This field is optional for the LocalLibrary.update operation. Leaving it unset during update indicates that the password is not changed. When the password is changed, the PublishInfo.current-password field is required. This field is not used for the LocalLibrary.get operation.", + "type": "string", + "format": "password" + }, + "current_password": { + "description": "The current password to verify. This field is available starting in vSphere 6.7.\nThis field is unused for the LocalLibrary.create operation. This field is optional for the LocalLibrary.update operation. When the existing authentication method is NONE, the current password can be left unset. When the existing authentication method is BASIC, the current password is verified before applying the new PublishInfo.password, turning off authentication, or unpublishing the library. This field is not used for the LocalLibrary.get operation.", + "type": "string", + "format": "password" + }, + "persist_json_enabled": { + "description": "Whether library and library item metadata are persisted in the storage backing as JSON files. This flag only applies if the local library is published. \n Enabling JSON persistence allows you to synchronize a subscribed library manually instead of over HTTP. You copy the local library content and metadata to another storage backing manually and then create a subscribed library referencing the location of the library JSON file in the SubscriptionInfo.subscription-url. When the subscribed library's storage backing matches the subscription URL, files do not need to be copied to the subscribed library. \n\n For a library backed by a datastore, the library JSON file will be stored at the path contentlib-{library_id}/lib.json on the datastore. \n\n For a library backed by a remote file system, the library JSON file will be stored at {library_id}/lib.json in the remote file system path.\n\nThis field is optional for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + } + } + }, + "ContentLibraryPublishInfoAuthenticationMethod": { + "type": "string", + "description": "The PublishInfo.AuthenticationMethod enumerated type indicates how a subscribed library should authenticate to the published library endpoint.", + "enum": [ + "BASIC", + "NONE" + ] + }, + "ContentLibrarySourceInfo": { + "type": "object", + "properties": { + "source_library": { + "description": "Identifier of the published library.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + } + }, + "ContentLibraryStorageBacking": { + "type": "object", + "properties": { + "type": { + "description": "Type (Type) of StorageBacking.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/ContentLibraryStorageBackingType" + }, + "datastore_id": { + "description": "Identifier of the datastore used to store the content in the library.\nThis field is optional and it is only relevant when the value of StorageBacking.type is DATASTORE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_uri": { + "description": "URI identifying the location used to store the content in the library. \n The following URI formats are supported: \n\n vSphere 6.5 \n\n - nfs://server/path?version=4 (for vCenter Server Appliance only) - Specifies an NFS Version 4 server.\n - nfs://server/path (for vCenter Server Appliance only) - Specifies an NFS Version 3 server. The nfs://server:/path format is also supported.\n - smb://server/path - Specifies an SMB server or Windows share.\n \n vSphere 6.0 Update 1 \n\n - nfs://server:/path (for vCenter Server Appliance only)\n - file://unc-server/path (for vCenter Server for Windows only)\n - file:///mount/point (for vCenter Server Appliance only) - Local file URIs are supported only when the path is a local mount point for an NFS file system. Use of file URIs is strongly discouraged. Instead, use an NFS URI to specify the remote file system.\n \n vSphere 6.0 \n\n - nfs://server:/path (for vCenter Server Appliance only)\n - file://unc-server/path (for vCenter Server for Windows only)\n - file:///path - Local file URIs are supported but strongly discouraged because it may interfere with the performance of vCenter Server.\n \nThis field is optional and it is only relevant when the value of StorageBacking.type is OTHER.", + "type": "string", + "format": "uri" + } + } + }, + "ContentLibraryStorageBackingType": { + "type": "string", + "description": "The StorageBacking.Type enumerated type specifies the type of the StorageBacking.", + "enum": [ + "DATASTORE", + "OTHER" + ] + }, + "ContentLibrarySubscribedItemSync": { + "type": "object", + "properties": { + "force_sync_content": { + "type": "boolean", + "description": "Whether to synchronize file content as well as metadata. This parameter applies only if the subscription is on-demand." + }, + "sync_optional_files": { + "type": "boolean", + "description": "Whether to synchronize optional files. This parameter applies to both types of subscriptions on-demand as well as sync-immediately.\nThis parameter is optional because it was added in a newer version than its parent node." + } + }, + "required": [ + "force_sync_content" + ] + }, + "ContentLibrarySubscriptionInfo": { + "type": "object", + "properties": { + "authentication_method": { + "description": "Indicate how the subscribed library should authenticate (AuthenticationMethod) with the published library endpoint.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/ContentLibrarySubscriptionInfoAuthenticationMethod" + }, + "automatic_sync_enabled": { + "description": "Whether the library should participate in automatic library synchronization. In order for automatic synchronization to happen, the global ConfigurationModel.automatic-sync-enabled option must also be true. The subscription is still active even when automatic synchronization is turned off, but synchronization is only activated with an explicit call to SubscribedLibrary.sync or SubscribedItem.sync. In other words, manual synchronization is still available even when automatic synchronization is disabled.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "on_demand": { + "description": "Indicates whether a library item's content will be synchronized only on demand. \n If this is set to true, then the library item's metadata will be synchronized but the item's content (its files) will not be synchronized. The Content Library Service will synchronize the content upon request only. This can cause the first use of the content to have a noticeable delay. \n\n Items without synchronized content can be forcefully synchronized in advance using the SubscribedItem.sync call with forceSyncContent set to true. Once content has been synchronized, the content can removed with the SubscribedItem.evict call. \n\n If this value is set to false, all content will be synchronized in advance.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "password": { + "description": "The password to use when authenticating. \n The password must be set when using a password-based authentication method; empty strings are not allowed.\n\nThis field is optional for the create operation. It will not be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string", + "format": "password" + }, + "ssl_thumbprint": { + "description": "An optional SHA-1 hash of the SSL certificate for the remote endpoint. \n If this value is defined the SSL certificate will be verified by comparing it to the SSL thumbprint. The SSL certificate must verify against the thumbprint. When specified, the standard certificate chain validation behavior is not used. The certificate chain is validated normally if this value is unset. The specified sslThumbprint will not be checked for SSL certificate validation if {SubscriptionInfo#sslCertificate} is also set.\n\nThis field is optional for the create operation. It will not be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "subscription_url": { + "description": "The URL of the endpoint where the metadata for the remotely published library is being served. \n This URL can be the PublishInfo.publish-url of the published library (for example, https://server/path/lib.json). \n\n If the source content comes from a published library with PublishInfo.persist-json-enabled, the subscription URL can be a URL pointing to the library JSON file on a datastore or remote file system. The supported formats are: \n\n vSphere 6.5 \n\n - ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)\n - nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter Server Appliance)\n - nfs://server/path/mylibrary/lib.json?version=4 (for NFSv4 server on vCenter Server Appliance) \n - smb://server/path/mylibrary/lib.json (for SMB server)\n \n vSphere 6.0 \n\n - file://server/mylibrary/lib.json (for UNC server on vCenter Server for Windows)\n - file:///path/mylibrary/lib.json (for local file system)\n \n When you specify a DS subscription URL, the datastore must be on the same vCenter Server as the subscribed library. When you specify an NFS or SMB subscription URL, the StorageBacking.storage-uri of the subscribed library must be on the same remote file server and should share a common parent path with the subscription URL.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string", + "format": "uri" + }, + "user_name": { + "description": "The username to use when authenticating. \n The username must be set when using a password-based authentication method. Empty strings are allowed for usernames.\n\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "source_info": { + "description": "Information about the source published library. This field will be set for a subscribed library which is associated with a subscription of the published library.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/ContentLibrarySourceInfo" + } + } + }, + "ContentLibrarySubscriptionInfoAuthenticationMethod": { + "type": "string", + "description": "Indicate how the subscribed library should authenticate with the published library endpoint.", + "enum": [ + "BASIC", + "NONE" + ] + }, + "ContentLibrarySubscriptionsCreate": { + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpec", + "description": "Specification for the subscription." + }, + "ContentLibrarySubscriptionsCreateSpec": { + "type": "object", + "properties": { + "subscribed_library": { + "description": "Specification for the subscribed library to be associated with the subscription.", + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpecSubscribedLibrary" + } + }, + "required": [ + "subscribed_library" + ] + }, + "ContentLibrarySubscriptionsCreateSpecNewSubscribedLibrary": { + "type": "object", + "properties": { + "name": { + "description": "Name of the subscribed library.", + "type": "string" + }, + "description": { + "description": "Description of the subscribed library.\nIf unset, the description will be an empty string.", + "type": "string" + }, + "storage_backings": { + "description": "The list of default storage backings for this library. \n The list must contain exactly one storage backing. Multiple default storage locations are not currently supported but may become supported in future releases.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentLibraryStorageBacking" + } + }, + "automatic_sync_enabled": { + "description": "Specifies whether the library should participate in automatic library synchronization.", + "type": "boolean" + }, + "on_demand": { + "description": "Specifies whether a library item's content will be synchronized only on demand.", + "type": "boolean" + } + }, + "required": [ + "name", + "storage_backings", + "automatic_sync_enabled", + "on_demand" + ] + }, + "ContentLibrarySubscriptionsCreateSpecPlacement": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable folder for the virtual machine template; if a folder cannot be chosen, publishing a virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.cluster. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.host are both specified, Subscriptions.CreateSpecPlacement.host must be a member of Subscriptions.CreateSpecPlacement.cluster.\nIf Subscriptions.CreateSpecPlacement.resource-pool or Subscriptions.CreateSpecPlacement.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.host. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.cluster.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, publish of virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.host. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.cluster are both specified, Subscriptions.CreateSpecPlacement.host must be a member of Subscriptions.CreateSpecPlacement.cluster.\nIf this is unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, publishing the virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nIf unset, the virtual Ethernet adapters will not be backed by a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "ContentLibrarySubscriptionsCreateSpecSubscribedLibrary": { + "type": "object", + "properties": { + "target": { + "description": "Specifies whether the target subscribed library should be newly created or an existing subscribed library should be used.", + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpecSubscribedLibraryTarget" + }, + "new_subscribed_library": { + "description": "Specification for creating a new subscribed library associated with the subscription.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.target is CREATE_NEW.", + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpecNewSubscribedLibrary" + }, + "subscribed_library": { + "description": "Identifier of the existing subscribed library to associate with the subscription. Only the subscribed libraries for which SubscriptionInfo.subscription-url property is set to the PublishInfo.publish-url of the published library can be associated with the subscription.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.target is USE_EXISTING.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "location": { + "description": "Location of the subscribed library relative to the published library.", + "$ref": "#/definitions/ContentLibrarySubscriptionsLocation" + }, + "vcenter": { + "description": "Specification for the subscribed library's vCenter Server instance.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.location is REMOTE.", + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpecVcenter" + }, + "placement": { + "description": "Placement specification for the virtual machine template library items on the subscribed library.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable placement specification for the virtual machine template items; if a placement specification cannot be chosen, publish of virtual machine template items will fail.", + "$ref": "#/definitions/ContentLibrarySubscriptionsCreateSpecPlacement" + } + }, + "required": [ + "target", + "location" + ] + }, + "ContentLibrarySubscriptionsCreateSpecSubscribedLibraryTarget": { + "type": "string", + "description": "The Subscriptions.CreateSpecSubscribedLibrary.Target enumerated type defines the options related to the target subscribed library which will be associated with the subscription.", + "enum": [ + "CREATE_NEW", + "USE_EXISTING" + ] + }, + "ContentLibrarySubscriptionsCreateSpecVcenter": { + "type": "object", + "properties": { + "hostname": { + "description": "The hostname of the subscribed library's vCenter Server.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "hostname" + ] + }, + "ContentLibrarySubscriptionsInfo": { + "type": "object", + "properties": { + "subscribed_library": { + "description": "Identifier of the subscribed library associated with the subscription.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscribed_library_name": { + "description": "Name of the subscribed library associated with the subscription.", + "type": "string" + }, + "subscribed_library_location": { + "description": "Location of the subscribed library relative to the published library.", + "$ref": "#/definitions/ContentLibrarySubscriptionsLocation" + }, + "subscribed_library_vcenter": { + "description": "Information about the vCenter Server instance where the subscribed library exists.\nThis field is optional and it is only relevant when the value of Subscriptions.Info.subscribed-library-location is REMOTE.", + "$ref": "#/definitions/ContentLibrarySubscriptionsVcenterInfo" + }, + "subscribed_library_placement": { + "description": "Placement information about the subscribed library's virtual machine template items.", + "$ref": "#/definitions/ContentLibrarySubscriptionsPlacementInfo" + } + }, + "required": [ + "subscribed_library", + "subscribed_library_name", + "subscribed_library_location", + "subscribed_library_placement" + ] + }, + "ContentLibrarySubscriptionsLocation": { + "type": "string", + "description": "The Subscriptions.Location enumerated type defines the location of subscribed library relative to the published library.", + "enum": [ + "LOCAL", + "REMOTE" + ] + }, + "ContentLibrarySubscriptionsPlacementInfo": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a virtual machine folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.PlacementInfo.host and Subscriptions.PlacementInfo.resource-pool are both specified, Subscriptions.PlacementInfo.resource-pool must belong to Subscriptions.PlacementInfo.host. If Subscriptions.PlacementInfo.host and Subscriptions.PlacementInfo.cluster are both specified, Subscriptions.PlacementInfo.host must be a member of Subscriptions.PlacementInfo.cluster.\nThe field will be unset if the subscribed library associated with the subscription does not have a host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nThe field will be unset if the subscribed library associated with the subscription does not have a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "ContentLibrarySubscriptionsSummary": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + }, + "subscribed_library": { + "description": "Identifier of the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscribed_library_name": { + "description": "Name of the subscribed library.", + "type": "string" + }, + "subscribed_library_vcenter_hostname": { + "description": "Hostname of the vCenter instance where the subscribed library exists.\nThis field is unset if the subscribed library is on the same vCenter Server instance as the published library.", + "type": "string" + } + }, + "required": [ + "subscription", + "subscribed_library", + "subscribed_library_name" + ] + }, + "ContentLibrarySubscriptionsUpdate": { + "$ref": "#/definitions/ContentLibrarySubscriptionsUpdateSpec", + "description": "Specification of the new property values to set on the subscription." + }, + "ContentLibrarySubscriptionsUpdateSpec": { + "type": "object", + "properties": { + "subscribed_library_vcenter": { + "description": "Specification for the subscribed library's vCenter Server instance.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/ContentLibrarySubscriptionsUpdateSpecVcenter" + }, + "subscribed_library_placement": { + "description": "Placement specification for the virtual machine template items of the subscribed library. Updating this information will only affect new or updated items, existing items will not be moved. The entire placement configuration of the subscribed library will replaced by the new specification.\nIf unset, the placement configuration of the subscribed library will be unchanged.", + "$ref": "#/definitions/ContentLibrarySubscriptionsUpdateSpecPlacement" + } + } + }, + "ContentLibrarySubscriptionsUpdateSpecPlacement": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable folder for the virtual machine template; if a folder cannot be chosen, publishing a virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If Subscriptions.UpdateSpecPlacement.cluster and Subscriptions.UpdateSpecPlacement.resource-pool are both specified, Subscriptions.UpdateSpecPlacement.resource-pool must belong to Subscriptions.UpdateSpecPlacement.cluster. If Subscriptions.UpdateSpecPlacement.cluster and Subscriptions.UpdateSpecPlacement.host are both specified, Subscriptions.UpdateSpecPlacement.host must be a member of Subscriptions.UpdateSpecPlacement.cluster. If Subscriptions.UpdateSpecPlacement.resource-pool or Subscriptions.UpdateSpecPlacement.host is specified, it is recommended that this field be unset.\nIf Subscriptions.UpdateSpecPlacement.resource-pool or Subscriptions.UpdateSpecPlacement.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, publish of virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.UpdateSpecPlacement.host and Subscriptions.UpdateSpecPlacement.resource-pool are both specified, Subscriptions.UpdateSpecPlacement.resource-pool must belong to Subscriptions.UpdateSpecPlacement.host. If Subscriptions.UpdateSpecPlacement.host and Subscriptions.UpdateSpecPlacement.cluster are both specified, Subscriptions.UpdateSpecPlacement.host must be a member of Subscriptions.UpdateSpecPlacement.cluster.\nIf this is unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, publishing the virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nIf unset, newly published virtual machine template library items will not be backed by a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "ContentLibrarySubscriptionsUpdateSpecVcenter": { + "type": "object", + "properties": { + "hostname": { + "description": "The hostname of the subscribed library's vCenter Server.\nIf unset, the value is unchanged.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + } + } + }, + "ContentLibrarySubscriptionsVcenterInfo": { + "type": "object", + "properties": { + "hostname": { + "description": "Hostname of the vCenter Server instance where the subscribed library exists.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "server_guid": { + "description": "The unique identifier of the vCenter Server where the subscribed library exists.", + "type": "string" + } + }, + "required": [ + "hostname", + "server_guid" + ] + }, + "ContentLibraryUpdate": { + "$ref": "#/definitions/ContentLibraryModel", + "description": "Specification of the new property values to set on the library." + }, + "ContentLocalLibraryCreate": { + "$ref": "#/definitions/ContentLibraryModel", + "description": "Specification for the new local library." + }, + "ContentLocalLibraryDestinationSpec": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + }, + "required": [ + "subscription" + ] + }, + "ContentLocalLibraryPublish": { + "type": "object", + "properties": { + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentLocalLibraryDestinationSpec" + }, + "description": "The list of subscriptions to publish this library to." + } + } + }, + "ContentLocalLibraryUpdate": { + "$ref": "#/definitions/ContentLibraryModel", + "description": "Specification of the new property values to set on the local library." + }, + "ContentSecurityPoliciesInfo": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the security policy\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.SecurityPolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.SecurityPolicy.", + "type": "string" + }, + "name": { + "description": "Name of the security policy", + "type": "string" + }, + "item_type_rules": { + "description": "Map of content library item type and rule types The rules can be associated with a security policy. When the security policy is applied to a content library, these rules will be used to validate specific item type.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ContentSecurityRuleType" + } + } + }, + "required": [ + "policy", + "name", + "item_type_rules" + ] + }, + "ContentSecurityRuleType": { + "type": "string", + "description": "The SecurityRuleType enumerated type defines the security rules which can be applied to different item types.", + "enum": [ + "OVF_STRICT_VERIFICATION" + ] + }, + "ContentSubscribedLibraryCreate": { + "$ref": "#/definitions/ContentLibraryModel", + "description": "Specification for the new subscribed library." + }, + "ContentSubscribedLibraryProbe": { + "type": "object", + "properties": { + "subscription_info": { + "$ref": "#/definitions/ContentLibrarySubscriptionInfo", + "description": "The subscription info to be probed." + } + }, + "required": [ + "subscription_info" + ] + }, + "ContentSubscribedLibraryProbeResult": { + "type": "object", + "properties": { + "status": { + "description": "The status of probe result. This will be one of Status.", + "$ref": "#/definitions/ContentSubscribedLibraryProbeResultStatus" + }, + "ssl_thumbprint": { + "description": "The SSL thumbprint for the remote endpoint.\nA SSL thumbprint is only returned if the host is secured with SSL/TLS.", + "type": "string" + }, + "error_messages": { + "description": "If the probe result is in an error status, this field will contain the detailed error messages.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "status", + "error_messages" + ] + }, + "ContentSubscribedLibraryProbeResultStatus": { + "type": "string", + "description": "The SubscribedLibrary.ProbeResult.Status enumerated type defines the error status constants for the probe result.", + "enum": [ + "SUCCESS", + "INVALID_URL", + "TIMED_OUT", + "HOST_NOT_FOUND", + "RESOURCE_NOT_FOUND", + "INVALID_CREDENTIALS", + "CERTIFICATE_ERROR", + "UNKNOWN_ERROR" + ] + }, + "ContentSubscribedLibraryUpdate": { + "$ref": "#/definitions/ContentLibraryModel", + "description": "Specification of the new property values to set on the subscribed library." + }, + "ContentTrustedCertificatesCreate": { + "$ref": "#/definitions/ContentTrustedCertificatesCreateSpec", + "description": "Specification for the certificate to be added to content library trust store." + }, + "ContentTrustedCertificatesCreateSpec": { + "type": "object", + "properties": { + "cert_text": { + "description": "A certText is the certificate in Base64 encoded PEM format. The input must be a single line string with escape sequence for new-lines.", + "type": "string" + } + }, + "required": [ + "cert_text" + ] + }, + "ContentTrustedCertificatesInfo": { + "type": "object", + "properties": { + "cert_text": { + "description": "A certificate in Base64 encoding", + "type": "string" + } + }, + "required": [ + "cert_text" + ] + }, + "ContentTrustedCertificatesListResult": { + "type": "object", + "properties": { + "certificates": { + "description": "List of certificates.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentTrustedCertificatesSummary" + } + } + }, + "required": [ + "certificates" + ] + }, + "ContentTrustedCertificatesSummary": { + "type": "object", + "properties": { + "certificate": { + "description": "Unique identifier for the certificate. It is the TrustStore alias of the certificate. The alias is the SHA256 hash of the raw certificate data.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.TrustedCertificate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.TrustedCertificate.", + "type": "string" + }, + "cert_text": { + "description": "Certificate in Base64 encoded PEM format..", + "type": "string" + } + }, + "required": [ + "certificate", + "cert_text" + ] + }, + "ContentTypeInfo": { + "type": "object", + "properties": { + "description": { + "description": "A description of the type support offered by the plugin.", + "type": "string" + }, + "name": { + "description": "The name of the plugin which provides the type support.", + "type": "string" + }, + "type": { + "description": "The type which the plugin supports. \n To upload a library item of the type supported by the plugin, the ItemModel.type field of the item should be set to this value.", + "type": "string" + }, + "vendor": { + "description": "The name of the vendor who created the type support plugin.", + "type": "string" + }, + "version": { + "description": "The version number of the type support plugin.", + "type": "string" + }, + "supported_rules": { + "description": "List of security rules which can be applied to this item type.\nIf unset no security rule can be associated with this item type.", + "type": "array", + "items": { + "$ref": "#/definitions/ContentSecurityRuleType" + } + } + }, + "required": [ + "description", + "name", + "type", + "vendor", + "version" + ] + }, + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsConcurrentChange": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidElementConfiguration": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidElementType": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceBusy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "content.configuration_model": { + "type": "object", + "properties": { + "automatic_sync_enabled": { + "description": "Whether automatic synchronization is enabled. \n When automatic synchronization is enabled, the Content Library Service will automatically synchronize all subscribed libraries on a daily basis. Subscribed libraries with the SubscriptionInfo.automatic-sync-enabled flag turned on will be synchronized every hour between ConfigurationModel.automatic-sync-start-hour and ConfigurationModel.automatic-sync-stop-hour.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "automatic_sync_start_hour": { + "description": "The hour at which the automatic synchronization will start. This value is between 0 (midnight) and 23 inclusive.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "automatic_sync_stop_hour": { + "description": "The hour at which the automatic synchronization will stop. Any active synchronization operation will continue to run, however no new synchronization operations will be triggered after the stop hour. This value is between 0 (midnight) and 23 inclusive.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "maximum_concurrent_item_syncs": { + "description": "The maximum allowed number of library items to synchronize concurrently from remote libraries. This must be a positive number. The service may not be able to guarantee the requested concurrency if there is no available capacity. \n This setting is global across all subscribed libraries.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + } + } + }, + "content.configuration_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.configuration_model" + } + }, + "required": [ + "value" + ] + }, + "content.configuration_update": { + "type": "object", + "properties": { + "model": { + "$ref": "#/definitions/content.configuration_model", + "description": "The ConfigurationModel specifying the settings to update." + } + }, + "required": [ + "model" + ] + }, + "content.library.find_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.find_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the library to search. The name is case-insensitive. See LibraryModel.name.\nIf not specified any name will be searched.", + "type": "string" + }, + "type": { + "description": "Library type to search. See LibraryModel.type.\nIf not specified any library type will be searched.", + "$ref": "#/definitions/content.library_model.library_type" + } + } + }, + "content.library.item.cert_verification_status": { + "type": "string", + "description": "The CertVerificationStatus enumerated type defines the certificate verification status of a library item. Currently applicable only to ovf item type", + "enum": [ + "NOT_AVAILABLE", + "VERIFIED", + "INTERNAL", + "VERIFICATION_FAILURE", + "VERIFICATION_IN_PROGRESS", + "UNTRUSTED" + ] + }, + "content.library.item.certificate_verification_info": { + "type": "object", + "properties": { + "status": { + "description": "The certificate verification status of item.", + "$ref": "#/definitions/content.library.item.cert_verification_status" + }, + "cert_chain": { + "description": "A certificate in base64 encoding.\nCertificate chain is unset if the item not signed", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "status" + ] + }, + "content.library.item.changes.info": { + "type": "object", + "properties": { + "time": { + "description": "The date and time when the item content was changed.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "The user who made the content change.\nThis field will be unset if the user could not be determined.", + "type": "string" + }, + "message": { + "description": "The full message describing the content change.\nThis field will be unset if a message was not provided when the item content was changed.", + "type": "string" + } + }, + "required": [ + "time" + ] + }, + "content.library.item.changes.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.changes.summary" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.changes.summary": { + "type": "object", + "properties": { + "version": { + "description": "The version of the library item.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "time": { + "description": "The date and time when the item content was changed.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "The user who made the content change.\nThis field will be unset if the user could not be determined.", + "type": "string" + }, + "short_message": { + "description": "The short message describing the content change. The message is truncated to the first 80 characters or first non-leading newline character, whichever length is shorter.\nThis field will be unset if a message was not provided when the item content was changed.", + "type": "string" + } + }, + "required": [ + "version", + "time" + ] + }, + "content.library.item.changes_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.changes.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.copy_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.destination_spec": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + }, + "required": [ + "subscription" + ] + }, + "content.library.item.download_session.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.download_session.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.download_session_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated by the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + }, + "create_spec": { + "$ref": "#/definitions/content.library.item.download_session_model", + "description": "Specification for the new download session to be created." + } + }, + "required": [ + "create_spec" + ] + }, + "content.library.item.download_session_fail": { + "type": "object", + "properties": { + "client_error_message": { + "type": "string", + "description": "Client side error message. This can be useful in providing some extra details about the client side failure. Note that the message won't be translated to the user's locale." + } + }, + "required": [ + "client_error_message" + ] + }, + "content.library.item.download_session_keep_alive": { + "type": "object", + "properties": { + "progress": { + "type": "integer", + "format": "int64", + "description": "Optional update to the progress property of the session. If specified, the new progress should be greater then the current progress. See DownloadSessionModel.client-progress.\nIf not specified the progress is not updated." + } + } + }, + "content.library.item.download_session_model": { + "type": "object", + "properties": { + "id": { + "description": "The identifier of this download session.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.DownloadSession. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.DownloadSession.", + "type": "string" + }, + "library_item_id": { + "description": "The identifier of the library item whose content is being downloaded.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_item_content_version": { + "description": "The content version of the library item whose content is being downloaded. This value is the ItemModel.content-version at the time when the session is created for the library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "error_message": { + "description": "If the session is in the ERROR status this property will have more details about the error.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "client_progress": { + "description": "The progress that has been made with the download. This property is to be updated by the client during the download process to indicate the progress of its work in completing the download. The initial progress is 0 until updated by the client. The maximum value is 100, which indicates that the download is complete.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "integer", + "format": "int64" + }, + "state": { + "description": "The current state (State) of the download session.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/content.library.item.download_session_model.state" + }, + "expiration_time": { + "description": "Indicates the time after which the session will expire. The session is guaranteed not to expire before this time.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + } + } + }, + "content.library.item.download_session_model.state": { + "type": "string", + "description": "The state of the download session.", + "enum": [ + "ACTIVE", + "CANCELED", + "ERROR" + ] + }, + "content.library.item.download_session_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.download_session_model" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.downloadsession.file.endpoint_type": { + "type": "string", + "description": "The File.EndpointType enumerated type defines the types of endpoints used to download the file.", + "enum": [ + "HTTPS", + "DIRECT" + ] + }, + "content.library.item.downloadsession.file.info": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes.\nThis field may not be available immediately. It is guaranteed to be set when the client finishes downloading the file.", + "type": "integer", + "format": "int64" + }, + "bytes_transferred": { + "description": "The number of bytes that have been transferred by the server so far for making this file prepared for download. This value may stay at zero till the client starts downloading the file.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The preparation status (PrepareStatus) of the file.", + "$ref": "#/definitions/content.library.item.downloadsession.file.prepare_status" + }, + "download_endpoint": { + "description": "Endpoint at which the file is available for download. The value is valid only when the File.Info.status is PREPARED.\nThis field won't be set until the file status is PREPARED.", + "$ref": "#/definitions/content.library.item.transfer_endpoint" + }, + "checksum_info": { + "description": "The checksum information of the file. When the download is complete, you can retrieve the checksum from the File.get operation to verify the checksum for the downloaded file.\nThe checksum is always calculated for the downloaded file, but this field won't be set until the download is complete.", + "$ref": "#/definitions/content.library.item.file.checksum_info" + }, + "error_message": { + "description": "Error message for a failed preparation when the prepare status is ERROR.\nThis field won't be set unless there was an error with the file transfer.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "name", + "bytes_transferred", + "status" + ] + }, + "content.library.item.downloadsession.file.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.downloadsession.file.info" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.downloadsession.file.prepare_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.downloadsession.file.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.downloadsession.file.prepare_status": { + "type": "string", + "description": "The File.PrepareStatus enumerated type defines the state of the file in preparation for download.", + "enum": [ + "UNPREPARED", + "PREPARE_REQUESTED", + "PREPARING", + "PREPARED", + "ERROR" + ] + }, + "content.library.item.downloadsession.file_get": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file requested." + } + }, + "required": [ + "file_name" + ] + }, + "content.library.item.downloadsession.file_prepare": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file requested for download." + }, + "endpoint_type": { + "$ref": "#/definitions/content.library.item.downloadsession.file.endpoint_type", + "description": "Endpoint type request, one of EndpointType. This will determine the type of the File.Info.download-endpoint that is generated when the file is prepared. The DIRECT is only available to users who have the ContentLibrary.ReadStorage privilege.\nIf not specified the default is HTTPS." + } + }, + "required": [ + "file_name" + ] + }, + "content.library.item.downloadsession.file_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.downloadsession.file.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.file.checksum_algorithm": { + "type": "string", + "description": "The File.ChecksumAlgorithm enumerated type defines the valid checksum algorithms.", + "enum": [ + "SHA1", + "MD5", + "SHA256", + "SHA512" + ] + }, + "content.library.item.file.checksum_info": { + "type": "object", + "properties": { + "algorithm": { + "description": "The checksum algorithm (ChecksumAlgorithm) used to calculate the checksum.\nIf not specified the default checksum algorithm is SHA1.", + "$ref": "#/definitions/content.library.item.file.checksum_algorithm" + }, + "checksum": { + "description": "The checksum value calculated with File.ChecksumInfo.algorithm.", + "type": "string" + } + }, + "required": [ + "checksum" + ] + }, + "content.library.item.file.info": { + "type": "object", + "properties": { + "checksum_info": { + "description": "A checksum for validating the content of the file. \n This value can be used to verify that a transfer was completed without errors.\n\nA checksum cannot always be calculated, and the value will be unset if the file does not have content.", + "$ref": "#/definitions/content.library.item.file.checksum_info" + }, + "name": { + "description": "The name of the file. \n This value will be unique within the library item for each file. It cannot be an empty string.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes. The file size is the storage used and not the uploaded or provisioned size. For example, when uploading a disk to a datastore, the amount of storage that the disk consumes may be different from the disk file size. When the file is not cached, the size is 0.", + "type": "integer", + "format": "int64" + }, + "cached": { + "description": "Indicates whether the file is on disk or not.", + "type": "boolean" + }, + "version": { + "description": "The version of this file; incremented when a new copy of the file is uploaded.", + "type": "string" + } + }, + "required": [ + "name", + "size", + "cached", + "version" + ] + }, + "content.library.item.file.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.file.info" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.file_get": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the file in the library item whose information should be returned." + } + }, + "required": [ + "name" + ] + }, + "content.library.item.file_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.file.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.find_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.find_spec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the library item. The name is case-insensitive. See ItemModel.name.\nIf not specified all library item names are searched.", + "type": "string" + }, + "library_id": { + "description": "The identifier of the library containing the item. See ItemModel.library-id.\nIf not specified all libraries are searched.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "source_id": { + "description": "The identifier of the library item as reported by the publisher. See ItemModel.source-id.\nIf not specified all library items are searched.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "type": { + "description": "The type of the library item. The type is case-insensitive. See ItemModel.type.\nIf not specified all types are searched.", + "type": "string" + }, + "cached": { + "description": "Whether the item is cached. Possible values are 'true' or 'false'. See ItemModel.cached.\nIf not specified all library items are searched.", + "type": "boolean" + } + } + }, + "content.library.item.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.storage.info": { + "type": "object", + "properties": { + "storage_backing": { + "description": "The storage backing on which this object resides. This might not be the same as the default storage backing associated with the library.", + "$ref": "#/definitions/content.library.storage_backing" + }, + "storage_uris": { + "description": "URIs that identify the file on the storage backing. \n These URIs may be specific to the backing and may need interpretation by the client. A client that understands a URI scheme in this list may use that URI to directly access the file on the storage backing. This can provide high-performance support for file manipulation.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "checksum_info": { + "description": "A checksum for validating the content of the file. \n This value can be used to verify that a transfer was completed without errors.\n\nA checksum cannot always be calculated, and the value will be unset if the file does not have content.", + "$ref": "#/definitions/content.library.item.file.checksum_info" + }, + "name": { + "description": "The name of the file. \n This value will be unique within the library item for each file. It cannot be an empty string.", + "type": "string" + }, + "size": { + "description": "The file size, in bytes. The file size is the storage used and not the uploaded or provisioned size. For example, when uploading a disk to a datastore, the amount of storage that the disk consumes may be different from the disk file size. When the file is not cached, the size is 0.", + "type": "integer", + "format": "int64" + }, + "cached": { + "description": "Indicates whether the file is on disk or not.", + "type": "boolean" + }, + "version": { + "description": "The version of this file; incremented when a new copy of the file is uploaded.", + "type": "string" + } + }, + "required": [ + "storage_backing", + "storage_uris", + "name", + "size", + "cached", + "version" + ] + }, + "content.library.item.storage.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.storage.info" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.storage_get": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file for which the storage information should be listed." + } + }, + "required": [ + "file_name" + ] + }, + "content.library.item.storage_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.storage.info" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.transfer_endpoint": { + "type": "object", + "properties": { + "uri": { + "description": "Transfer endpoint URI. The supported URI schemes are: http, https, and ds. \n An endpoint URI with the ds scheme specifies the location of the file on the datastore. The format of the datastore URI is: \n\n - ds:///vmfs/volumes/uuid/path\n \n When the transfer endpoint is a datastore location, the server can import the file directly from the storage backing without the overhead of streaming over HTTP.", + "type": "string", + "format": "uri" + }, + "ssl_certificate_thumbprint": { + "description": "Thumbprint of the expected SSL certificate for this endpoint. Only used for HTTPS connections. The thumbprint is the SHA-1 hash of the DER encoding of the remote endpoint's SSL certificate. If set, the remote endpoint's SSL certificate is only accepted if it matches this thumbprint, and no other certificate validation is performed. The specified sslCertificateThumbprint will not be checked for SSL certificate validation if {TransferEndpoint#sslCertificate} is also set.\nIf unset, standard certificate validation is performed.", + "type": "string" + } + }, + "required": [ + "uri" + ] + }, + "content.library.item.transfer_status": { + "type": "string", + "description": "The TransferStatus enumerated type defines the transfer state of a file.", + "enum": [ + "WAITING_FOR_TRANSFER", + "TRANSFERRING", + "READY", + "VALIDATING", + "ERROR" + ] + }, + "content.library.item.update_session.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.update_session.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.update_session_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "Unique token generated by the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + }, + "create_spec": { + "$ref": "#/definitions/content.library.item.update_session_model", + "description": "Specification for the new update session to be created." + } + }, + "required": [ + "create_spec" + ] + }, + "content.library.item.update_session_fail": { + "type": "object", + "properties": { + "client_error_message": { + "type": "string", + "description": "Client side error message. This can be useful in providing some extra details about the client side failure. Note that the message won't be translated to the user's locale." + } + }, + "required": [ + "client_error_message" + ] + }, + "content.library.item.update_session_keep_alive": { + "type": "object", + "properties": { + "client_progress": { + "type": "integer", + "format": "int64", + "description": "Optional update to the progress property of the session. If specified, the new progress should be greater then the current progress. See UpdateSessionModel.client-progress.\nIf not specified the progress is not updated." + } + } + }, + "content.library.item.update_session_model": { + "type": "object", + "properties": { + "id": { + "description": "The identifier of this update session.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.UpdateSession. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.UpdateSession.", + "type": "string" + }, + "library_item_id": { + "description": "The identifier of the library item to which content will be uploaded or removed.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_item_content_version": { + "description": "The content version of the library item whose content is being modified. This value is the ItemModel.content-version at the time when the session is created for the library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "error_message": { + "description": "If the session is in the ERROR status this property will have more details about the error.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "client_progress": { + "description": "The progress that has been made with the upload. This property is to be updated by the client during the upload process to indicate the progress of its work in completing the upload. The initial progress is 0 until updated by the client. The maximum value is 100, which indicates that the update is complete.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "integer", + "format": "int64" + }, + "state": { + "description": "The current state (State) of the update session.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/content.library.item.update_session_model.state" + }, + "expiration_time": { + "description": "Indicates the time after which the session will expire. The session is guaranteed not to expire earlier than this time.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "preview_info": { + "description": "A preview of the files currently being uploaded in the session. This property will be set only when the session is in the ACTIVE.\nThis field is optional and it is only relevant when the value of UpdateSessionModel.state is ACTIVE.", + "$ref": "#/definitions/content.library.item.updatesession.preview_info" + }, + "warning_behavior": { + "description": "Indicates the update session behavior if warnings are raised in the session preview. Any warning which is raised by session preview but not ignored by the client will, by default, fail the update session.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.updatesession.warning_behavior" + } + } + } + }, + "content.library.item.update_session_model.state": { + "type": "string", + "description": "The state of an update session.", + "enum": [ + "ACTIVE", + "DONE", + "ERROR", + "CANCELED" + ] + }, + "content.library.item.update_session_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.update_session_model" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.update_session_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/content.library.item.update_session_model", + "description": "Specification for the new property values to be set on the update session." + } + }, + "required": [ + "update_spec" + ] + }, + "content.library.item.updatesession.certificate_info": { + "type": "object", + "properties": { + "issuer": { + "description": "Certificate issuer. For example: /C=US/ST=California/L=Palo Alto/O=VMware, Inc.", + "type": "string" + }, + "subject": { + "description": "Certificate subject. For example: C=US/ST=Massachusetts/L=Hopkinton/O=EMC Corporation/OU=EMC Avamar/CN=EMC Corporation.", + "type": "string" + }, + "self_signed": { + "description": "Whether the certificate is self-signed.", + "type": "boolean" + }, + "x509": { + "description": "The X509 representation of the certificate.", + "type": "string" + } + }, + "required": [ + "issuer", + "subject", + "self_signed", + "x509" + ] + }, + "content.library.item.updatesession.file.add_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.updatesession.file.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.updatesession.file.add_spec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file being uploaded.", + "type": "string" + }, + "source_type": { + "description": "The source type (SourceType) from which the file content will be retrieved.", + "$ref": "#/definitions/content.library.item.updatesession.file.source_type" + }, + "source_endpoint": { + "description": "Location from which the Content Library Service will fetch the file, rather than requiring a client to upload the file.\nThis field is optional and it is only relevant when the value of File.AddSpec.source-type is PULL.", + "$ref": "#/definitions/content.library.item.transfer_endpoint" + }, + "size": { + "description": "The file size, in bytes.\nIf unset, the server will not verify it received the correct size.", + "type": "integer", + "format": "int64" + }, + "checksum_info": { + "description": "The checksum of the file. If specified, the server will verify the checksum once the file is received. If there is a mismatch, the upload will fail. For ova files, this value should not be set.\nIf unset, the server will not verify the checksum.", + "$ref": "#/definitions/content.library.item.file.checksum_info" + } + }, + "required": [ + "name", + "source_type" + ] + }, + "content.library.item.updatesession.file.info": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "source_type": { + "description": "The source type (SourceType) from which the file is being retrieved. This may be NONE if the file is not being changed.", + "$ref": "#/definitions/content.library.item.updatesession.file.source_type" + }, + "size": { + "description": "The file size, in bytes as received by the server. This field is guaranteed to be set when the server has completely received the file.\nThis field won't be set until the file status is READY.", + "type": "integer", + "format": "int64" + }, + "checksum_info": { + "description": "The checksum information of the file received by the server.\nIf unset, the server does not verify the checksum.", + "$ref": "#/definitions/content.library.item.file.checksum_info" + }, + "source_endpoint": { + "description": "A source endpoint from which to retrieve the file.\nThis field is optional and it is only relevant when the value of File.Info.source-type is PULL.", + "$ref": "#/definitions/content.library.item.transfer_endpoint" + }, + "upload_endpoint": { + "description": "An upload endpoint to which the client can push the content.\nThis field is optional and it is only relevant when the value of File.Info.source-type is PUSH.", + "$ref": "#/definitions/content.library.item.transfer_endpoint" + }, + "bytes_transferred": { + "description": "The number of bytes of this file that have been received by the server.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The transfer status (TransferStatus) of this file.", + "$ref": "#/definitions/content.library.item.transfer_status" + }, + "error_message": { + "description": "Details about the transfer error.\nAn error message is set if the status is ERROR.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "keep_in_storage": { + "description": "Whether or not the file will be kept in storage upon update session completion. The flag is true for most files, and false for metadata files such as manifest and certificate file of update session with library item type OVF. Any file with File.Info.keep-in-storage set to false will not show up in the list of files returned from File.list upon update session completion.\nIf unset, the file will be kept in storage upon update session completion.", + "type": "boolean" + } + }, + "required": [ + "name", + "source_type", + "bytes_transferred", + "status" + ] + }, + "content.library.item.updatesession.file.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.updatesession.file.info" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.item.updatesession.file.source_type": { + "type": "string", + "description": "The File.SourceType enumerated type defines how the file content is retrieved.", + "enum": [ + "NONE", + "PUSH", + "PULL" + ] + }, + "content.library.item.updatesession.file.validate_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.updatesession.file.validation_result" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.updatesession.file.validation_error": { + "type": "object", + "properties": { + "name": { + "description": "The name of the file.", + "type": "string" + }, + "error_message": { + "description": "A message indicating why the file was considered invalid.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "name", + "error_message" + ] + }, + "content.library.item.updatesession.file.validation_result": { + "type": "object", + "properties": { + "has_errors": { + "description": "Whether the validation was succesful or not. In case of errors, the File.ValidationResult.missing-files and File.ValidationResult.invalid-files will contain at least one entry.", + "type": "boolean" + }, + "missing_files": { + "description": "A set containing the names of the files that are required but the client hasn't added.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "invalid_files": { + "description": "A list containing the files that have been identified as invalid and details about the error.", + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.updatesession.file.validation_error" + } + } + }, + "required": [ + "has_errors", + "missing_files", + "invalid_files" + ] + }, + "content.library.item.updatesession.file_add": { + "type": "object", + "properties": { + "file_spec": { + "$ref": "#/definitions/content.library.item.updatesession.file.add_spec", + "description": "Specification for the file that needs to be added or updated. This includes whether the client wants to push the content or have the server pull it." + } + }, + "required": [ + "file_spec" + ] + }, + "content.library.item.updatesession.file_get": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file." + } + }, + "required": [ + "file_name" + ] + }, + "content.library.item.updatesession.file_remove": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file to be removed." + } + }, + "required": [ + "file_name" + ] + }, + "content.library.item.updatesession.file_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item.updatesession.file.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.item.updatesession.preview_info": { + "type": "object", + "properties": { + "state": { + "description": "Indicates the state of the preview of the update session.", + "$ref": "#/definitions/content.library.item.updatesession.preview_info.state" + }, + "certificate_info": { + "description": "The certificate information of the signed update session content.\nThis field is unset if the update session content is not signed.", + "$ref": "#/definitions/content.library.item.updatesession.certificate_info" + }, + "warnings": { + "description": "The list of warnings raised for this update session. Any warning which is not ignored by the client will, by default, fail the update session during session complete operation.\nThis field is optional and it is only relevant when the value of PreviewInfo.state is AVAILABLE.", + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.updatesession.preview_warning_info" + } + }, + "cert_chain": { + "description": "Certificate chain in base64 format.\nThis field is unset if the update session content is not signed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "state" + ] + }, + "content.library.item.updatesession.preview_info.state": { + "type": "string", + "description": "The PreviewInfo.State enumerated type defines the state of the update session's preview.", + "enum": [ + "UNAVAILABLE", + "NOT_APPLICABLE", + "PREPARING", + "AVAILABLE" + ] + }, + "content.library.item.updatesession.preview_warning_info": { + "type": "object", + "properties": { + "type": { + "description": "The warning type raised during preview of the update session.", + "$ref": "#/definitions/content.library.item.updatesession.warning_type" + }, + "message": { + "description": "The message specifying more details about the warning.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "ignored": { + "description": "Indicates if this warning will be ignored during session complete operation.", + "type": "boolean" + } + }, + "required": [ + "type", + "message", + "ignored" + ] + }, + "content.library.item.updatesession.warning_behavior": { + "type": "object", + "properties": { + "type": { + "description": "The warning type which may be raised during the update session.", + "$ref": "#/definitions/content.library.item.updatesession.warning_type" + }, + "ignored": { + "description": "Indicates if this warning will be ignored during session complete operation.", + "type": "boolean" + } + }, + "required": [ + "type", + "ignored" + ] + }, + "content.library.item.updatesession.warning_type": { + "type": "string", + "description": "The WarningType enumerated type defines the warnings which can be raised during the update session.", + "enum": [ + "SELF_SIGNED_CERTIFICATE", + "EXPIRED_CERTIFICATE", + "NOT_YET_VALID_CERTIFICATE", + "UNTRUSTED_CERTIFICATE" + ] + }, + "content.library.item_copy": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated on the client for each copy request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent copy.\nIf not specified copy is not idempotent." + }, + "destination_create_spec": { + "$ref": "#/definitions/content.library.item_model", + "description": "Specification for the new library item to be created." + } + }, + "required": [ + "destination_create_spec" + ] + }, + "content.library.item_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + }, + "create_spec": { + "$ref": "#/definitions/content.library.item_model", + "description": "Specification that defines the properties of the new library item." + } + }, + "required": [ + "create_spec" + ] + }, + "content.library.item_find": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/content.library.item.find_spec", + "description": "Specification describing what properties to filter on." + } + }, + "required": [ + "spec" + ] + }, + "content.library.item_model": { + "type": "object", + "properties": { + "id": { + "description": "A unique identifier for this library item.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "library_id": { + "description": "The identifier of the LibraryModel to which this item belongs.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "content_version": { + "description": "The latest version of the file content list of this library item.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when this library item was created.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "A human-readable description for this library item.\nThis field is optional for the create operation. Leaving it unset during creation will result in an empty string value. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that the description remains unchanged.", + "type": "string" + }, + "last_modified_time": { + "description": "The date and time when the metadata for this library item was last changed. \n This field is affected by changes to the properties or file content of this item. It is not modified by changes to the tags of the item, or by changes to the library which owns this item.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "last_sync_time": { + "description": "The date and time when this library item was last synchronized. \n This field is updated every time a synchronization is triggered on the library item, including when a synchronization is triggered on the library to which this item belongs. The value is unset for a library item that belongs to a local library.\n\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "metadata_version": { + "description": "A version number for the metadata of this library item. \n This value is incremented with each change to the metadata of this item. Changes to name, description, and so on will increment this value. The value is not incremented by changes to the content or tags of the item or the library which owns it.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string" + }, + "name": { + "description": "A human-readable name for this library item. \n The name may not be unset or an empty string. The name does not have to be unique, even within the same library.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "cached": { + "description": "The status that indicates whether the library item is on disk or not. The library item is cached when all its files are on disk.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "boolean" + }, + "size": { + "description": "The library item size, in bytes. The size is the sum of the size used on the storage backing for all the files in the item. When the library item is not cached, the size is 0.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "integer", + "format": "int64" + }, + "type": { + "description": "An optional type identifier which indicates the type adapter plugin to use. \n This field may be set to a non-empty string value that corresponds to an identifier supported by a type adapter plugin present in the Content Library Service. A type adapter plugin, if present for the specified type, can provide additional information and services around the item content. A type adapter can guide the upload process by creating file entries that are in need of being uploaded to complete an item. \n\n The types and plugins supported by the Content Library Service can be queried using the Type service.\n\nThis field is optional for the create and update operations. During creation, if the type is left unspecified, or if the type is specified but does not have a corresponding type support plugin, then the type of the library item is considered to be generic and all data is treated as generic files. During update, if the type is not specified, then it is not updated.", + "type": "string" + }, + "version": { + "description": "A version number that is updated on metadata changes. This value is used to validate update requests to provide optimistic concurrency of changes. \n This value represents a number that is incremented every time library item properties, such as name or description, are changed. It is not incremented by changes to the file content of the library item, including adding or removing files. It is also not affected by tagging the library item.\n\nThis field is not used for the create operation. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that you do not need to detect concurrent updates.", + "type": "string" + }, + "source_id": { + "description": "The identifier of the ItemModel to which this item is synchronized to if the item belongs to a subscribed library. The value is unset for a library item that belongs to a local library.\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "security_compliance": { + "description": "Shows the security compliance of ItemModel.\nThis field is not used for the create and update operations. It will be present in the result of a get or list operation.", + "type": "boolean" + }, + "certificate_verification_info": { + "description": "Certificate verification status and ItemModel's signing certificate . Currently, this field is available only in following cases 1. This item belongs to a secure content library 2. The item is of type ovf.\nThis field is not used for the create and update operations. It may be present in the result of a get or list operation.", + "$ref": "#/definitions/content.library.item.certificate_verification_info" + } + } + }, + "content.library.item_publish": { + "type": "object", + "properties": { + "force_sync_content": { + "type": "boolean", + "description": "Whether to synchronize file content as well as metadata. This parameter applies only if the subscription is on-demand." + }, + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.item.destination_spec" + }, + "description": "The list of subscriptions to publish this library item to." + } + }, + "required": [ + "force_sync_content" + ] + }, + "content.library.item_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.item_model" + } + }, + "required": [ + "value" + ] + }, + "content.library.item_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/content.library.item_model", + "description": "Specification of the properties to set." + } + }, + "required": [ + "update_spec" + ] + }, + "content.library.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.optimization_info": { + "type": "object", + "properties": { + "optimize_remote_publishing": { + "description": "If set to true then library would be optimized for remote publishing. \n Turn it on if remote publishing is dominant use case for this library. Remote publishing means here that publisher and subscribers are not the part of the same Vcenter SSO domain. \n\n Any optimizations could be done as result of turning on this optimization during library creation. For example, library content could be stored in different format but optimizations are not limited to just storage format. \n\n Note, that value of this toggle could be set only during creation of the library and you would need to migrate your library in case you need to change this value (optimize the library for different use case).\n\nThis field is optional for the create operation. If not specified for the create, the default is for the library to not be optmized for specific use case. It is not used for the update operation.", + "type": "boolean" + } + } + }, + "content.library.publish_info": { + "type": "object", + "properties": { + "authentication_method": { + "description": "Indicates how a subscribed library should authenticate (AuthenticationMethod) to the published library endpoint.\nThis field is required for the LocalLibrary.create operation. It is optional for the LocalLibrary.update operation, and if unset the value will not be changed. When the existing authentication method is BASIC and authentication is being turned off by updating this field to NONE, then the PublishInfo.current-password field is required. This field will always be present in the results of the LocalLibrary.get operation.", + "$ref": "#/definitions/content.library.publish_info.authentication_method" + }, + "published": { + "description": "Whether the local library is published.\nThis field is required for the LocalLibrary.create operation. It is optional for the LocalLibrary.update operation, and if unset the value will not be changed. When the existing authentication method is BASIC and the local library is published, the PublishInfo.current-password field is required before turning off publishing. This field will always be present in the results of the LocalLibrary.get operation.", + "type": "boolean" + }, + "publish_url": { + "description": "The URL to which the library metadata is published by the Content Library Service. \n This value can be used to set the SubscriptionInfo.subscription-url property when creating a subscribed library.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "uri" + }, + "user_name": { + "description": "The username to require for authentication.\nThis field is optional for the LocalLibrary.create and LocalLibrary.update operations. When the authentication method is NONE, the username can be left unset. When the authentication method is BASIC, the username is ignored in the current release. It defaults to \"vcsp\". It is preferable to leave this unset. If specified, it must be set to \"vcsp\".", + "type": "string" + }, + "password": { + "description": "The new password to require for authentication.\nThis field is optional for the LocalLibrary.create operation. When the authentication method is NONE, the password can be left unset. When the authentication method is BASIC, the password should be a non-empty string. This field is optional for the LocalLibrary.update operation. Leaving it unset during update indicates that the password is not changed. When the password is changed, the PublishInfo.current-password field is required. This field is not used for the LocalLibrary.get operation.", + "type": "string", + "format": "password" + }, + "current_password": { + "description": "The current password to verify. This field is available starting in vSphere 6.7.\nThis field is unused for the LocalLibrary.create operation. This field is optional for the LocalLibrary.update operation. When the existing authentication method is NONE, the current password can be left unset. When the existing authentication method is BASIC, the current password is verified before applying the new PublishInfo.password, turning off authentication, or unpublishing the library. This field is not used for the LocalLibrary.get operation.", + "type": "string", + "format": "password" + }, + "persist_json_enabled": { + "description": "Whether library and library item metadata are persisted in the storage backing as JSON files. This flag only applies if the local library is published. \n Enabling JSON persistence allows you to synchronize a subscribed library manually instead of over HTTP. You copy the local library content and metadata to another storage backing manually and then create a subscribed library referencing the location of the library JSON file in the SubscriptionInfo.subscription-url. When the subscribed library's storage backing matches the subscription URL, files do not need to be copied to the subscribed library. \n\n For a library backed by a datastore, the library JSON file will be stored at the path contentlib-{library_id}/lib.json on the datastore. \n\n For a library backed by a remote file system, the library JSON file will be stored at {library_id}/lib.json in the remote file system path.\n\nThis field is optional for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + } + } + }, + "content.library.publish_info.authentication_method": { + "type": "string", + "description": "The PublishInfo.AuthenticationMethod enumerated type indicates how a subscribed library should authenticate to the published library endpoint.", + "enum": [ + "BASIC", + "NONE" + ] + }, + "content.library.source_info": { + "type": "object", + "properties": { + "source_library": { + "description": "Identifier of the published library.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + } + }, + "content.library.storage_backing": { + "type": "object", + "properties": { + "type": { + "description": "Type (Type) of StorageBacking.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/content.library.storage_backing.type" + }, + "datastore_id": { + "description": "Identifier of the datastore used to store the content in the library.\nThis field is optional and it is only relevant when the value of StorageBacking.type is DATASTORE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_uri": { + "description": "URI identifying the location used to store the content in the library. \n The following URI formats are supported: \n\n vSphere 6.5 \n\n - nfs://server/path?version=4 (for vCenter Server Appliance only) - Specifies an NFS Version 4 server.\n - nfs://server/path (for vCenter Server Appliance only) - Specifies an NFS Version 3 server. The nfs://server:/path format is also supported.\n - smb://server/path - Specifies an SMB server or Windows share.\n \n vSphere 6.0 Update 1 \n\n - nfs://server:/path (for vCenter Server Appliance only)\n - file://unc-server/path (for vCenter Server for Windows only)\n - file:///mount/point (for vCenter Server Appliance only) - Local file URIs are supported only when the path is a local mount point for an NFS file system. Use of file URIs is strongly discouraged. Instead, use an NFS URI to specify the remote file system.\n \n vSphere 6.0 \n\n - nfs://server:/path (for vCenter Server Appliance only)\n - file://unc-server/path (for vCenter Server for Windows only)\n - file:///path - Local file URIs are supported but strongly discouraged because it may interfere with the performance of vCenter Server.\n \nThis field is optional and it is only relevant when the value of StorageBacking.type is OTHER.", + "type": "string", + "format": "uri" + } + } + }, + "content.library.storage_backing.type": { + "type": "string", + "description": "The StorageBacking.Type enumerated type specifies the type of the StorageBacking.", + "enum": [ + "DATASTORE", + "OTHER" + ] + }, + "content.library.subscribed_item_sync": { + "type": "object", + "properties": { + "force_sync_content": { + "type": "boolean", + "description": "Whether to synchronize file content as well as metadata. This parameter applies only if the subscription is on-demand." + }, + "sync_optional_files": { + "type": "boolean", + "description": "Whether to synchronize optional files. This parameter applies to both types of subscriptions on-demand as well as sync-immediately.\nThis parameter is optional because it was added in a newer version than its parent node." + } + }, + "required": [ + "force_sync_content" + ] + }, + "content.library.subscription_info": { + "type": "object", + "properties": { + "authentication_method": { + "description": "Indicate how the subscribed library should authenticate (AuthenticationMethod) with the published library endpoint.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/content.library.subscription_info.authentication_method" + }, + "automatic_sync_enabled": { + "description": "Whether the library should participate in automatic library synchronization. In order for automatic synchronization to happen, the global ConfigurationModel.automatic-sync-enabled option must also be true. The subscription is still active even when automatic synchronization is turned off, but synchronization is only activated with an explicit call to SubscribedLibrary.sync or SubscribedItem.sync. In other words, manual synchronization is still available even when automatic synchronization is disabled.\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "on_demand": { + "description": "Indicates whether a library item's content will be synchronized only on demand. \n If this is set to true, then the library item's metadata will be synchronized but the item's content (its files) will not be synchronized. The Content Library Service will synchronize the content upon request only. This can cause the first use of the content to have a noticeable delay. \n\n Items without synchronized content can be forcefully synchronized in advance using the SubscribedItem.sync call with forceSyncContent set to true. Once content has been synchronized, the content can removed with the SubscribedItem.evict call. \n\n If this value is set to false, all content will be synchronized in advance.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "boolean" + }, + "password": { + "description": "The password to use when authenticating. \n The password must be set when using a password-based authentication method; empty strings are not allowed.\n\nThis field is optional for the create operation. It will not be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string", + "format": "password" + }, + "ssl_thumbprint": { + "description": "An optional SHA-1 hash of the SSL certificate for the remote endpoint. \n If this value is defined the SSL certificate will be verified by comparing it to the SSL thumbprint. The SSL certificate must verify against the thumbprint. When specified, the standard certificate chain validation behavior is not used. The certificate chain is validated normally if this value is unset. The specified sslThumbprint will not be checked for SSL certificate validation if {SubscriptionInfo#sslCertificate} is also set.\n\nThis field is optional for the create operation. It will not be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "subscription_url": { + "description": "The URL of the endpoint where the metadata for the remotely published library is being served. \n This URL can be the PublishInfo.publish-url of the published library (for example, https://server/path/lib.json). \n\n If the source content comes from a published library with PublishInfo.persist-json-enabled, the subscription URL can be a URL pointing to the library JSON file on a datastore or remote file system. The supported formats are: \n\n vSphere 6.5 \n\n - ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)\n - nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter Server Appliance)\n - nfs://server/path/mylibrary/lib.json?version=4 (for NFSv4 server on vCenter Server Appliance) \n - smb://server/path/mylibrary/lib.json (for SMB server)\n \n vSphere 6.0 \n\n - file://server/mylibrary/lib.json (for UNC server on vCenter Server for Windows)\n - file:///path/mylibrary/lib.json (for local file system)\n \n When you specify a DS subscription URL, the datastore must be on the same vCenter Server as the subscribed library. When you specify an NFS or SMB subscription URL, the StorageBacking.storage-uri of the subscribed library must be on the same remote file server and should share a common parent path with the subscription URL.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string", + "format": "uri" + }, + "user_name": { + "description": "The username to use when authenticating. \n The username must be set when using a password-based authentication method. Empty strings are allowed for usernames.\n\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "source_info": { + "description": "Information about the source published library. This field will be set for a subscribed library which is associated with a subscription of the published library.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/content.library.source_info" + } + } + }, + "content.library.subscription_info.authentication_method": { + "type": "string", + "description": "Indicate how the subscribed library should authenticate with the published library endpoint.", + "enum": [ + "BASIC", + "NONE" + ] + }, + "content.library.subscriptions.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.library.subscriptions.create_spec": { + "type": "object", + "properties": { + "subscribed_library": { + "description": "Specification for the subscribed library to be associated with the subscription.", + "$ref": "#/definitions/content.library.subscriptions.create_spec_subscribed_library" + } + }, + "required": [ + "subscribed_library" + ] + }, + "content.library.subscriptions.create_spec_new_subscribed_library": { + "type": "object", + "properties": { + "name": { + "description": "Name of the subscribed library.", + "type": "string" + }, + "description": { + "description": "Description of the subscribed library.\nIf unset, the description will be an empty string.", + "type": "string" + }, + "storage_backings": { + "description": "The list of default storage backings for this library. \n The list must contain exactly one storage backing. Multiple default storage locations are not currently supported but may become supported in future releases.", + "type": "array", + "items": { + "$ref": "#/definitions/content.library.storage_backing" + } + }, + "automatic_sync_enabled": { + "description": "Specifies whether the library should participate in automatic library synchronization.", + "type": "boolean" + }, + "on_demand": { + "description": "Specifies whether a library item's content will be synchronized only on demand.", + "type": "boolean" + } + }, + "required": [ + "name", + "storage_backings", + "automatic_sync_enabled", + "on_demand" + ] + }, + "content.library.subscriptions.create_spec_placement": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable folder for the virtual machine template; if a folder cannot be chosen, publishing a virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.cluster. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.host are both specified, Subscriptions.CreateSpecPlacement.host must be a member of Subscriptions.CreateSpecPlacement.cluster.\nIf Subscriptions.CreateSpecPlacement.resource-pool or Subscriptions.CreateSpecPlacement.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.host. If Subscriptions.CreateSpecPlacement.cluster and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.cluster.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, publish of virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.resource-pool are both specified, Subscriptions.CreateSpecPlacement.resource-pool must belong to Subscriptions.CreateSpecPlacement.host. If Subscriptions.CreateSpecPlacement.host and Subscriptions.CreateSpecPlacement.cluster are both specified, Subscriptions.CreateSpecPlacement.host must be a member of Subscriptions.CreateSpecPlacement.cluster.\nIf this is unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, publishing the virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nIf unset, the virtual Ethernet adapters will not be backed by a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "content.library.subscriptions.create_spec_subscribed_library": { + "type": "object", + "properties": { + "target": { + "description": "Specifies whether the target subscribed library should be newly created or an existing subscribed library should be used.", + "$ref": "#/definitions/content.library.subscriptions.create_spec_subscribed_library.target" + }, + "new_subscribed_library": { + "description": "Specification for creating a new subscribed library associated with the subscription.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.target is CREATE_NEW.", + "$ref": "#/definitions/content.library.subscriptions.create_spec_new_subscribed_library" + }, + "subscribed_library": { + "description": "Identifier of the existing subscribed library to associate with the subscription. Only the subscribed libraries for which SubscriptionInfo.subscription-url property is set to the PublishInfo.publish-url of the published library can be associated with the subscription.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.target is USE_EXISTING.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "location": { + "description": "Location of the subscribed library relative to the published library.", + "$ref": "#/definitions/content.library.subscriptions.location" + }, + "vcenter": { + "description": "Specification for the subscribed library's vCenter Server instance.\nThis field is optional and it is only relevant when the value of Subscriptions.CreateSpecSubscribedLibrary.location is REMOTE.", + "$ref": "#/definitions/content.library.subscriptions.create_spec_vcenter" + }, + "placement": { + "description": "Placement specification for the virtual machine template library items on the subscribed library.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable placement specification for the virtual machine template items; if a placement specification cannot be chosen, publish of virtual machine template items will fail.", + "$ref": "#/definitions/content.library.subscriptions.create_spec_placement" + } + }, + "required": [ + "target", + "location" + ] + }, + "content.library.subscriptions.create_spec_subscribed_library.target": { + "type": "string", + "description": "The Subscriptions.CreateSpecSubscribedLibrary.Target enumerated type defines the options related to the target subscribed library which will be associated with the subscription.", + "enum": [ + "CREATE_NEW", + "USE_EXISTING" + ] + }, + "content.library.subscriptions.create_spec_vcenter": { + "type": "object", + "properties": { + "hostname": { + "description": "The hostname of the subscribed library's vCenter Server.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "hostname" + ] + }, + "content.library.subscriptions.info": { + "type": "object", + "properties": { + "subscribed_library": { + "description": "Identifier of the subscribed library associated with the subscription.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscribed_library_name": { + "description": "Name of the subscribed library associated with the subscription.", + "type": "string" + }, + "subscribed_library_location": { + "description": "Location of the subscribed library relative to the published library.", + "$ref": "#/definitions/content.library.subscriptions.location" + }, + "subscribed_library_vcenter": { + "description": "Information about the vCenter Server instance where the subscribed library exists.\nThis field is optional and it is only relevant when the value of Subscriptions.Info.subscribed-library-location is REMOTE.", + "$ref": "#/definitions/content.library.subscriptions.vcenter_info" + }, + "subscribed_library_placement": { + "description": "Placement information about the subscribed library's virtual machine template items.", + "$ref": "#/definitions/content.library.subscriptions.placement_info" + } + }, + "required": [ + "subscribed_library", + "subscribed_library_name", + "subscribed_library_location", + "subscribed_library_placement" + ] + }, + "content.library.subscriptions.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.library.subscriptions.summary" + } + } + }, + "required": [ + "value" + ] + }, + "content.library.subscriptions.location": { + "type": "string", + "description": "The Subscriptions.Location enumerated type defines the location of subscribed library relative to the published library.", + "enum": [ + "LOCAL", + "REMOTE" + ] + }, + "content.library.subscriptions.placement_info": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a virtual machine folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nThe field will be unset if the subscribed library associated with the subscription does not have a resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.PlacementInfo.host and Subscriptions.PlacementInfo.resource-pool are both specified, Subscriptions.PlacementInfo.resource-pool must belong to Subscriptions.PlacementInfo.host. If Subscriptions.PlacementInfo.host and Subscriptions.PlacementInfo.cluster are both specified, Subscriptions.PlacementInfo.host must be a member of Subscriptions.PlacementInfo.cluster.\nThe field will be unset if the subscribed library associated with the subscription does not have a host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nThe field will be unset if the subscribed library associated with the subscription does not have a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "content.library.subscriptions.summary": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + }, + "subscribed_library": { + "description": "Identifier of the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "subscribed_library_name": { + "description": "Name of the subscribed library.", + "type": "string" + }, + "subscribed_library_vcenter_hostname": { + "description": "Hostname of the vCenter instance where the subscribed library exists.\nThis field is unset if the subscribed library is on the same vCenter Server instance as the published library.", + "type": "string" + } + }, + "required": [ + "subscription", + "subscribed_library", + "subscribed_library_name" + ] + }, + "content.library.subscriptions.update_spec": { + "type": "object", + "properties": { + "subscribed_library_vcenter": { + "description": "Specification for the subscribed library's vCenter Server instance.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/content.library.subscriptions.update_spec_vcenter" + }, + "subscribed_library_placement": { + "description": "Placement specification for the virtual machine template items of the subscribed library. Updating this information will only affect new or updated items, existing items will not be moved. The entire placement configuration of the subscribed library will replaced by the new specification.\nIf unset, the placement configuration of the subscribed library will be unchanged.", + "$ref": "#/definitions/content.library.subscriptions.update_spec_placement" + } + } + }, + "content.library.subscriptions.update_spec_placement": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable folder for the virtual machine template; if a folder cannot be chosen, publishing a virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If Subscriptions.UpdateSpecPlacement.cluster and Subscriptions.UpdateSpecPlacement.resource-pool are both specified, Subscriptions.UpdateSpecPlacement.resource-pool must belong to Subscriptions.UpdateSpecPlacement.cluster. If Subscriptions.UpdateSpecPlacement.cluster and Subscriptions.UpdateSpecPlacement.host are both specified, Subscriptions.UpdateSpecPlacement.host must be a member of Subscriptions.UpdateSpecPlacement.cluster. If Subscriptions.UpdateSpecPlacement.resource-pool or Subscriptions.UpdateSpecPlacement.host is specified, it is recommended that this field be unset.\nIf Subscriptions.UpdateSpecPlacement.resource-pool or Subscriptions.UpdateSpecPlacement.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nThis field is currently required. In future, if this is unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, publish of virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If Subscriptions.UpdateSpecPlacement.host and Subscriptions.UpdateSpecPlacement.resource-pool are both specified, Subscriptions.UpdateSpecPlacement.resource-pool must belong to Subscriptions.UpdateSpecPlacement.host. If Subscriptions.UpdateSpecPlacement.host and Subscriptions.UpdateSpecPlacement.cluster are both specified, Subscriptions.UpdateSpecPlacement.host must be a member of Subscriptions.UpdateSpecPlacement.cluster.\nIf this is unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, publishing the virtual machine template item will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "network": { + "description": "Network that backs the virtual Ethernet adapters in the virtual machine template.\nIf unset, newly published virtual machine template library items will not be backed by a network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + } + } + }, + "content.library.subscriptions.update_spec_vcenter": { + "type": "object", + "properties": { + "hostname": { + "description": "The hostname of the subscribed library's vCenter Server.\nIf unset, the value is unchanged.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + } + } + }, + "content.library.subscriptions.vcenter_info": { + "type": "object", + "properties": { + "hostname": { + "description": "Hostname of the vCenter Server instance where the subscribed library exists.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the vCenter Server instance where the subscribed library exists.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "server_guid": { + "description": "The unique identifier of the vCenter Server where the subscribed library exists.", + "type": "string" + } + }, + "required": [ + "hostname", + "server_guid" + ] + }, + "content.library.subscriptions_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified, creation is not idempotent." + }, + "spec": { + "$ref": "#/definitions/content.library.subscriptions.create_spec", + "description": "Specification for the subscription." + } + }, + "required": [ + "spec" + ] + }, + "content.library.subscriptions_delete": { + "type": "object", + "properties": { + "subscription": { + "type": "string", + "description": "Subscription identifier.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + } + }, + "required": [ + "subscription" + ] + }, + "content.library.subscriptions_get": { + "type": "object", + "properties": { + "subscription": { + "type": "string", + "description": "Identifier of the subscription.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + } + }, + "required": [ + "subscription" + ] + }, + "content.library.subscriptions_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library.subscriptions.info" + } + }, + "required": [ + "value" + ] + }, + "content.library.subscriptions_update": { + "type": "object", + "properties": { + "subscription": { + "type": "string", + "description": "subscription identifier.\nThe parameter must be an identifier for the resource type: content.library.Subscriptions." + }, + "spec": { + "$ref": "#/definitions/content.library.subscriptions.update_spec", + "description": "Specification of the new property values to set on the subscription." + } + }, + "required": [ + "subscription", + "spec" + ] + }, + "content.library_find": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/content.library.find_spec", + "description": "Specification describing what properties to filter on." + } + }, + "required": [ + "spec" + ] + }, + "content.library_model": { + "type": "object", + "properties": { + "id": { + "description": "An identifier which uniquely identifies this LibraryModel.\nThis field is not used for the create operation. It will not be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when this library was created.\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "A human-readable description for this library.\nThis field is optional for the create operation. Leaving it unset during creation will result in an empty string value. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that the description should be left unchanged.", + "type": "string" + }, + "last_modified_time": { + "description": "The date and time when this library was last updated. \n This field is updated automatically when the library properties are changed. This field is not affected by adding, removing, or modifying a library item or its content within the library. Tagging the library or syncing the subscribed library does not alter this field.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "last_sync_time": { + "description": "The date and time when this library was last synchronized. \n This field applies only to subscribed libraries. It is updated every time a synchronization is triggered on the library. The value is unset for a local library.\n\nThis field is not used for the create operation. It is optional in the result of the get or list operations. It is not used for the update operation.", + "type": "string", + "format": "date-time" + }, + "name": { + "description": "The name of the library. \n A Library is identified by a human-readable name. Library names cannot be undefined or an empty string. Names do not have to be unique.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is optional for the update operation.", + "type": "string" + }, + "storage_backings": { + "description": "The list of default storage backings which are available for this library. \n A StorageBacking defines a default storage location which can be used to store files for library items in this library. Some library items, for instance, virtual machine template items, support files that may be distributed across various storage backings. One or more item files may or may not be located on the default storage backing. \n\n Multiple default storage locations are not currently supported but may become supported in future releases.\n\nThis field must be provided for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "type": "array", + "items": { + "$ref": "#/definitions/content.library.storage_backing" + } + }, + "type": { + "description": "The type (LibraryModel.LibraryType) of this library. \n This value can be used to determine what additional services and information can be available for this library. This field is not used for the create and update operations. It will always be present in the result of a get operation.\n\nThis field is not used for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.", + "$ref": "#/definitions/content.library_model.library_type" + }, + "optimization_info": { + "description": "Defines various optimizations and optimization parameters applied to this library.\nThis field is optional for the create operation. It is optional in the result of the get or list operations. It is optional for the update operation.", + "$ref": "#/definitions/content.library.optimization_info" + }, + "version": { + "description": "A version number which is updated on metadata changes. This value allows clients to detect concurrent updates and prevent accidental clobbering of data. \n This value represents a number which is incremented every time library properties, such as name or description, are changed. It is not incremented by changes to a library item within the library, including adding or removing items. It is also not affected by tagging the library.\n\nThis field is not used for the create operation. It will always be present in the result of a get or list operation. It is optional for the update operation. Leaving it unset during update indicates that you do not need to detect concurrent updates.", + "type": "string" + }, + "publish_info": { + "description": "Defines how this library is published so that it can be subscribed to by a remote subscribed library. \n The PublishInfo defines where and how the metadata for this local library is accessible. A local library is only published publically if PublishInfo.published is true.\n\nThis field is optional for the create and update operations. If not specified during creation, the default is for the library to not be published. If not specified during update, the field is left unchanged.", + "$ref": "#/definitions/content.library.publish_info" + }, + "subscription_info": { + "description": "Defines the subscription behavior for this Library. \n The SubscriptionInfo defines how this subscribed library synchronizes to a remote source. Setting the value will determine the remote source to which the library synchronizes, and how. Changing the subscription will result in synchronizing to a new source. If the new source differs from the old one, the old library items and data will be lost. Setting SubscriptionInfo.automatic-sync-enabled to false will halt subscription but will not remove existing cached data.\n\nThis field is optional for the create and update operations. If not specified during creation, a default will be created without an active subscription. If not specified during update, the field is left unchanged.", + "$ref": "#/definitions/content.library.subscription_info" + }, + "server_guid": { + "description": "The unique identifier of the vCenter server where the library exists.\nThis field is optional for the create operation. It will always be present in the result of the get or list operations. It is not used for the update operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.", + "type": "string" + }, + "security_policy_id": { + "description": "Represents the security policy applied to this library. \n Setting the field will make the library secure. This field is ignored in update operation if LibraryModel.unset-security-policy-id is set to true.\n\nThis field is optional for the create and update operations. If not set in create operation, the library will be insecure. If not specified in update operation, the field is left unchanged.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "unset_security_policy_id": { + "description": "This represents the intent of the change to LibraryModel.security-policy-id in update operation. \n If this field is set to true, any security policy applied to the library will be removed. If this field is set to false, any security policy applied to library will be changed to the value specified in LibraryModel.security-policy-id, if any.\n\nThis field is optional for the update operation. If unset, any existing security policy will be changed to the value specified in LibraryModel.security-policy-id, if any.", + "type": "boolean" + } + } + }, + "content.library_model.library_type": { + "type": "string", + "description": "The LibraryModel.LibraryType enumerated type defines the type of a LibraryModel. \n The type of a library can be used to determine which additional services can be performed with a library.", + "enum": [ + "LOCAL", + "SUBSCRIBED" + ] + }, + "content.library_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library_model" + } + }, + "required": [ + "value" + ] + }, + "content.library_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/content.library_model", + "description": "Specification of the new property values to set on the library." + } + }, + "required": [ + "update_spec" + ] + }, + "content.local_library.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.local_library.destination_spec": { + "type": "object", + "properties": { + "subscription": { + "description": "Identifier of the subscription associated with the subscribed library.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Subscriptions. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Subscriptions.", + "type": "string" + } + }, + "required": [ + "subscription" + ] + }, + "content.local_library.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.local_library_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + }, + "create_spec": { + "$ref": "#/definitions/content.library_model", + "description": "Specification for the new local library." + } + }, + "required": [ + "create_spec" + ] + }, + "content.local_library_publish": { + "type": "object", + "properties": { + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/definitions/content.local_library.destination_spec" + }, + "description": "The list of subscriptions to publish this library to." + } + } + }, + "content.local_library_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library_model" + } + }, + "required": [ + "value" + ] + }, + "content.local_library_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/content.library_model", + "description": "Specification of the new property values to set on the local library." + } + }, + "required": [ + "update_spec" + ] + }, + "content.security_rule_type": { + "type": "string", + "description": "The SecurityRuleType enumerated type defines the security rules which can be applied to different item types.", + "enum": [ + "OVF_STRICT_VERIFICATION" + ] + }, + "content.subscribed_library.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "content.subscribed_library.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "content.subscribed_library.probe_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.subscribed_library.probe_result" + } + }, + "required": [ + "value" + ] + }, + "content.subscribed_library.probe_result": { + "type": "object", + "properties": { + "status": { + "description": "The status of probe result. This will be one of Status.", + "$ref": "#/definitions/content.subscribed_library.probe_result.status" + }, + "ssl_thumbprint": { + "description": "The SSL thumbprint for the remote endpoint.\nA SSL thumbprint is only returned if the host is secured with SSL/TLS.", + "type": "string" + }, + "error_messages": { + "description": "If the probe result is in an error status, this field will contain the detailed error messages.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "status", + "error_messages" + ] + }, + "content.subscribed_library.probe_result.status": { + "type": "string", + "description": "The SubscribedLibrary.ProbeResult.Status enumerated type defines the error status constants for the probe result.", + "enum": [ + "SUCCESS", + "INVALID_URL", + "TIMED_OUT", + "HOST_NOT_FOUND", + "RESOURCE_NOT_FOUND", + "INVALID_CREDENTIALS", + "CERTIFICATE_ERROR", + "UNKNOWN_ERROR" + ] + }, + "content.subscribed_library_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "Unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified creation is not idempotent." + }, + "create_spec": { + "$ref": "#/definitions/content.library_model", + "description": "Specification for the new subscribed library." + } + }, + "required": [ + "create_spec" + ] + }, + "content.subscribed_library_probe": { + "type": "object", + "properties": { + "subscription_info": { + "$ref": "#/definitions/content.library.subscription_info", + "description": "The subscription info to be probed." + } + }, + "required": [ + "subscription_info" + ] + }, + "content.subscribed_library_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/content.library_model" + } + }, + "required": [ + "value" + ] + }, + "content.subscribed_library_update": { + "type": "object", + "properties": { + "update_spec": { + "$ref": "#/definitions/content.library_model", + "description": "Specification of the new property values to set on the subscribed library." + } + }, + "required": [ + "update_spec" + ] + }, + "content.type.info": { + "type": "object", + "properties": { + "description": { + "description": "A description of the type support offered by the plugin.", + "type": "string" + }, + "name": { + "description": "The name of the plugin which provides the type support.", + "type": "string" + }, + "type": { + "description": "The type which the plugin supports. \n To upload a library item of the type supported by the plugin, the ItemModel.type field of the item should be set to this value.", + "type": "string" + }, + "vendor": { + "description": "The name of the vendor who created the type support plugin.", + "type": "string" + }, + "version": { + "description": "The version number of the type support plugin.", + "type": "string" + }, + "supported_rules": { + "description": "List of security rules which can be applied to this item type.\nIf unset no security rule can be associated with this item type.", + "type": "array", + "items": { + "$ref": "#/definitions/content.security_rule_type" + } + } + }, + "required": [ + "description", + "name", + "type", + "vendor", + "version" + ] + }, + "content.type.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/content.type.info" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.std.errors.already_exists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_exists_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_exists" + } + } + }, + "vapi.std.errors.concurrent_change": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.concurrent_change_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.concurrent_change" + } + } + }, + "vapi.std.errors.error": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.error.type": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "vapi.std.errors.error_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.error" + } + } + }, + "vapi.std.errors.invalid_argument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_argument_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument" + } + } + }, + "vapi.std.errors.invalid_element_configuration": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_element_configuration_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_configuration" + } + } + }, + "vapi.std.errors.invalid_element_type": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_element_type_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_type" + } + } + }, + "vapi.std.errors.not_allowed_in_current_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_allowed_in_current_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state" + } + } + }, + "vapi.std.errors.not_found": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_found_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_found" + } + } + }, + "vapi.std.errors.resource_busy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_busy_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_busy" + } + } + }, + "vapi.std.errors.resource_inaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_inaccessible_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible" + } + } + }, + "vapi.std.errors.unauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthenticated_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated" + } + } + }, + "vapi.std.errors.unauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthorized_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthorized" + } + } + }, + "vapi.std.errors.unsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unsupported_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unsupported" + } + } + }, + "vapi.std.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "vapi.std.localization_param": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/vapi.std.nested_localizable_message" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/vapi.std.localization_param.date_time_format" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "vapi.std.localization_param.date_time_format": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "vapi.std.nested_localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/esx.json b/config/api_specifications/8.0.2/esx.json new file mode 100644 index 000000000..5affbecf1 --- /dev/null +++ b/config/api_specifications/8.0.2/esx.json @@ -0,0 +1,20032 @@ +{ + "swagger": "2.0", + "info": { + "description": "", + "title": "esx", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/esx/hcl/compatibility-data/status": { + "get": { + "tags": [ + "hcl/compatibility_data" + ], + "summary": "Provides information about the compatibility data located on the vCenter Appliance.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the compatibility data.", + "schema": { + "$ref": "#/definitions/EsxHclCompatibilityDataStatus" + } + }, + "400": { + "description": "if there is no compatibility data on the vCenter executing the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hcl/compatibility-data?action=download&vmw-task=true": { + "post": { + "tags": [ + "hcl/compatibility_data" + ], + "summary": "Replaces the local compatibility data with the latest version found from VMware official source.", + "parameters": [], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if there is compatibility data update in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hcl/hosts/{host}/compatibility-releases": { + "get": { + "tags": [ + "hcl/hosts/compatibility_releases" + ], + "summary": "Lists the locally available ESXi releases for a given host that can be used to generate a compatiblity report. Each host has its own list of supported releases depending on its current release.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Contains the MoID identifying the ESXi host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Available releases for compatibility for a specified host.", + "schema": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReleasesEsxiCompatibilityReleases" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provided host is not supported.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if no host with the given MoID can be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hcl/hosts/{host}/compatibility-report": { + "get": { + "tags": [ + "hcl/hosts/compatibility_report" + ], + "summary": "Returns the last generated hardware compatibility report for the given host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportResult" + } + }, + "404": { + "description": "if there is no report generated for the given host. This operation does not check if the host id is valid or it exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hcl/hosts/{host}/compatibility-report?vmw-task=true": { + "post": { + "tags": [ + "hcl/hosts/compatibility_report" + ], + "summary": "Generates hardware compatibility report for a specified ESXi host against specific ESXi release.\n The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Contains the MoID identifying the ESXi host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportCreateTask" + } + } + ], + "responses": { + "202": { + "description": "CompatibilityReport.Result structure that contains the requested report and the identifier of the report.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if no host with the given MoID can be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if there is no compatibility data on the vCenter executing the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hcl/reports/{report}": { + "get": { + "tags": [ + "hcl/reports" + ], + "summary": "Returns the location Reports.Location information for downloading a compatibility report.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "report", + "description": "identifier of hardware compatiblity report to be downloaded.\nThe parameter must be an identifier for the resource type: esx.hcl.resources.CompatibilityReport." + } + ], + "responses": { + "200": { + "description": "Reports.Location structure which includes the URI to file, short lived token and expiry of the token in the Reports.Location object.", + "schema": { + "$ref": "#/definitions/EsxHclReportsLocation" + } + }, + "404": { + "description": "if there is no report for the given id.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/hosts/{host}/software/installed-components": { + "get": { + "tags": [ + "hosts/software/installed_components" + ], + "summary": "Returns the installed components on the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The components installed on the host.\nThe key in the result map will be an identifier for the resource type: esx.hosts.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxHostsSoftwareInstalledComponentsInstalledComponentInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration": { + "get": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "Get the cluster configuration and related metadata. The configuration returned by this API only contains the user-visible configuration properties available for a the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "commit", + "description": "Identifier of the commit to get.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "required": false, + "in": "query", + "name": "doc_structure", + "description": "{ 1. The DocumentStructure enumerated type contains the possible structures of the configuration document. }, { 2. }", + "type": "string", + "enum": [ + "HOST_ORIENTED", + "PROFILE_ORIENTED" + ] + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no commit associated with commit in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/audit-records": { + "get": { + "tags": [ + "settings/clusters/configuration/audit_records" + ], + "summary": "Retrieves audit information about the configuration actions performed on the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "operations", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "List of audit records that match the given operations An operation in operations can be any of \n - Import\n - Export\n - Remediate\n - Checkcompliance\n - Precheck\n - Transition-Enable\n - Draft-List\n - Draft-Create\n - Draft-ImportFromHost\n - Draft-Get\n - Draft-ExportConfig\n - Draft-Update\n - Draft-ShowChanges\n - Draft-CheckCompliance\n - Draft-Precheck\n - Draft-Delete\n - Draft-Apply\n \nIf unset or empty, records with any operation match the filter." + }, + { + "in": "query", + "name": "usernames", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "List of audit records that match the given users\nIf unset or empty, records with any users match the filter." + }, + { + "in": "query", + "name": "time_duration", + "type": "string", + "enum": [ + "THREE_MONTHS", + "SIX_MONTHS", + "YEAR", + "CUSTOM" + ], + "description": "List of audit records that match the given time frame i.e. For ex: occurred within last 30 days." + }, + { + "in": "query", + "name": "time_period", + "type": "string" + } + ], + "responses": { + "200": { + "description": "audit Information about the cluster associated with cluster.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationAuditRecordsInfo" + } + } + }, + "404": { + "description": "if there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Create a new draft with the given values. If a configuration is supplied in the spec, it will be used as the initial value. Otherwise, the current desired configuration will be used as the initial value. The Drafts.Metadata.owner field will be set to the caller's user ID and the Drafts.Metadata.parent-id will be set to the current commit ID for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsCreate" + } + } + ], + "responses": { + "201": { + "description": "The result will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the supplied configuration is not valid JSON.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Get the active drafts for this cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Map of drafts keyed by their identifiers.\nThe key in the result map will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsMetadata" + } + } + }, + "500": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}": { + "get": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Get the cluster configuration and related metadata from this draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Delete this draft. Any changes will be abandoned.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=apply": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Commit this draft and make it the new desired configuration for the cluster. The draft must be in the VALID state for this method to succeed. A successful commit will result in the draft being deleted. If the cluster is not empty, the Apply API will be called with the new desired state.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Remediate. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Remediate.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsApply" + } + } + ], + "responses": { + "200": { + "description": "A structure that contains the ID of the new commit and, if an ApplySpec was supplied, the ID of the Apply task.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsApplyResult" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the draft is not in the VALID state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "apply", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=checkCompliance&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Check all the hosts in the cluster for compliance with the configuration specified in the draft.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the API timed out before completion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check_compliance$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=exportConfig": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "This API will export the draft configuration associated with the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Export. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Export.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster on which operation should be performed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "This output structure of type esx.settings.clusters.Configuration#ExportResult contains the configuration document encoded as JSON.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationExportResult" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export_config", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=importFromHost&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "The API imports the desired configuration from a reference host in the cluster. The API also adds host-specific and host-overrides from the other hosts in the cluster. Import API does not validate the configuration against the schema. The result will specify if the configuration was imported successfully. The result will provide localized error message if the import operation failed.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "The parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsImportFromHostTask" + } + } + ], + "responses": { + "202": { + "description": "Output structure containing the status of the operation and error if any.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_from_host$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=precheck&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "This API will perform impact analysis of the configuration specified in the draft on each of the hosts in the cluster. The API will check against the desired image schema whether the desired configuration has added any requirements for the host to be put in maintenance mode or to be rebooted. The API will also invoke plugins which will validate the configuration on each hosts in the cluster. If the configuration is valid the API will also detect if the host needs to be maintenance mode or to be rebooted. If the hosts requires maintenance mode or reboot, then the API will run health checks to see the hosts can be put into the maintenance mode based on their current state. If any host cannot be put into maintenance mode due to health errors, then those errors will be reported in the result. The result will also list the configurations that will change on applying the configuration in the draft.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster on which to perform impact analysis.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "This output structure of type esx.settings.clusters.Configuration#ClusterPrecheckResult represents results of the impact analysis executed on each of the hosts for the desired configuration. If the impact analysis could not be performed on a host, the esx.settings.clusters.Configuration.ClusterPrecheckResult#hostStatus map will contain the reason.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "precheck$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=showChanges": { + "get": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Get the differences between this draft and the current desired state for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsChangesResult" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "show_changes", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=update": { + "post": { + "tags": [ + "settings/clusters/configuration/drafts" + ], + "summary": "Replace the current configuration in this draft with the supplied one. If the supplied configuration is different from the current value, the Drafts.Metadata.precheck-task fields will be cleared. If an expected revision number is provided, it must match the current revision of this draft or a ConcurrentChange exception will be raised. If no expected revision number is provided, this check will be skipped and the update will go through.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "409": { + "description": "If the expectedRevision in the spec differs from the draft's current revision.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsConcurrentChange" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/reports/last-apply-result": { + "get": { + "tags": [ + "settings/clusters/configuration/reports/last_apply_result" + ], + "summary": "Returns the most recent available result of applying the configuration document to all hosts within the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Most recent available result of applying the desired configuration to all hosts within the cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationApplyResult" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if there is no result associated with the cluster cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller does not have the necessary privileges to perform the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/reports/last-compliance-result": { + "get": { + "tags": [ + "settings/clusters/configuration/reports/last_compliance_result" + ], + "summary": "This API provides results from the last completed Check Compliance operation on the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationClusterCompliance" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no last compliance result was found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/reports/last-precheck-result": { + "get": { + "tags": [ + "settings/clusters/configuration/reports/last_precheck_result" + ], + "summary": "This API returns results from the last Precheck operation on the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Most recent available result of Precheck.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationClusterPrecheckResult" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if there is no result associated with the cluster cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller does not have the necessary privileges to perform the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/reports/recent-tasks": { + "get": { + "tags": [ + "settings/clusters/configuration/reports/recent_tasks" + ], + "summary": "This API returns the IDs of the configuration tasks most recently executed on this cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "A structure containing the most recent executions of draft- related tasks.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationReportsRecentTasksInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller does not have the necessary privileges to perform the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration/schema": { + "get": { + "tags": [ + "settings/clusters/configuration/schema" + ], + "summary": "Returns the configuration schema associated with the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The schema associated with the cluster", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationSchemaResult" + } + }, + "500": { + "description": "In case of an unknown internal error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the cluster is invalid", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the schema associated with the cluster is not found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is unavailable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the session is unauthenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=apply&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "Applies the cluster configuration associated with the cluster on the hosts associated with the cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationApplyTask" + } + } + ], + "responses": { + "202": { + "description": "The output structure of type Configuration.ApplyResult containing the result of this operation.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the Configuration.ApplySpec.commit field of spec specifies an invalid commit, or the Configuration.ApplySpec.hosts field of spec specifies an invalid host or a host that is not part of the cluster, or the cluster is not managed with a configuration specification. Also thrown if the specified cluster is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If the API timed out before completion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "404": { + "description": "If there is no cluster found in the inventory or no Configuration.ApplySpec.commit associated with cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "apply$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=checkCompliance&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "Check all the hosts in the cluster for compliance with the desired document.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the API timed out before completion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If API is called on a cluster that is not managed by desired configuration management platform.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check_compliance$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=exportConfig": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "This API will export the configuration associated with the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Export. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Export.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster on which operation should be performed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "This output structure of type esx.settings.clusters.Configuration#ExportResult contains the configuration document encoded as JSON.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationExportResult" + } + }, + "500": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "404": { + "description": "If the cluster is not found in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export_config", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=importConfig&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "This API replaces the existing desired configuration of the cluster with the configuration provided in the input parameter document. The API will internally validate the input configuration against the configuration schema derived from the cluster software specification associated with the cluster. If the input configuration document passes validation, then it will be the desired configuration of the cluster. The result will specify whether the input document was import successfully. The result will also list the validation errors in case the import operation failed.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster on which this operation must be performed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationImportConfigTask" + } + } + ], + "responses": { + "202": { + "description": "This output structure of type esx.settings.clusters.Configuration#ImportResult contains the result of this operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If the cluster is not found in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_config$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=precheck&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "This API will perform precheck of the desired cluster configuration on each of the hosts in the cluster. The API will check against the desired image schema whether the desired configuration has added any requirements for the host to be put in maintenance mode or to be rebooted. The API will also invoke plugins provided by the configuration owner to detect if the host needs to be put in maintenance mode or to be rebooted. If any host needs to be put in maintenance mode or rebooted, prechecks will be performed at the cluster and host level. The result will specify the validation errors if the desired configuration is not valid on the host. If valid, the result will specify host impact of the desired configuration, and list the configurations that will change on applying the desired configuration. If host impact is maintenance mode or reboot, precheck results will also be specified in the result.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster on which to perform precheck.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "This output structure of type esx.settings.clusters.Configuration#ClusterPrecheckResult represents results of the impact analysis and precheck executed on each of the hosts for the desired configuration. If the precheck could not be performed on a host, the esx.settings.clusters.Configuration.ClusterPrecheckResult#hostStatus map will contain the reason.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the API timed out before completion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If API is called on a cluster that is not managed by desired configuration management platform.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster is not found in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "precheck$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/configuration?action=validate&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/configuration" + ], + "summary": "Check whether the desired cluster configuration is valid.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the API timed out before completion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If API is called on a cluster that is not managed by desired configuration management platform.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "validate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/depot-overrides": { + "get": { + "tags": [ + "settings/clusters/depot_overrides" + ], + "summary": "Returns the information about currently configured depot overrides for a given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about currently configured depot overrides for a given cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/depot-overrides?action=add": { + "post": { + "tags": [ + "settings/clusters/depot_overrides" + ], + "summary": "Adds a new depot override to the list of currently configured depot overrides for a given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesAdd" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if depot override with given information already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/depot-overrides?action=remove": { + "post": { + "tags": [ + "settings/clusters/depot_overrides" + ], + "summary": "Removes a depot override from the list of currently configured depot overrides for a given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesRemove" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot override with given information or no cluster associated with identifier {param.name cluster} in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration": { + "get": { + "tags": [ + "settings/clusters/enablement/configuration" + ], + "summary": "Returns whether the given cluster is managed using a desired configuration plaftorm.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the feature enablement.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition": { + "get": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "This API returns the current transition state of the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.View. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The transition state of the cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=cancel": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "This API cancels the workflow to transition the cluster to desired configuration platform. If the status of transition is STARTED, the associated state information will be deleted. Otherwise, cancel will not be allowed and the API will throw an error.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the status of transition process is not STARTED.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=checkEligibility&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API performs eligibility checks on the cluster to see if it can be transitioned to desired configuration management platform.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Output structure describing errors from eligibility checks.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check_eligibility$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=enable&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API enables ConfigManager on the cluster. Before setting the desired configuration state, the API verifies the eligibility of the cluster to transition to desired configuration platform. The API then validates and sets the configuration draft as the desired configuration of the cluster, thus enabling ConfigManager. The API finally initiates remediation by invoking Apply. Apply is not invoked if the cluster is empty. The API does not wait for remediation to complete before returning. If any of the above step fails, the API will fail and result will contain descriptive error messages.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Output structure of type Transition.EnableResult containing the apply task ID.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "enable$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=exportConfig": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "This API will export configuration associated with the cluster generated as part of the transition workflow. The API will throw an error if the transition state is not STARTED.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Export. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Export.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster on which operation should be performed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "This output structure of type ExportResult contains the configuration document encoded as JSON.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationExportResult" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the status of transition process is not STARTED.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the cluster is not found in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export_config", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=exportSchema": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "This API will export schema associated with the cluster. The API will throw an error if the transition state is not STARTED.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Export. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Export.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster on which operation should be performed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "This output structure of type SchemaResult containing the schema document encoded as JSON.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationSchemaResult" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the status of transition process is not STARTED.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the cluster is not found in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export_schema", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=importFromFile": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API imports the desired configuration from a file. Import API does not validate the configuration against the schema. The result will specify if the configuration was imported successfully. The result will provide localized error message if the import operation failed.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionImportFromFile" + } + } + ], + "responses": { + "200": { + "description": "Output structure containing the status of the operation and error if any.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftImportResult" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_from_file", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=importFromHost&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API imports the desired configuration from a reference host in the cluster. The API also adds host-specific and host-overrides from the other hosts in the cluster. Import API does not validate the configuration against the schema. The result will specify if the configuration was imported successfully. The result will provide localized error message if the import operation failed.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionImportFromHostTask" + } + } + ], + "responses": { + "202": { + "description": "Output structure containing the status of the operation and error if any.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_from_host$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=precheck&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API computes impact of transitioning the cluster to be managed by desired configuration platform. It also runs health checks to verify the cluster's health before transitioning. The API returns the impact on the hosts in the cluster and the result of health checks from the cluster and hosts. Health checks are run only if the host needs be rebooted or put in maintenanceMode.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Output structure containing the status of the operation, host impact details, precheck results and notifications if any.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "precheck$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=validateConfig&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/configuration/transition" + ], + "summary": "The API validates the imported desired configuration against the schema and on the hosts with validation plugins. If the document is valid, the API will check all the hosts for compliance with the desired configuration. The API returns validation errors if the configuration is not valid on any of the host. If the configuration is valid, the API returns compliance information.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Output structure containing the validation errors or compliance information.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "validate_config$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/software": { + "get": { + "tags": [ + "settings/clusters/enablement/software" + ], + "summary": "Returns whether the given cluster is managed with a single software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the feature enablement.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/software?action=check&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/enablement/software" + ], + "summary": "Checks the possibility to manage the cluster with a single software specification.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareCheckTask" + } + } + ], + "responses": { + "202": { + "description": "The result of the check operation", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the feature is already enabled for the given cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/enablement/software?vmw-task=true": { + "put": { + "tags": [ + "settings/clusters/enablement/software" + ], + "summary": "Enables the feature which manages the cluster with a single software specification.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareEnableTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If feature enablement failed for the given cluster. The value of the data field of Error will be a structure that contains all the fields defined in Software.CheckResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the feature is already enabled for the given cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "enable$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/policies/apply": { + "put": { + "tags": [ + "settings/clusters/policies/apply" + ], + "summary": "This API will set the configured policy specification for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If invalid value is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/policies/apply" + ], + "summary": "Returns the configured policy that has been set for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The configured policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyConfiguredPolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/policies/apply/effective": { + "get": { + "tags": [ + "settings/clusters/policies/apply/effective" + ], + "summary": "Returns the effective apply policy based on system defaults and what has been configured for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The effective policies that impact the apply operation on this cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software": { + "get": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Returns the complete desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Cluster software specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/add-on": { + "get": { + "tags": [ + "settings/clusters/software/add_on" + ], + "summary": "Returns the desired OEM add-on specification for a given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Desired OEM add-on specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsAddOnInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired OEM add-on specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/base-image": { + "get": { + "tags": [ + "settings/clusters/software/base_image" + ], + "summary": "Returns the desired base-image specification set for given cluster\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Base-image specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/commits/{commit}": { + "get": { + "tags": [ + "settings/clusters/software/commits" + ], + "summary": "Returns the information about a specific commit.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "commit", + "description": "Identifier of the specific commit.\nThe parameter must be an identifier for the resource type: esx.settings.commit." + } + ], + "responses": { + "200": { + "description": "Information about the commit.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareCommitsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired specification commit is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/compliance": { + "get": { + "tags": [ + "settings/clusters/software/compliance" + ], + "summary": "Returns the compliance state for the cluster\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Cluster compliance result.", + "schema": { + "$ref": "#/definitions/EsxSettingsClusterCompliance" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if the compliance information is unavailable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/components": { + "get": { + "tags": [ + "settings/clusters/software/components" + ], + "summary": "Returns a list of components in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Map of ComponentInfo keyed by the component identifier. If no version is specified in desired software specification, then ComponentInfo will not be present for that component.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/components/{component}": { + "get": { + "tags": [ + "settings/clusters/software/components" + ], + "summary": "Returns the component version for the given component in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "200": { + "description": "Details about the component version.\nIf unset then version is supposed to be chosen based on the constraints in the system.", + "schema": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If invalid component name is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or or no component associated with component in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts": { + "post": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Creates a new software draft from the desired document. It will be deleted, when the draft is committed successfully. If a desired document is missing, then this operation will create an empty draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "201": { + "description": "Identifier of the working copy of the document.\nThe result will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If there is already a draft created by this user.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Returns information about the software drafts for the specified cluster that match the Drafts.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "owners", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Owners of the drafts.\nIf unset or empty, drafts from all owners will be returned." + } + ], + "responses": { + "200": { + "description": "Map of software drafts keyed by their identifiers.\nThe key in the result map will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSummary" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}": { + "get": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Returns the information about given software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the software draft.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Information about the Software Draft.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Deletes the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/add-on": { + "put": { + "tags": [ + "settings/clusters/software/drafts/software/add_on" + ], + "summary": "Sets a new desired OEM add-on specification in the software draft. It will overwrite the existing desired OEM add-on specification if one already exists.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareAddOnSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts/software/add_on" + ], + "summary": "Returns the OEM add-on specification in a software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "OEM add-on specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsAddOnInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system or no add-on specification is set.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/software/drafts/software/add_on" + ], + "summary": "Deletes the desired OEM add-on specification in the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/base-image": { + "put": { + "tags": [ + "settings/clusters/software/drafts/software/base_image" + ], + "summary": "Sets a new desired base-image specification in the software draft. It will overwrite the existing desired base-image specification if one already exists.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareBaseImageSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts/software/base_image" + ], + "summary": "Returns the base-image specification in a software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Base-image specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/components": { + "patch": { + "tags": [ + "settings/clusters/software/drafts/software/components" + ], + "summary": "Updates the list of components in a given draft. This allows set and/or delete of multiple components in a batch operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareComponentsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts/software/components" + ], + "summary": "Returns the components that comprise the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Map of component version information keyed by the component identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/components/{component}": { + "put": { + "tags": [ + "settings/clusters/software/drafts/software/components" + ], + "summary": "Set the component version for a given component in the software draft. This will overwrite any existing version for the given component.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareComponentsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts/software/components" + ], + "summary": "Returns the component version for the given component in the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "200": { + "description": "Information about component version.\nIf unset then version will be chosen based on the constraints in the system.", + "schema": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft or no component associated with component in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/software/drafts/software/components" + ], + "summary": "Deletes the given component from the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/effective-components": { + "get": { + "tags": [ + "settings/clusters/software/drafts/software/effective_components" + ], + "summary": "Returns the components that comprise the desired software state of the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Map of effective components keyed by their identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsEffectiveComponentInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}/software/hardware-support": { + "put": { + "tags": [ + "settings/clusters/software/drafts/software/hardware_support" + ], + "summary": "Replaces a given cluster's working copy document Hardware Support Package (HSP) configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of image working copy document being updated\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareHardwareSupportSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster named cluster, no working copy document draft in the system, or no Hardware Support Package (HSP) configured as part of the working copy document.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/clusters/software/drafts/software/hardware_support" + ], + "summary": "Returns a given cluster's working copy document Hardware Support Package (HSP) configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of image working copy document being updated\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Hardware Support Package (HSP) configured for use", + "schema": { + "$ref": "#/definitions/EsxSettingsHardwareSupportInfo" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster named cluster, no working copy document draft in the system, or no Hardware Support Package (HSP) configured as part of the working copy document.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/software/drafts/software/hardware_support" + ], + "summary": "Deletes a given cluster's working copy document Hardware Support Package (HSP) configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of image working copy document being updated\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster named cluster, no working copy document draft in the system, or no Hardware Support Package (HSP) configured as part of the working copy document.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}?action=commit&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Commits the specified draft as the desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the draft.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsCommitTask" + } + } + ], + "responses": { + "202": { + "description": "Identifier of the commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If validation of the software document fails. The value of the data field of Error will be a structure that contains all the fields defined in Drafts.ValidateResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "commit$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}?action=scan&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Scans all the hosts in the cluster against the software draft. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "Result of scan operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "scan$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts/{draft}?action=validate&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Validates the software draft. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the software draft.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "Result of validation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "validate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/drafts?action=import-software-spec": { + "post": { + "tags": [ + "settings/clusters/software/drafts" + ], + "summary": "Imports the desired software specification as a new draft. If a desired document is missing, then this operation will create an empty draft except when the source type is of either LATEST_RECOMMENDATION or CURRENT_SERIES_RECOMMENDATION, then NotFound error is reported. In addition, the exisiting draft will be overwritten when the source type is of either LATEST_RECOMMENDATION or CURRENT_SERIES_RECOMMENDATION.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsImportSoftwareSpec" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the software draft.\nThe result will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if the source type of import specification is of either LATEST_RECOMMENDATION or CURRENT_SERIES_RECOMMENDATION, and a recommendation does not exist for the cluster. It was either never generated or deleted due to changes in cluster state such as a new desired image spec being committed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "import_software_spec", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/effective-components": { + "get": { + "tags": [ + "settings/clusters/software/effective_components" + ], + "summary": "Returns the effective components for the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Map of effective components keyed by their identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsEffectiveComponentInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/hardware-support": { + "get": { + "tags": [ + "settings/clusters/software/hardware_support" + ], + "summary": "Returns a given cluster's Hardware Support Package (HSP) configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Hardware Support Package (HSP) selected for use", + "schema": { + "$ref": "#/definitions/EsxSettingsHardwareSupportInfo" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster named cluster or no Hardware Support Package (HSP) configured in the cluster's desired state document.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/recommendations": { + "get": { + "tags": [ + "settings/clusters/software/recommendations" + ], + "summary": "Returns Information about the most recent recommendation generation result.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the most recent recommendation generation result.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareRecommendationsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or recommendation is non-existing for the cluster due to either it is never generated or deleted due to changes in cluster state such as a new desired image spec being committed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/recommendations?action=generate&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software/recommendations" + ], + "summary": "Generates recommended software image spec(s) based on current desired software spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareRecommendationsGenerateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "409": { + "description": "If a new desired image is committed in parallel via a different client while recommendation is being generated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsConcurrentChange" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "generate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/apply-impact": { + "get": { + "tags": [ + "settings/clusters/software/reports/apply_impact" + ], + "summary": "Returns a summary of how hosts within the cluster will be impacted during an apply operation. The impact is generated from the compliance information obtained from Compliance.get\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "The specific hosts for which an impact is to be generated.\nif unset or empty impact is generated for all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Summary of how hosts will be impacted during an apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsApplyImpactClusterImpact" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/hardware-compatibility": { + "get": { + "tags": [ + "settings/clusters/software/reports/hardware_compatibility" + ], + "summary": "Returns the HCL validation check summary.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "CheckSummary HCL validation summary.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityCheckSummary" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure and any possible resolution(s).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/hardware-compatibility/details": { + "get": { + "tags": [ + "settings/clusters/software/reports/hardware_compatibility/details" + ], + "summary": "Returns the HCL validation check detailed results.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.HardwareCompatibility.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.HardwareCompatibility.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "CheckResult HCL validation result.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsCheckResult" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure and any possible resolution(s).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/hardware-compatibility/storage-device-overrides/compliance-status?vmw-task=true": { + "patch": { + "tags": [ + "settings/clusters/software/reports/hardware_compatibility/storage_device_overrides/compliance_status" + ], + "summary": "Updates the Compliance staus overrides for storage devices in a cluster. This operation also updates the existing CheckResult if any, based on the device reclassification specified in ComplianceStatus.UpdateSpec The storage device categorization based on the compliance status from the last check result will remain the same until a HardwareCompatibility.check operation is invoked.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is an unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no cluster associated with the cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one of the values in the update specification is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/hardware-compatibility/storage-device-overrides/vcg-entries?vmw-task=true": { + "patch": { + "tags": [ + "settings/clusters/software/reports/hardware_compatibility/storage_device_overrides/vcg_entries" + ], + "summary": "Updates the storage device VMware Compatibility Guide (VCG) product overrides for a cluster. This operation also updates the existing CheckResult if any, based on the additional information provided by the vcg product overrides for the devices. The storage device categorization based on the compliance status from the last check result will remain the same until a HardwareCompatibility.check operation is invoked.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is an unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no cluster associated with the cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one of the values in the update specification is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/hardware-compatibility?action=check&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software/reports/hardware_compatibility" + ], + "summary": "Initiates a Cluster HCL Validation check for a given cluster. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "CheckResult HCL validation result.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is some other unknown internal error. The accompanying error message will give more details about the failure and any possible resolution(s).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/last-apply-result": { + "get": { + "tags": [ + "settings/clusters/software/reports/last_apply_result" + ], + "summary": "Returns the most recent available result of applying the desired software document to all hosts within the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Most recent available result of applying the desired software document to all hosts within the cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastApplyResultApplyResult" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if there is no result associated with the cluster cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/reports/last-check-result": { + "get": { + "tags": [ + "settings/clusters/software/reports/last_check_result" + ], + "summary": "Returns the most recent available result of checks run on the cluster before the application of the desired software document to all hosts within the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The cluster identifier.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Most recent result available of the checks run on the cluster.", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultCheckResult" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if there is no result associated with the cluster cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/solutions": { + "get": { + "tags": [ + "settings/clusters/software/solutions" + ], + "summary": "Returns all solutions in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Map of solutions where key is solution identifier and value is a list of components registered by that solution.\nThe key in the result map will be an identifier for the resource type: esx.settings.solution.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsSolutionInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/solutions/{solution}": { + "get": { + "tags": [ + "settings/clusters/software/solutions" + ], + "summary": "Returns components registered for the given solution in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + } + ], + "responses": { + "200": { + "description": "Specification of components registered by the solution.", + "schema": { + "$ref": "#/definitions/EsxSettingsSolutionInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If invalid component name is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or or no solution associated with solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software/solutions/{solution}?vmw-task=true": { + "put": { + "tags": [ + "settings/clusters/software/solutions" + ], + "summary": "Sets the components registered for the given solution in the desired software specification. The task will set only one solution specification at a time. Solution constraints would be validated with the current desired software specification before it is committed as new desired spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareSolutionsSetTask" + } + } + ], + "responses": { + "202": { + "description": "ID of the newly created commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if validation of the software document fails. The value of the data field of Error will be a structure that contains all the fields defined in ValidateResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no solution associated with solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/clusters/software/solutions" + ], + "summary": "Deletes the given solution from the desired software specification. The deletion will be validated along with the entire software specification before it is committed as new desired spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + } + ], + "responses": { + "202": { + "description": "ID of the newly created commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if validation of the software document fails. The value of the data field of Error will be a structure that contains all the fields defined in ValidateResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no cluster associated with cluster or no solution associated with solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software?action=apply&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Applies the desired software document associated with the given cluster to hosts within the cluster. If commit field is set, it implies the minimum commit that the Software.apply operation should use, however if subsequent commits have been made to the desired state document the apply operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareApplyTask" + } + } + ], + "responses": { + "202": { + "description": "The result of the Software.apply operation.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If there is another operation in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "apply$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software?action=check&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Runs checks on the cluster before applying the desired software document across all hosts in the cluster. Checks if all hosts in the cluster are in a good state to be updated with the desired software document. If commit field is set it implies the minimum commit that the check operation should use, however if subsequent commits have been made to the desired state document the check operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareCheckTask" + } + } + ], + "responses": { + "202": { + "description": "The results of all checks performed.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If there is another operation in progress or if the commit field of spec specifies a commit that has already been applied.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software?action=export": { + "post": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Exports the desired software specification document and/or image. This API will not export the solution section of the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource ClusterComputeResource referenced by the parameter cluster requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareExport" + } + } + ], + "responses": { + "200": { + "description": "A map from export type to URL of the exported data for that type.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "500": { + "description": "If there is am unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software?action=scan&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Scans all the hosts in the cluster against the cluster's desired state. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Compliance result for the cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "scan$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/clusters/{cluster}/software?action=stage&vmw-task=true": { + "post": { + "tags": [ + "settings/clusters/software" + ], + "summary": "Stages the desired software document associated with the given cluster to hosts within the cluster. If commit field is set, it implies the minimum commit that the Software.stage operation should use, however if subsequent commits have been made to the desired state document the stage operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareStageTask" + } + } + ], + "responses": { + "202": { + "description": "The result of the Software.stage operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If there is another operation in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If there is no cluster associated with cluster in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "stage$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/defaults/clusters/policies/apply": { + "put": { + "tags": [ + "settings/defaults/clusters/policies/apply" + ], + "summary": "This API will set the configured policy specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If invalid value is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/defaults/clusters/policies/apply" + ], + "summary": "Returns the configured policy that has been set.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The configured policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyConfiguredPolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/defaults/clusters/policies/apply/effective": { + "get": { + "tags": [ + "settings/defaults/clusters/policies/apply/effective" + ], + "summary": "Returns the effective apply policy based on system defaults and what has been configured.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The effective policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyEffectiveEffectivePolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/defaults/hosts/policies/apply": { + "put": { + "tags": [ + "settings/defaults/hosts/policies/apply" + ], + "summary": "This API will set the configured policy.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If invalid value is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/defaults/hosts/policies/apply" + ], + "summary": "Returns the configured policy that has been set.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The configured policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyConfiguredPolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/defaults/hosts/policies/apply/effective": { + "get": { + "tags": [ + "settings/defaults/hosts/policies/apply/effective" + ], + "summary": "Returns the effective policy based on system defaults and what has been configured.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The effective policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyEffectiveEffectivePolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/add-ons": { + "get": { + "tags": [ + "settings/depot_content/add_ons" + ], + "summary": "Returns a list of currently available OEM add-ons in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "in": "query", + "name": "vendors", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Vendors that an add-on must have to match the filter.\nIf unset or empty, add-ons from any vendor will match the filter." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that an add-on must have to match the filter.\nIf unset or empty, add-ons with any name will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.add_on. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.add_on." + }, + { + "in": "query", + "name": "versions", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Versions that an add-on must have to match the filter.\nIf unset or empty, add-ons with any version will match the filter." + }, + { + "in": "query", + "name": "min_version", + "type": "string", + "description": "Minimum version of an add-on that can match the filter.\nIf set, only OEM add-ons with version greater than or equal to this will be returned." + } + ], + "responses": { + "200": { + "description": "List of OEM add-ons in the depot.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsSummary" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/add-ons/{name}/versions/{version}": { + "get": { + "tags": [ + "settings/depot_content/add_ons/versions" + ], + "summary": "Returns information about a given OEM add-on version in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "Name of the OEM add-on\nThe parameter must be an identifier for the resource type: esx.settings.add_on." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the OEM add-on" + } + ], + "responses": { + "200": { + "description": "Information about the given OEM add-on", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsVersionsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if OEM add-on with given version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/base-images": { + "get": { + "tags": [ + "settings/depot_content/base_images" + ], + "summary": "Returns a list of currently available base images in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "in": "query", + "name": "min_version", + "type": "string", + "description": "Minimum version of a base image that can match the filter.\nIf set, only base images with version greater than or equal to this version will be returned." + } + ], + "responses": { + "200": { + "description": "List of base images in the depot. These will be sorted by the version of the base image.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentBaseImagesSummary" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/base-images/versions/{version}": { + "get": { + "tags": [ + "settings/depot_content/base_images/versions" + ], + "summary": "Returns information about a given base image version in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the base image" + } + ], + "responses": { + "200": { + "description": "Information about the given base image", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotContentBaseImagesVersionsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if base image with given version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/components": { + "get": { + "tags": [ + "settings/depot_content/components" + ], + "summary": "Returns a list of currently available components in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "in": "query", + "name": "vendors", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Vendors that a component must have to match the filter.\nIf unset or empty, components with any vendor name match the filter." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that a component must have to match the filter.\nIf unset or empty, components with any name will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.component." + }, + { + "in": "query", + "name": "versions", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Versions that a component must have to match the filter.\nIf unset or empty, components with any version will match the filter." + }, + { + "in": "query", + "name": "min_version", + "type": "string", + "description": "Minimum version of the component that can match the filter.\nIf set, only components with version greater than or equal to the given version match the filter." + }, + { + "in": "query", + "name": "bundle_types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "INDEPENDENT", + "BASE_IMAGE", + "ADD_ON" + ] + }, + "description": "Component bundle types that a component must have to match the filter.\nIf unset or empty, all components will match the filter." + } + ], + "responses": { + "200": { + "description": "List of components in the depot.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentComponentsSummary" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depot-content/components/{name}/versions/{version}": { + "get": { + "tags": [ + "settings/depot_content/components/versions" + ], + "summary": "Returns information about a given component version in the depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "Name of the component\nThe parameter must be an identifier for the resource type: esx.settings.component." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the component" + } + ], + "responses": { + "200": { + "description": "Information about the given component", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotContentComponentsVersionsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if component with given version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline": { + "get": { + "tags": [ + "settings/depots/offline" + ], + "summary": "Returns currently imported offline software depots.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Map of currently imported offline software depots keyed by their identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.depots.offline.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineSummary" + } + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline/{depot}": { + "get": { + "tags": [ + "settings/depots/offline" + ], + "summary": "Gets the information about an imported offline software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier for the depot.\nThe parameter must be an identifier for the resource type: esx.settings.depots.offline." + } + ], + "responses": { + "200": { + "description": "Information about the imported offline software depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot with given identifier depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/depots/offline" + ], + "summary": "The task-based Offline.delete operation removes content of an imported offline depot from vLCM completely. Note: The non task-based Offline.delete operation has been deprecated. It deletes only the record of depot from the list of imported offline software depots, instead of removing the depot's content from vLCM.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be removed.\nThe parameter must be an identifier for the resource type: esx.settings.depots.offline." + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the content of depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Offline.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Offline.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline/{depot}/content": { + "get": { + "tags": [ + "settings/depots/offline/content" + ], + "summary": "Gets the information of content of an imported offline software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier for the depot.\nThe parameter must be an identifier for the resource type: esx.settings.depots.offline." + } + ], + "responses": { + "200": { + "description": "Information of content of the imported offline software depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineContentInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot with given identifier depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline/{depot}?vmw-task=true": { + "delete": { + "tags": [ + "settings/depots/offline" + ], + "summary": "The task-based Offline.delete operation removes content of an imported offline depot from vLCM completely. Note: The non task-based Offline.delete operation has been deprecated. It deletes only the record of depot from the list of imported offline software depots, instead of removing the depot's content from vLCM.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be removed.\nThe parameter must be an identifier for the resource type: esx.settings.depots.offline." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the content of depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Offline.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Offline.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline?action=createFromHost&vmw-task=true": { + "post": { + "tags": [ + "settings/depots/offline" + ], + "summary": "Extract the current software specification applied to the host and import it into the depot. Returns details about the current software specification applied to the host. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineCreateFromHostTask" + } + } + ], + "responses": { + "202": { + "description": "DepotExtractInfo details about the current software specification applied to the host extracted into the depot.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the target node cannot be validated by comparing with the thumbprint provided in ConnectionSpec.HostCredentials#sslThumbPrint or the full certificate provided in ConnectionSpec.HostCredentials#sslCertificate.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no Offline.HostCredentials.host-name field associated with host id in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create_from_host$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/offline?vmw-task=true": { + "post": { + "tags": [ + "settings/depots/offline" + ], + "summary": "Imports a new offline software depot. This will also import the metadata and payloads from this offline depot. The returned task will fail and no offline depot would be created if there are any issues during import. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineCreateTask" + } + } + ], + "responses": { + "202": { + "description": "Identifier of the imported depot as part of result structure.", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the depot content already exists. The value of the data field of Error will be a structure that contains existing depot identifier as part of depot field defined in Offline.CreateResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/online": { + "post": { + "tags": [ + "settings/depots/online" + ], + "summary": "Adds a new online software depot to the list of currently configured online software depots.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineCreate" + } + } + ], + "responses": { + "201": { + "description": "Identifier of the currently configured online depot.\nThe result will be an identifier for the resource type: esx.settings.depots.online.", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If depot with given location already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/depots/online" + ], + "summary": "Returns a list of currently configured online software depots.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Map of currently configured online software depots keyed by their identifiers.\nThe key in the result map will be an identifier for the resource type: esx.settings.depots.online.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineSummary" + } + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/online/{depot}": { + "get": { + "tags": [ + "settings/depots/online" + ], + "summary": "Gets the information about a currently configured online software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier for the depot.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + } + ], + "responses": { + "200": { + "description": "Information of the currently configured online software depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot with given identifier depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "settings/depots/online" + ], + "summary": "Updates the configuration of a currently configured online software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be updated.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If given depot is system defined.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/depots/online" + ], + "summary": "The task-based Online.delete operation removes content of a user-imported online depot from vLCM completely. As a result, the URL of the user-imported online depot will also be removed. Note: 1. To remove content of system-defined online depots, use Online.flush operation. 2. The non task-based Online.delete operation has been deprecated. It only deletes the record of depot from the list of imported online software depots, instead of removing the depot's content from the system.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be removed.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the content of depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Online.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Online.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/online/{depot}/content": { + "get": { + "tags": [ + "settings/depots/online/content" + ], + "summary": "Gets the information of content of an imported online software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier for the depot.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + } + ], + "responses": { + "200": { + "description": "Information of content of the imported online software depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineContentInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot with given identifier depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/online/{depot}?action=flush&vmw-task=true": { + "post": { + "tags": [ + "settings/depots/online" + ], + "summary": "The task-based Online.flush operation removes content of a system-defined online depot from vLCM completely. As a result, the system-defined online depot will be disabled. Note: To remove content of user-imported online depots, use the task-based Online.delete operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be removed.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the content of depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. Online.flush is a task-based operation. Once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the FlushResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "flush$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/online/{depot}?vmw-task=true": { + "delete": { + "tags": [ + "settings/depots/online" + ], + "summary": "The task-based Online.delete operation removes content of a user-imported online depot from vLCM completely. As a result, the URL of the user-imported online depot will also be removed. Note: 1. To remove content of system-defined online depots, use Online.flush operation. 2. The non task-based Online.delete operation has been deprecated. It only deletes the record of depot from the list of imported online software depots, instead of removing the depot's content from the system.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "depot", + "description": "Identifier of the depot to be removed.\nThe parameter must be an identifier for the resource type: esx.settings.depots.online." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the content of depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Online.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "If there is no depot associated with parameter depot in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Online.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/sync-schedule": { + "put": { + "tags": [ + "settings/depots/sync_schedule" + ], + "summary": "Sets the software depot sync schedule.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "400": { + "description": "If SyncSchedule.Spec.schedule is unset while SyncSchedule.Spec.enabled is set to true or if any of the values is not within valid range.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/depots/sync_schedule" + ], + "summary": "Returns the currently configured software depot sync schedule.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Currently configured sync schedule.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleSpec" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/umds": { + "put": { + "tags": [ + "settings/depots/umds" + ], + "summary": "Sets or overwrites information about the UMDS software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If an invalid location is provided.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/depots/umds" + ], + "summary": "Gets the information about a currently configured UMDS software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information of the currently configured UMDS software depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no UMDS software depot set.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "settings/depots/umds" + ], + "summary": "Updates the configuration of a currently configured UMDS software depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no UMDS depot configured.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/depots/umds" + ], + "summary": "The task-based Umds.delete operation removes content of the UMDS depot from vLCM completely. Note: The non task-based Umds.delete operation has been deprecated. It deletes only the record of UMDS depot from database, instead of removing the content of UMDS depot from vLCM.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no UMDS depot configured in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the content of UMDS depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Umds.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Umds.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/umds/content": { + "get": { + "tags": [ + "settings/depots/umds/content" + ], + "summary": "Gets the information of content about the UMDS depot.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information of content of the imported UMDS depot.", + "schema": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsContentInfo" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no UMDS depot configured in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots/umds?vmw-task=true": { + "delete": { + "tags": [ + "settings/depots/umds" + ], + "summary": "The task-based Umds.delete operation removes content of the UMDS depot from vLCM completely. Note: The non task-based Umds.delete operation has been deprecated. It deletes only the record of UMDS depot from database, instead of removing the content of UMDS depot from vLCM.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleDepots.Delete.", + "parameters": [], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no UMDS depot configured in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the content of UMDS depot to be deleted is used in some baseline or desired state. The value of the data field of Error will be the PrecheckResult structure that lists the information of affected baselines and desired states. This error is applicable to the task-based Umds.delete operation only.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there some unknown internal error. The accompanying error message will give more details about the failure. For task-based Umds.delete operation, once the task is started, it does NOT stop if encountering an error. Instead, it will continuously run to completion. In this case, the value of the data field of Error will be the DeleteResult structure that lists all the errors encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/depots?action=sync&vmw-task=true": { + "post": { + "tags": [ + "settings/depots" + ], + "summary": "Syncs the metadata from the currently configured online or umds depots. If any umds depot is set, then metadata is downloaded from that depot else metadata is downloaded from the online depots. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "if there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "sync$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hardware-support/managers": { + "get": { + "tags": [ + "settings/hardware_support/managers" + ], + "summary": "Returns the list of registered Hardware Support Managers (HSMs) in the system.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of currently registered Hardware Support Manager (HSMs)", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHardwareSupportManagersHardwareSupportManagerInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hardware-support/managers/{manager}/packages": { + "get": { + "tags": [ + "settings/hardware_support/managers/packages" + ], + "summary": "Returns the list of available Hardware Support Packages (HSPs) for a particular host, as specified by its Hardware Support Manager (HSM)\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "manager", + "description": "Identifier for the Hardware Support Manager (HSM).\nThe parameter must be an identifier for the resource type: esx.setting.hardware_support.manager." + }, + { + "in": "query", + "name": "base_image_version", + "type": "string", + "description": "vSphere release version the Hardware Support Package (HSP) must support to match the filter. Only Hardware Support Packages (HSPs) compatible with the vSphere release version specified in 'baseImageVersion' will be returned. The 'baseImageVersion' parameter should be a full numeric base image version string (e.g. \"7.1.0-2.3.436234\"). Future implementations may support version specification by prefix (e.g. \"7.1\" to specify all updates and builds of 7.1) or other forms of specification (e.g. \">=7.0\"). Hardware Support Pacakges (HSPs) may be advertised as supporting truncated version strings to indicate the remainder is wildcarded. Matching is on the specified substring only, so a bundle supporting \"7.1.0-2\" would match a 'release' parameter of \"7.1.0-2.3.436234\" as well as \"7.1.0-2.1.4133564\" and \"7.1.0-1.0.355667\" but not \"7.1.0-3.0.63445\" or any base image version starting with \"7.2\". Note that we require compatible base image versions be specified at least down to the update version (i.e. \"7.0\" is insufficiently constrained)\nIf unset, all packages will be returned, regardless of base image version." + } + ], + "responses": { + "200": { + "description": "List of available Hardware Support Packages (HSPs) for given manager", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHardwareSupportManagersPackagesHardwareSupportPackageInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no Hardware Support Manager (HSM) with the specified name", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated. named manager in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hardware-support/managers/{manager}/packages/{pkg}/versions/{version}": { + "get": { + "tags": [ + "settings/hardware_support/managers/packages/versions" + ], + "summary": "Returns the detailed information for a specific version of an available Hardware Support Packages (HSPs) as specified by the Hardware Support Manager (HSM)\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "manager", + "description": "Identifier for the Hardware Support Manager (HSM).\nThe parameter must be an identifier for the resource type: esx.setting.hardware_support.manager." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "pkg", + "description": "The name of the Hardware Support Package (HSP)\nThe parameter must be an identifier for the resource type: esx.setting.hardware_support.package." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "The version of the Hardware Support Package (HSP)" + }, + { + "in": "query", + "name": "base_image_version", + "type": "string", + "description": "vSphere release version for the component information in the Hardware Support Package (HSP). Only Hardware Support Packages (HSPs) compatible with the vSphere release version specified in 'baseImageVersion' will be returned. The 'baseImageVersion' parameter should be a full numeric base image version string (e.g. \"7.1.0-2.3.436234\"). Future implementations may support version specification by prefix (e.g. \"7.1\" to specify all updates and builds of 7.1) or other forms of specification (e.g. \">=7.0\"). Hardware Support Pacakges (HSPs) may be advertised as supporting truncated version strings to indicate the remainder is wildcarded. Matching is on the specified substring only, so a bundle supporting \"7.1.0-2\" would match a 'release' parameter of \"7.1.0-2.3.436234\" as well as \"7.1.0-2.1.4133564\" and \"7.1.0-2.0.355667\" but not \"7.1.0-3.0.63445\" or any base image version starting with \"7.2\". Note that we require compatible base image versions be specified at least down to the update version (i.e. \"7.0\" is insufficiently constrained)\nIf unset, all supported releases will be returned but no specific component information (added or deleted) will be included." + } + ], + "responses": { + "200": { + "description": "detailed information on Hardware Support Packages (HSPs)", + "schema": { + "$ref": "#/definitions/EsxSettingsHardwareSupportManagersPackagesVersionsPackageInfo" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If any of the specified parameters are Invalid (e.g. if the release version specified in the query parameter is not, in fact, among those supported by the Hardware Support Package (HSP).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no Hardware Support Manager (HSM) with the specified name, or no Hardware Support Package (HSP) with the specified name and version.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated. named manager in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required privilege to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/configuration?action=extract": { + "post": { + "tags": [ + "settings/hosts/configuration" + ], + "summary": "Extracts a configuration document from the ESXi host,\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.ClusterConfiguration.Modify. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.ClusterConfiguration.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The result contains the configuration of the ESXi host encoded as JSON.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsConfigurationExtractResult" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "extract", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/depot-overrides": { + "get": { + "tags": [ + "settings/hosts/depot_overrides" + ], + "summary": "Returns the information about currently configured depot overrides for a given host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier for the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Information about currently configured depot overrides for a given host.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/depot-overrides?action=add": { + "post": { + "tags": [ + "settings/hosts/depot_overrides" + ], + "summary": "Adds a new depot override to the list of currently configured depot overrides for a given host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier for the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesAdd" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/depot-overrides?action=remove": { + "post": { + "tags": [ + "settings/hosts/depot_overrides" + ], + "summary": "Removes a depot override from the list of currently configured depot overrides for a given host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier for the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesRemove" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no depot override with given information or no host associated with identifier {param.name host} in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/enablement/software": { + "get": { + "tags": [ + "settings/hosts/enablement/software" + ], + "summary": "Returns whether the given standalone host is managed with a single software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "True if feature is enabled, false otherwise.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/enablement/software?action=check&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/enablement/software" + ], + "summary": "Checks the possibility to manage the host with a single software specification.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareCheckTask" + } + } + ], + "responses": { + "202": { + "description": "Result of the check.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is some unknown error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/enablement/software?vmw-task=true": { + "put": { + "tags": [ + "settings/hosts/enablement/software" + ], + "summary": "Enables the feature which manages the host with a single software specification.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareEnableTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If feature enablement failed for the given host. The value of the data field of Error will be a structure that contains all the fields defined in Software.CheckResult.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host in the system", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "enable$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/policies/apply": { + "put": { + "tags": [ + "settings/hosts/policies/apply" + ], + "summary": "This API will set the configured policy for an ESXi host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplySet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/policies/apply" + ], + "summary": "Returns the configured policy that has been set for the ESXi host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The configured policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyConfiguredPolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/policies/apply/effective": { + "get": { + "tags": [ + "settings/hosts/policies/apply/effective" + ], + "summary": "Returns the effective policy based on system defaults and what has been configured for the ESXi host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSettings.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSettings.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The effective policies that impact the apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyEffectiveEffectivePolicySpec" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software": { + "get": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Returns the complete desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Host software specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/add-on": { + "get": { + "tags": [ + "settings/hosts/software/add_on" + ], + "summary": "Returns the desired OEM add-on specification for a given host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Desired OEM add-on specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsAddOnInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if desired OEM add-on specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/base-image": { + "get": { + "tags": [ + "settings/hosts/software/base_image" + ], + "summary": "Returns the desired base-image specification set for given host\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Base-image specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/commits/{commit}": { + "get": { + "tags": [ + "settings/hosts/software/commits" + ], + "summary": "Returns the information about a specific commit.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "commit", + "description": "Identifier of the specific commit.\nThe parameter must be an identifier for the resource type: esx.settings.commit." + } + ], + "responses": { + "200": { + "description": "Information about the commit.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareCommitsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if working copy of the software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/compliance": { + "get": { + "tags": [ + "settings/hosts/software/compliance" + ], + "summary": "Returns the compliance state for the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Host compliance result.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostCompliance" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/components": { + "get": { + "tags": [ + "settings/hosts/software/components" + ], + "summary": "Returns a list of components in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Map of ComponentInfo keyed by the component identifier. If no version is specified in desired software specification, then it will be empty.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/components/{component}": { + "get": { + "tags": [ + "settings/hosts/software/components" + ], + "summary": "Returns the component version for the given component in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "200": { + "description": "Details about the component version.\nIf unset then version is supposed to be chosen based on the constraints in the system.", + "schema": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or or no component associated with component in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts": { + "post": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Creates a new software draft from the desired document. It will be deleted, when the draft is committed successfully.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "201": { + "description": "Identifier of the working copy of the document.\nThe result will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Returns information about the software drafts for the specified host that match the Drafts.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "query", + "name": "owners", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Owners of the drafts.\nIf unset or empty, drafts from all owners will be returned." + } + ], + "responses": { + "200": { + "description": "Map of software drafts keyed by their identifiers.\nThe key in the result map will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSummary" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}": { + "get": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Returns the information about given software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Information about the Software Draft.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Deletes the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the draft.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}/software/add-on": { + "put": { + "tags": [ + "settings/hosts/software/drafts/software/add_on" + ], + "summary": "Sets a new desired OEM add-on specification in the software draft. It will overwrite the existing desired OEM add-on specification if one already exists.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSoftwareAddOnSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/software/drafts/software/add_on" + ], + "summary": "Returns the OEM add-on specification in a software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "OEM add-on specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsAddOnInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system or no add-on specification is set.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/hosts/software/drafts/software/add_on" + ], + "summary": "Deletes the desired OEM add-on specification in the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}/software/base-image": { + "put": { + "tags": [ + "settings/hosts/software/drafts/software/base_image" + ], + "summary": "Sets a new desired base-image specification in the software draft. It will overwrite the existing desired base-image specification if one already exists.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSoftwareBaseImageSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/software/drafts/software/base_image" + ], + "summary": "Returns the base-image specification in a software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Base-image specification.", + "schema": { + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}/software/components": { + "patch": { + "tags": [ + "settings/hosts/software/drafts/software/components" + ], + "summary": "Updates the list of components in a given draft. This allows set and/or delete of multiple components in a batch operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSoftwareComponentsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/software/drafts/software/components" + ], + "summary": "Returns the components that comprise the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Map of component version information keyed by the component identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}/software/components/{component}": { + "put": { + "tags": [ + "settings/hosts/software/drafts/software/components" + ], + "summary": "Set the component version for a given component in the software draft. This will overwrite any existing version for the given component.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSoftwareComponentsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "settings/hosts/software/drafts/software/components" + ], + "summary": "Returns the component version for the given component in the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "200": { + "description": "Information about component version.\nIf unset then version will be chosen based on the constraints in the system.", + "schema": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft or no component associated with component in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/hosts/software/drafts/software/components" + ], + "summary": "Deletes the given component from the software draft.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "component", + "description": "Identifier of the component.\nThe parameter must be an identifier for the resource type: esx.settings.component." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft or no component associated with component in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}/software/effective-components": { + "get": { + "tags": [ + "settings/hosts/software/drafts/software/effective_components" + ], + "summary": "Returns the components that comprise the desired software state of the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "200": { + "description": "Map of effective components keyed by their identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsEffectiveComponentInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}?action=commit&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Commits the specified draft as the desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation. It will also validate the document before committing it.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the draft.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsCommitTask" + } + } + ], + "responses": { + "202": { + "description": "Identifier of the commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host or if there is no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "commit$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}?action=scan&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Scans the host against the software draft. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "Result of scan operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "scan$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts/{draft}?action=validate&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Validates the software draft. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "draft", + "description": "Identifier of the working copy of the document.\nThe parameter must be an identifier for the resource type: esx.settings.draft." + } + ], + "responses": { + "202": { + "description": "Result of validation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no draft associated with draft in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "validate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/drafts?action=import-software-spec": { + "post": { + "tags": [ + "settings/hosts/software/drafts" + ], + "summary": "Imports the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Write. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsImportSoftwareSpec" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the working copy of the document.\nThe result will be an identifier for the resource type: esx.settings.draft.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if the source type of import specification is of either LATEST_RECOMMENDATION or CURRENT_SERIES_RECOMMENDATION, and a recommendation does not exist for the host. It was either never generated or deleted due to changes in host state such as a new desired image spec being committed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "import_software_spec", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/effective-components": { + "get": { + "tags": [ + "settings/hosts/software/effective_components" + ], + "summary": "Returns the effective components for the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Map of effective components keyed by their identifier.\nThe key in the result map will be an identifier for the resource type: esx.settings.component.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsEffectiveComponentInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/recommendations": { + "get": { + "tags": [ + "settings/hosts/software/recommendations" + ], + "summary": "Returns Information about the most recent recommendation generation result.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Information about the most recent recommendation generation result.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareRecommendationsInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/recommendations?action=generate&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software/recommendations" + ], + "summary": "Generates recommended software image spec(s) based on current desired software spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "409": { + "description": "If a new desired image is committed in parallel via a different client while recommendation is being generated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsConcurrentChange" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "generate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/reports/apply-impact": { + "get": { + "tags": [ + "settings/hosts/software/reports/apply_impact" + ], + "summary": "Returns a summary of how a standalone ESXi host will be impacted during an apply operation. The impact is generated from the compliance information obtained from Compliance.get\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Summary of how hosts will be impacted during an apply operation", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsApplyImpactHostImpact" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/reports/last-apply-result": { + "get": { + "tags": [ + "settings/hosts/software/reports/last_apply_result" + ], + "summary": "Returns the most recent available result of applying the desired software document to the standalone ESXi host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "the host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Most recent available result of applying the desired software document to the standalone ESXi host.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastApplyResultApplyResult" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no standalone host associated with host in the system or if there is no result associated with the host host", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/reports/last-check-result": { + "get": { + "tags": [ + "settings/hosts/software/reports/last_check_result" + ], + "summary": "Returns the most recent available result of checks run on the standalone host before the application of the desired software document to the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareRemediation.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareRemediation.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "The host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Most recent available result of the checks run on the host.", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultCheckResult" + } + }, + "500": { + "description": "If there is an unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no standalone host associated with host in the system or if there is no result associated with the host host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/solutions": { + "get": { + "tags": [ + "settings/hosts/software/solutions" + ], + "summary": "Returns all solutions in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Map of solutions where key is solution identifier and value is a list of components registered by that solution.\nThe key in the result map will be an identifier for the resource type: esx.settings.solution.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsSolutionInfo" + } + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/solutions/{solution}": { + "get": { + "tags": [ + "settings/hosts/software/solutions" + ], + "summary": "Returns components registered for the given solution in the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + } + ], + "responses": { + "200": { + "description": "Specification of components registered by the solution.", + "schema": { + "$ref": "#/definitions/EsxSettingsSolutionInfo" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host or no solution associated with . solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software/solutions/{solution}?vmw-task=true": { + "put": { + "tags": [ + "settings/hosts/software/solutions" + ], + "summary": "Sets the components registered for the given solution in the desired software specification. The task will set only one solution specification at a time. Solution constraints would be validated with the current desired software specification before it is committed as new desired spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareSolutionsSetTask" + } + } + ], + "responses": { + "202": { + "description": "ID of the newly created commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host or solution associated with solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "set$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "settings/hosts/software/solutions" + ], + "summary": "Deletes the given solution from the desired software specification. The deletion will be validated along with the entire software specification before it is committed as new desired spec. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "solution", + "description": "Identifier of the solution.\nThe parameter must be an identifier for the resource type: esx.settings.solution." + } + ], + "responses": { + "202": { + "description": "ID of the newly created commit.\nThe result will be an identifier for the resource type: esx.settings.commit.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host or solution associated with solution in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software?action=apply&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Applies the desired software document associated with the given host. If commit field is set, it implies the minimum commit that the Software.apply operation should use, however if subsequent commits have been made to the desired state document the apply operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareApplyTask" + } + } + ], + "responses": { + "202": { + "description": "The result of the Software.apply operation.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "apply$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software?action=check&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Runs checks on the host before applying the desired software document. Checks if host is in a good state to be updated with the desired software document. If commit field is set it implies the minimum commit that the check operation should use, however if subsequent commits have been made to the desired state document the check operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareCheckTask" + } + } + ], + "responses": { + "202": { + "description": "The results of all checks performed.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "check$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software?action=export": { + "post": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Exports the desired software specification document and/or image. This API will not export the solution section of the desired software specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read. \n - The resource HostSystem referenced by the parameter host requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareExport" + } + } + ], + "responses": { + "200": { + "description": "A map from export type to URL of the exported data for that type.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "500": { + "description": "If there is am unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software?action=scan&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Scans the host against the host's desired state.. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "202": { + "description": "Compliance result of the host.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If there is unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "scan$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/settings/hosts/{host}/software?action=stage&vmw-task=true": { + "post": { + "tags": [ + "settings/hosts/software" + ], + "summary": "Stages the desired software document associated with the given host. If commit field is set, it implies the minimum commit that the Software.stage operation should use, however if subsequent commits have been made to the desired state document the stage operation will use the most recent desired state document. The result of this operation can be queried by calling the cis/tasks/{task-id} where the task-id is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareStageTask" + } + } + ], + "responses": { + "202": { + "description": "The result of the Software.stage operation.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "If the operation times out.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsTimedOut" + } + }, + "400": { + "description": "If the host is not a vLCM managed standlone host", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "If there is no host associated with host in the system or if desired software document is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "stage$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/esx/software": { + "get": { + "tags": [ + "hosts/software" + ], + "summary": "Returns details about the current software specification applied to the host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIntegrity.lifecycleSoftwareSpecification.Read.", + "parameters": [ + { + "in": "query", + "name": "auth_type", + "type": "string", + "enum": [ + "USERNAME_PASSWORD", + "EXISTING" + ], + "description": "The Software.ConnectionSpec.AuthenticationType enumerated type defines the possible types of authentication supported when connecting to the host.", + "required": true + }, + { + "in": "query", + "name": "host_credential", + "type": "string", + "required": false + }, + { + "in": "query", + "name": "host", + "type": "string", + "description": "Specifies the host Managed Object ID to be used during the Software.get operation\nThis field is optional and it is only relevant when the value of Software.ConnectionSpec.auth-type is EXISTING.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "required": false + } + ], + "responses": { + "200": { + "description": "Info details about the current software specification applied to the host.", + "schema": { + "$ref": "#/definitions/EsxHostsSoftwareInfo" + } + }, + "400": { + "description": "If the SSL certificate of the target node cannot be validated by comparing with the thumbprint provided in ConnectionSpec.HostCredentials#sslThumbPrint or the full certificate provided in ConnectionSpec.HostCredentials#sslCertificate.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If there is no ConnectionSpec.HostCredentials#hostName field associated with host id in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the service is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + } + }, + "definitions": { + "CisTaskProgress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "CisTaskStatus": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "EsxHclCompatibilityDataStatus": { + "type": "object", + "properties": { + "updated_at": { + "description": "Indicates when the data was last updated.", + "type": "string", + "format": "date-time" + }, + "notifications": { + "description": "Notifications returned by the operation.", + "$ref": "#/definitions/EsxHclNotifications" + } + }, + "required": [ + "updated_at", + "notifications" + ] + }, + "EsxHclCompatibilityStatus": { + "type": "string", + "description": "The CompatibilityStatus enumerated type defines compatibility status of a given server or PCI device against a specific release of ESXi.", + "enum": [ + "COMPATIBLE", + "INCOMPATIBLE", + "UNAVAILABLE", + "CERTIFIED", + "NOT_CERTIFIED" + ] + }, + "EsxHclDriver": { + "type": "object", + "properties": { + "name": { + "description": "The name of the driver.", + "type": "string" + }, + "version": { + "description": "The version of the driver.", + "type": "string" + }, + "vendor": { + "description": "The vendor that produced the driver.\nIf unset vendor is unknown.", + "type": "string" + } + }, + "required": [ + "name", + "version" + ] + }, + "EsxHclFirmware": { + "type": "object", + "properties": { + "version": { + "description": "The version of the firmware.", + "type": "string" + }, + "vendor": { + "description": "The vendor that produced the firmware.\nIf unset vendor is unknown.", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "EsxHclHostsCompatibilityReleasesEsxiCompatibilityReleases": { + "type": "object", + "properties": { + "current_compatibility_release": { + "description": "The current release of the ESXi, which also can be checked for compatibility. \n The information for the release does not include patch information.", + "type": "string" + }, + "newer_compatibility_releases": { + "description": "The available ESXi releases, greater than the current one, than can be checked for compatibility.", + "type": "array", + "items": { + "type": "string" + } + }, + "notifications": { + "description": "Notifications returned by the operation.", + "$ref": "#/definitions/EsxHclNotifications" + } + }, + "required": [ + "current_compatibility_release", + "newer_compatibility_releases", + "notifications" + ] + }, + "EsxHclHostsCompatibilityReportBiosConstraint": { + "type": "object", + "properties": { + "bios": { + "description": "The BIOS information about the constraint.", + "$ref": "#/definitions/EsxHclFirmware" + }, + "notes": { + "description": "Any information that should be taken into account when reviewing the BIOS constraint.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "bios", + "notes" + ] + }, + "EsxHclHostsCompatibilityReportCreateTask": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportSpec", + "description": "Specifies the input parameters for generating compatibility report.\nIf unset host compatibility will be checked against the current release of the ESXi." + }, + "EsxHclHostsCompatibilityReportDeviceConstraint": { + "type": "object", + "properties": { + "driver": { + "description": "The driver information about the constraint.", + "$ref": "#/definitions/EsxHclDriver" + }, + "firmware": { + "description": "The firmware information about the constraint.\nIf unset there is no firmware restriction on the driver to work with that release.", + "$ref": "#/definitions/EsxHclFirmware" + }, + "notes": { + "description": "Any information that should be taken into account when reviewing the device constraint.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "driver", + "notes" + ] + }, + "EsxHclHostsCompatibilityReportDeviceHclInfo": { + "type": "object", + "properties": { + "compatibility": { + "description": "Indicates compatibility status of the PCI device.", + "$ref": "#/definitions/EsxHclCompatibilityStatus" + }, + "device": { + "description": "Information about the PCI device.", + "$ref": "#/definitions/EsxHclPCIDevice" + }, + "device_constraints": { + "description": "Lists the constraints the target ESXi release has for this PCI device\nIf unset no constraints are present as PCI device is either not compatible or compatibility information is not found.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportDeviceConstraint" + } + }, + "supported_releases": { + "description": "Provides information about supported releases for this device.\nIf unset device is compatible with the given target release.", + "type": "array", + "items": { + "type": "string" + } + }, + "vcg_link": { + "description": "Provides link to the VMware Compatibility Guide for further information on the compatibility.\nIf unset there is no VMware Compatibility link available as this is device used by VSAN.", + "type": "string", + "format": "uri" + }, + "notes": { + "description": "Information that needs to be taken into account when considering this device hcl.\nOnly set if there is any information reported.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "compatibility", + "device" + ] + }, + "EsxHclHostsCompatibilityReportHclReport": { + "type": "object", + "properties": { + "host": { + "description": "FQDN identifying the ESXi host that the report refers to.", + "type": "string", + "format": "uri" + }, + "target_release": { + "description": "Indicates for which ESXi release the report is generated.", + "type": "string" + }, + "server_hcl": { + "description": "Lists compatibility information for the ESXi's server part.", + "$ref": "#/definitions/EsxHclHostsCompatibilityReportServerHclInfo" + }, + "devices_hcl": { + "description": "Lists compatibility information for discoverable PCI devices of the host.\nIf unset the server is not compatible with the requested release and the PCI devices cannot be checked.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportDeviceHclInfo" + } + }, + "generated_at": { + "description": "Specifies the time the report was generated.", + "type": "string", + "format": "date-time" + }, + "notifications": { + "description": "Notifications returned by the operation.", + "$ref": "#/definitions/EsxHclNotifications" + } + }, + "required": [ + "host", + "target_release", + "server_hcl", + "generated_at", + "notifications" + ] + }, + "EsxHclHostsCompatibilityReportResult": { + "type": "object", + "properties": { + "report": { + "description": "The hardware compatibility report.", + "$ref": "#/definitions/EsxHclHostsCompatibilityReportHclReport" + }, + "identifier": { + "description": "The identifier of the compatibility report. \n Reports.get provides location where a file based report based on the CompatibilityReport.HclReport can be downloaded using this identifier.\n\nunset in case of error reported in CompatibilityReport.HclReport.notifications.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.hcl.resources.CompatibilityReport. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.hcl.resources.CompatibilityReport.", + "type": "string" + } + }, + "required": [ + "report" + ] + }, + "EsxHclHostsCompatibilityReportServerCompatibility": { + "type": "object", + "properties": { + "bios_constraints": { + "description": "Lists the BIOS constraints that the target ESXi release has for this server.\nIf unset no constraints are present as server is either not compatible or compatibility information is not found.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportBiosConstraint" + } + }, + "cpu_series": { + "description": "The CPU series name.", + "type": "string" + }, + "supported_releases": { + "description": "Provides information about supported releases for this entry.\nIf unset server is compatible with the given target release.", + "type": "array", + "items": { + "type": "string" + } + }, + "vcg_link": { + "description": "Provides link to the VMware Compatibility Guide for further information on the compatibility.", + "type": "string", + "format": "uri" + }, + "notes": { + "description": "Information that needs to be taken into account when considering this server hardware compatibility.\nOnly set if there is any information reported.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "cpu_series", + "vcg_link" + ] + }, + "EsxHclHostsCompatibilityReportServerHclInfo": { + "type": "object", + "properties": { + "server": { + "description": "Information about the server.", + "$ref": "#/definitions/EsxHclServer" + }, + "matches": { + "description": "Provides information about possible compatibility matches for the given server. \n There could be multiple matches returned as there are several possible matches in the Compatibility data.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclHostsCompatibilityReportServerCompatibility" + } + }, + "model_compatibility": { + "description": "Shows if the server model is compatible with given target ESXi release.", + "$ref": "#/definitions/EsxHclCompatibilityStatus" + } + }, + "required": [ + "server", + "matches", + "model_compatibility" + ] + }, + "EsxHclHostsCompatibilityReportSpec": { + "type": "object", + "properties": { + "release": { + "description": "A target ESXi release which will be used to generate a compatibility report. Releases that can be used to generate report can be found using CompatibilityReleases.list", + "type": "string" + } + }, + "required": [ + "release" + ] + }, + "EsxHclNotification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set if there is a resolution available for this notification.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "id", + "time", + "message" + ] + }, + "EsxHclNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHclNotification" + } + } + } + }, + "EsxHclPCIDevice": { + "type": "object", + "properties": { + "pci_address": { + "description": "The device's address in a given ESXi host.", + "type": "string" + }, + "vid": { + "description": "A unique number assigned to each computer hardware device that helps to identify the chipset manufacturer. For example, Dell, Broadcom, etc.", + "type": "string" + }, + "did": { + "description": "A unique number that identifies the specific device of the Vendor (VID).", + "type": "string" + }, + "svid": { + "description": "A unique number that identifies the card manufacturer.", + "type": "string" + }, + "ssid": { + "description": "A unique number that identifies the specific device of Subsystem Vendor (SVID).", + "type": "string" + }, + "vendor": { + "description": "The name of the vendor.", + "type": "string" + }, + "model_name": { + "description": "The name of the device model.", + "type": "string" + }, + "class_code": { + "description": "Register that specifies the type of function the device performs.", + "type": "string" + }, + "sub_class_code": { + "description": "Register that specifies the specific function the device performs.", + "type": "string" + }, + "driver": { + "description": "Currently installed driver used by the device.", + "$ref": "#/definitions/EsxHclDriver" + }, + "firmware": { + "description": "Currently installed firmware used by the device.\nIf unset firmware is unknown.", + "$ref": "#/definitions/EsxHclFirmware" + }, + "used_by_vsan": { + "description": "Shows whether the device is part of VSAN cluster or not.", + "type": "boolean" + } + }, + "required": [ + "pci_address", + "vid", + "did", + "svid", + "ssid", + "vendor", + "model_name", + "class_code", + "sub_class_code", + "driver", + "used_by_vsan" + ] + }, + "EsxHclReportsLocation": { + "type": "object", + "properties": { + "url": { + "description": "Compatibility report download URL.", + "type": "string", + "format": "uri" + }, + "report_token": { + "description": "Information about the token required in the HTTP GET request to download the compatibility report.", + "$ref": "#/definitions/EsxHclReportsToken" + } + }, + "required": [ + "url", + "report_token" + ] + }, + "EsxHclReportsToken": { + "type": "object", + "properties": { + "token": { + "description": "A one-time, short-lived token required in the HTTP header of the request to the url. This token needs to be passed in as a header with the name \"session-id\".", + "type": "string", + "format": "password" + }, + "expiry": { + "description": "Expiry time of the token", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "token", + "expiry" + ] + }, + "EsxHclServer": { + "type": "object", + "properties": { + "model_name": { + "description": "The name of the server model (for example, \"PowerEdge R740xd\").", + "type": "string" + }, + "vendor": { + "description": "The name of the vendor (for example, \"Dell\").", + "type": "string" + }, + "cpu_series": { + "description": "The CPU series name (for example, \"Intel Xeon Gold 6100/5100, Silver 4100, Bronze 3100 (Skylake-SP) Series\"). \n Note: This field is initialized with the CPU model name; it's updated to the actual CPU series later, based on recognizing one of the CPU series the server hardware is certified with in the VCG.s", + "type": "string" + }, + "cpu_features": { + "description": "The current CPU features.", + "type": "string" + }, + "bios": { + "description": "Currently installed BIOS of the server.", + "$ref": "#/definitions/EsxHclFirmware" + } + }, + "required": [ + "model_name", + "vendor", + "cpu_series", + "cpu_features", + "bios" + ] + }, + "EsxHostsNotification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set if there is a resolution available for this notification.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "id", + "time", + "message" + ] + }, + "EsxHostsNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHostsNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHostsNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxHostsNotification" + } + } + } + }, + "EsxHostsSoftwareConnectionSpec": { + "type": "object", + "properties": { + "auth_type": { + "description": "Specifies what type of authentication (AuthenticationType) is to be used when connecting with the host. USERNAME_PASSWORD is intended to be used when connecting to a host that is not currently part of the vCenter inventory. EXISTING is intented for hosts that are in vCenter inventory, in which case, HostServiceTicket will be used to connect to the host.", + "$ref": "#/definitions/EsxHostsSoftwareConnectionSpecAuthenticationType" + }, + "host_credential": { + "description": "Specifies the host details to be used during the Software.get operation\nThis field is optional and it is only relevant when the value of Software.ConnectionSpec.auth-type is USERNAME_PASSWORD.", + "$ref": "#/definitions/EsxHostsSoftwareHostCredentials" + }, + "host": { + "description": "Specifies the host Managed Object ID to be used during the Software.get operation\nThis field is optional and it is only relevant when the value of Software.ConnectionSpec.auth-type is EXISTING.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + } + }, + "required": [ + "auth_type" + ] + }, + "EsxHostsSoftwareConnectionSpecAuthenticationType": { + "type": "string", + "description": "The Software.ConnectionSpec.AuthenticationType enumerated type defines the possible types of authentication supported when connecting to the host.", + "enum": [ + "USERNAME_PASSWORD", + "EXISTING" + ] + }, + "EsxHostsSoftwareHostCredentials": { + "type": "object", + "properties": { + "host_name": { + "description": "The IP address or DNS resolvable name of the host.", + "type": "string" + }, + "user_name": { + "description": "Specifies the username to be used during the Software.get operation", + "type": "string" + }, + "password": { + "description": "Specifies the password to be used during the Software.get operation", + "type": "string", + "format": "password" + }, + "port": { + "description": "Specifies the port number of the host to be used during Software.get operation\nIf unset, port number is set to 443.", + "type": "integer", + "format": "int64" + }, + "ssl_thumb_print": { + "description": "Specifies the sslThumbPrint of the host to be used during Software.get operation SHA1 hash of the host's SSL certificate.\nIf unset, Software.get operation this operation will throw UnverifiedPeer with the host provided thumbprint as data.", + "type": "string" + } + }, + "required": [ + "host_name", + "user_name", + "password" + ] + }, + "EsxHostsSoftwareInfo": { + "type": "object", + "properties": { + "notifications": { + "description": "Notifications returned by the get operation.", + "$ref": "#/definitions/EsxHostsNotifications" + }, + "software_info": { + "description": "Host software information returned by the get operation.", + "$ref": "#/definitions/EsxHostsSoftwareInfo" + } + }, + "required": [ + "notifications", + "software_info" + ] + }, + "EsxHostsSoftwareInstalledComponentsInstalledComponentInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "version": { + "description": "Version of the installed component", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.", + "type": "string" + }, + "platforms": { + "description": "Platforms the component belongs to. Example: host, vmdpu0, vmdpu1, ...\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "display_name", + "version", + "display_version" + ] + }, + "EsxSettingsAddOnCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the OEM add-on.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the OEM add-on. This is only relevant when the value of AddOnCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "current": { + "description": "Current OEM add-on present on the host.\nunset if OEM add-on is not present on the host.", + "$ref": "#/definitions/EsxSettingsAddOnInfo" + }, + "target": { + "description": "Target OEM add-on present in the software specification.\nunset if OEM add-on is not present in the software specification.", + "$ref": "#/definitions/EsxSettingsAddOnInfo" + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "notifications" + ] + }, + "EsxSettingsAddOnDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the OEM add-on.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the OEM add-on.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the OEM add-on.", + "type": "string" + } + }, + "required": [ + "display_name", + "vendor", + "display_version" + ] + }, + "EsxSettingsAddOnInfo": { + "type": "object", + "properties": { + "details": { + "description": "Details about the add-on.\nunset if add-on is not present in the depot.", + "$ref": "#/definitions/EsxSettingsAddOnDetails" + }, + "name": { + "description": "Name of the add-on", + "type": "string" + }, + "version": { + "description": "Version of the add-on", + "type": "string" + } + }, + "required": [ + "name", + "version" + ] + }, + "EsxSettingsAddOnSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the add-on", + "type": "string" + }, + "version": { + "description": "Version of the add-on", + "type": "string" + } + }, + "required": [ + "name", + "version" + ] + }, + "EsxSettingsBaseImageCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the base image.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the base image. This is only relevant when the value of BaseImageCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "current": { + "description": "Current base image information on the host.", + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + }, + "target": { + "description": "Target base image information present in the software specification.", + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "current", + "target", + "notifications" + ] + }, + "EsxSettingsBaseImageDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the base image.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the base image.", + "type": "string" + }, + "release_date": { + "description": "Release date of the base image.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "display_name", + "display_version", + "release_date" + ] + }, + "EsxSettingsBaseImageInfo": { + "type": "object", + "properties": { + "details": { + "description": "Details about the base image.\nunset if base image is not present in the depot.", + "$ref": "#/definitions/EsxSettingsBaseImageDetails" + }, + "version": { + "description": "Version of the base-image", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "EsxSettingsBaseImageSpec": { + "type": "object", + "properties": { + "version": { + "description": "Version of the base-image", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "EsxSettingsCheckDescription": { + "type": "object", + "properties": { + "check": { + "description": "The check identifier.", + "type": "string" + }, + "name": { + "description": "The check name.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "description": { + "description": "Human-readable check description.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "check", + "name", + "description" + ] + }, + "EsxSettingsCheckError": { + "type": "object", + "properties": { + "description": { + "description": "Description of what was the issue containing as much user-relevant context as possible. The user should be able to understand which sub-system failed and why.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "Possible resolution for the issue. This should contain actionable information that the user can use to resolve the issue.\nCan be left unset if no meaningful resolution exists.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "description" + ] + }, + "EsxSettingsCheckStatus": { + "type": "object", + "properties": { + "check": { + "description": "Information about this check.", + "$ref": "#/definitions/EsxSettingsCheckDescription" + }, + "status": { + "description": "The status of this check.", + "$ref": "#/definitions/EsxSettingsStatus" + }, + "originator": { + "description": "The service that performed the check. This field should allow easier triaging of health query errors.\nOnly set if there is an originator available for this check.", + "type": "string" + }, + "errors": { + "description": "List of CheckError that the check reported.\nIf not set, the service is still using the {#member issues}. TODO", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsCheckError" + } + } + }, + "required": [ + "check", + "status" + ] + }, + "EsxSettingsClusterCompliance": { + "type": "object", + "properties": { + "impact": { + "description": "Overall impact.", + "$ref": "#/definitions/EsxSettingsComplianceImpact" + }, + "status": { + "description": "Overall compliance status of the cluster.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Overall stage status of the cluster. This is only relevant when the value of ClusterCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "notifications": { + "description": "Notifications returned by the scan operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + }, + "scan_time": { + "description": "Scan completion time.", + "type": "string", + "format": "date-time" + }, + "commit": { + "description": "Identifier of the commit on which the scan is run to generate this result.\nunset if operation is performed on a draft.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "compliant_hosts": { + "description": "Identifiers of compliant hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "non_compliant_hosts": { + "description": "Identifiers of non-compliant hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "incompatible_hosts": { + "description": "Identifiers of incompatible hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "unavailable_hosts": { + "description": "Identifiers of unavailable hosts. There will not be compliance details for these hosts in ClusterCompliance.hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "hosts": { + "description": "Mapping from host identifier to the compliance information for the host.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostCompliance" + } + }, + "host_info": { + "description": "Auxillary information about the hosts. This gives some additional information about the hosts referenced in this result.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + } + }, + "required": [ + "impact", + "status", + "notifications", + "scan_time", + "compliant_hosts", + "non_compliant_hosts", + "incompatible_hosts", + "unavailable_hosts", + "hosts", + "host_info" + ] + }, + "EsxSettingsClustersConfigurationApplyResult": { + "type": "object", + "properties": { + "status": { + "description": "Specifies the aggregated status of the Configuration.apply operation.\nunset if the Configuration.apply operation is in progress.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostStatus" + }, + "commit": { + "description": "The identifier of the commit used to fetch the desired configuration document to be applied to all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "software_commit": { + "description": "The current commit ID for the software associated with the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information of the hosts in this cluster to which the desired configuration document specified by the Configuration.ApplyResult.commit should be applied to.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "host_status": { + "description": "Status of the hosts in this cluster to which the desired configuration specified by the Configuration.ApplyResult.commit was applied to. Hosts on which the Configuration.apply operation was successful are specified by Configuration.ApplyResult.successful-hosts. Hosts on which the apply operation failed are specified by Configuration.ApplyResult.failed-hosts. Hosts which were skipped by the Configuration.apply operation are specified by Configuration.ApplyResult.skipped-hosts.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostStatus" + } + }, + "successful_hosts": { + "description": "Hosts in this cluster to which the desired configuration specified by the Configuration.ApplyResult.commit has been successfully applied to.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "failed_hosts": { + "description": "Hosts in this cluster to which the desired configuration specified by the Configuration.ApplyResult.commit failed to be applied.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "skipped_hosts": { + "description": "Hosts in this cluster that were skipped by the Configuration.apply operation.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "commit", + "software_commit", + "host_info", + "host_status", + "successful_hosts", + "failed_hosts", + "skipped_hosts" + ] + }, + "EsxSettingsClustersConfigurationApplySpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired configuration to be used during the Configuration.apply operation.\nif unset or empty the apply operation will use the latest commit to fetch the desired configuration.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "hosts": { + "description": "The specific hosts within the cluster to be considered during the Configuration.apply operation.\nif unset or empty the Configuration.apply operation will remediate all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "apply_policy_spec": { + "description": "The parameter can be used to override the default remediation policies for the task.\nif unset the default cluster remediation policies are used.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpec" + } + } + }, + "EsxSettingsClustersConfigurationApplyTask": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationApplySpec", + "description": "The Apply specification." + }, + "EsxSettingsClustersConfigurationAuditRecordsFilterSpec": { + "type": "object", + "properties": { + "operations": { + "description": "List of audit records that match the given operations An operation in operations can be any of \n - Import\n - Export\n - Remediate\n - Checkcompliance\n - Precheck\n - Transition-Enable\n - Draft-List\n - Draft-Create\n - Draft-ImportFromHost\n - Draft-Get\n - Draft-ExportConfig\n - Draft-Update\n - Draft-ShowChanges\n - Draft-CheckCompliance\n - Draft-Precheck\n - Draft-Delete\n - Draft-Apply\n \nIf unset or empty, records with any operation match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "usernames": { + "description": "List of audit records that match the given users\nIf unset or empty, records with any users match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "time_duration": { + "description": "List of audit records that match AuditRecords.FilterSpec.Timeframe, valid values are Timeframe. i.e. For ex: records within last 3 months.\nIf unset or empty, last one year audit records match the filter.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationAuditRecordsFilterSpecTimeframe" + }, + "time_period": { + "description": "List of audit records that match the given start time i.e. occurred after the AuditRecords.TimePeriod.start and the given end time i.e. before the AuditRecords.TimePeriod.end\nThis field is optional and it is only relevant when the value of AuditRecords.FilterSpec.time-duration is CUSTOM.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationAuditRecordsTimePeriod" + } + } + }, + "EsxSettingsClustersConfigurationAuditRecordsFilterSpecTimeframe": { + "type": "string", + "description": "List of audit records that match the given time frame i.e. For ex: occurred within last 30 days.", + "enum": [ + "THREE_MONTHS", + "SIX_MONTHS", + "YEAR", + "CUSTOM" + ] + }, + "EsxSettingsClustersConfigurationAuditRecordsInfo": { + "type": "object", + "properties": { + "cluster_id": { + "description": "Identifier of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "operation": { + "description": "Name of the operation which can be one of \n - Import\n - Export\n - Remediate\n - Checkcompliance\n - Precheck\n - Transition-Enable\n - Draft-List\n - Draft-Create\n - Draft-ImportFromHost\n - Draft-Get\n - Draft-ExportConfig\n - Draft-Update\n - Draft-ShowChanges\n - Draft-CheckCompliance\n - Draft-Precheck\n - Draft-Delete\n - Draft-Apply\n \nWhen clients pass a value of this structure as a parameter, the field must be one of Import, Export, Remediate, Checkcompliance, Precheck, Transition-Enable, Draft-List, Draft-Create, Draft-ImportFromHost, Draft-Get, Draft-ExportConfig, Draft-Update, Draft-ShowChanges, Draft-CheckCompliance, Draft-Precheck, Draft-Delete, or Draft-Apply. When operations return a value of this structure as a result, the field will be one of Import, Export, Remediate, Checkcompliance, Precheck, Transition-Enable, Draft-List, Draft-Create, Draft-ImportFromHost, Draft-Get, Draft-ExportConfig, Draft-Update, Draft-ShowChanges, Draft-CheckCompliance, Draft-Precheck, Draft-Delete, or Draft-Apply.", + "type": "string" + }, + "username": { + "description": "User who initiated the operation", + "type": "string" + }, + "start_time": { + "description": "Time when the operation AuditRecords.Info.operation was started\nstartTime might not be available for a task.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation AuditRecords.Info.operation was completed\nendTime might not be available for a task.", + "type": "string", + "format": "date-time" + }, + "status": { + "description": "Status of the operation AuditRecords.Info.operation", + "$ref": "#/definitions/CisTaskStatus" + }, + "operation_details": { + "description": "Details of the operation.\noperationdetails might not be available for an operation which is not a task.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationAuditRecordsOperationDetails" + } + }, + "required": [ + "cluster_id", + "operation", + "username", + "status" + ] + }, + "EsxSettingsClustersConfigurationAuditRecordsOperationDetails": { + "type": "object", + "properties": { + "error": { + "description": "Error occurred during the operation\nerror shall only be set if configmanager operation is a task", + "type": "string" + }, + "task_id": { + "description": "TaskId of the operation\ntaskId shall only be set if configmanager operation is a task\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "draft_id": { + "description": "Draft ID of the draft operation\ndraftId shall only be set if this is an operaton on draft\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.draft. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.draft.", + "type": "string" + }, + "cancelled": { + "description": "Indicates if the operation was cancelled\ncancelled shall only be set if configmanager operation is a task", + "type": "boolean" + } + } + }, + "EsxSettingsClustersConfigurationAuditRecordsTimePeriod": { + "type": "object", + "properties": { + "start": { + "description": "List of audit records that match the given start time i.e. occurred after the DateTime start.", + "type": "string", + "format": "date-time" + }, + "end": { + "description": "List of audit records that match the given end time i.e. occurred before the DateTime end.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "start", + "end" + ] + }, + "EsxSettingsClustersConfigurationClusterCompliance": { + "type": "object", + "properties": { + "cluster_status": { + "description": "Consolidated status of all host compliance checks.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationClusterComplianceStatus" + }, + "commit": { + "description": "This identifier refers to the commit action of importing the desired configuration document. It will not be set for a draft execution of check compliance.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "software_commit": { + "description": "The current commit ID for the software associated with the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "summary": { + "description": "Summarizing check compliance operation on the hosts in the cluster.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "host_info": { + "description": "Map of host IDs to hostname.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "hosts": { + "description": "Map of host IDs to their compliance results.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostResult" + } + }, + "compliant_hosts": { + "description": "Identifiers of compliant hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "non_compliant_hosts": { + "description": "Identifiers of non-compliant hosts.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "failed_hosts": { + "description": "Identifiers of hosts where the operation failed.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "skipped_hosts": { + "description": "Identifiers of hosts where the operation was skipped. i.e disconnected hosts\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "end_time": { + "description": "CheckCompliance completion time.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "cluster_status", + "software_commit", + "summary", + "host_info", + "hosts", + "compliant_hosts", + "non_compliant_hosts", + "failed_hosts", + "skipped_hosts", + "end_time" + ] + }, + "EsxSettingsClustersConfigurationClusterComplianceStatus": { + "type": "string", + "description": "Consolidated compliance status of the cluster", + "enum": [ + "RUNNING", + "COMPLIANT", + "NOT_COMPLIANT" + ] + }, + "EsxSettingsClustersConfigurationClusterPrecheckResult": { + "type": "object", + "properties": { + "status": { + "description": "Overall status of precheck on the cluster. Operation is sucessfull when precheck is run on all hosts successfully and no validation or precheck errors are detected.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationClusterPrecheckResultStatus" + }, + "commit": { + "description": "This identifier refers to the commit action of importing the desired configuration document.\nThis field is s not set for a precheck of a draft configuration.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "software_commit": { + "description": "The current commit ID for the software associated with the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "end_time": { + "description": "Precheck completion time.", + "type": "string", + "format": "date-time" + }, + "summary": { + "description": "Summarizing precheck operation on the host and cluster.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "remediation_summary": { + "description": "Summarizing remediation stating number of hosts needing reboot and maintenance mode during remediation and number of precheck errors on host and cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "remediation_notes": { + "description": "Static notes to the user describing steps that will be taken during remediation.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "host_info": { + "description": "Map of host IDs to hostname\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "host_precheck": { + "description": "Map of host IDs to their precheck results. If ClusterPrecheckResult.status is ERROR, This field will contain Validation errors or Host Impact and Health Check errors. If ClusterPrecheckResult.status is OK, This field will contain Impact and Health Check information.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostPrecheckResult" + } + }, + "precheck_result": { + "description": "This field represents the precheck results on the cluster, if any one host in the cluster needs to be put in maintenance mode or to be rebooted.\nThis field is set if cluster prechecks are invoked.", + "$ref": "#/definitions/EsxSettingsStatusInfo" + }, + "successful_hosts": { + "description": "Hosts in this cluster where the precheck was sucessfully run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "failed_hosts": { + "description": "Hosts in this cluster where the precheck failed to run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "skipped_hosts": { + "description": "Hosts in this cluster where the precheck was not tried because the host was disconnected.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "status", + "software_commit", + "end_time", + "summary", + "remediation_summary", + "remediation_notes", + "host_info", + "host_precheck", + "successful_hosts", + "failed_hosts", + "skipped_hosts" + ] + }, + "EsxSettingsClustersConfigurationClusterPrecheckResultStatus": { + "type": "string", + "description": "The ClusterPrecheckResult.Status enumerated type contains the possible statuses of the Precheck API on the cluster.", + "enum": [ + "RUNNING", + "OK", + "ERROR" + ] + }, + "EsxSettingsClustersConfigurationComplianceInfo": { + "type": "object", + "properties": { + "sets": { + "description": "List of configuration drifts represented by SettingCompliance. Each describing a configuration whose value on ESXi host is different to that in the desired document\nThis field is unset if there are no drifts to report in this category.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationSettingCompliance" + } + }, + "adds": { + "description": "List of configuration drifts represented by SettingCompliance. Each describing a configuration that is present in the desired document but absent on the ESXi host.\nThis field is unset if there are no drifts to report in this category.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationSettingCompliance" + } + }, + "deletes": { + "description": "List of configuration drifts represented by SettingCompliance. Each describing a configuration that is present on the ESXi host but absent in the desired document.\nThis field is unset if there are no drifts to report in this category.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationSettingCompliance" + } + } + } + }, + "EsxSettingsClustersConfigurationComplianceStatus": { + "type": "string", + "description": "This ComplianceStatus enumerated type represents the compliance status of desired configuration on the ESXi host.", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT" + ] + }, + "EsxSettingsClustersConfigurationDependencyError": { + "type": "object", + "properties": { + "required_value": { + "description": "The dependency required by a union tag.", + "type": "string" + }, + "current_value": { + "description": "If set, it contains the current value of the dependency property.", + "type": "string" + }, + "possible_values": { + "description": "The possible values of the dependency property that are compatible with this property.", + "type": "string" + } + }, + "required": [ + "required_value", + "possible_values" + ] + }, + "EsxSettingsClustersConfigurationDetailedValidationError": { + "type": "object", + "properties": { + "hosts": { + "description": "If this error is from a host-level validation performed during a precheck, the hosts that experienced this error will be added here.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "A user-friendly description of the error.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "type": { + "description": "The type of error. Additional information may be set for some types of errors.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDetailedValidationErrorErrorType" + }, + "pattern": { + "description": "The pattern the property is required to match.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of PATTERN_MISMATCH or PROPERTY_NAME_MISMATCH.", + "type": "string" + }, + "expected_type": { + "description": "The expected type of the property.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is INVALID_TYPE.", + "type": "string" + }, + "instance_id": { + "description": "The instance ID that was duplicated or is missing from the profile section.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of DUPLICATE_INSTANCE_ID or MISSING_REQUIRED_PROFILE_INSTANCE.", + "type": "string" + }, + "property_name": { + "description": "The name of the property that holds the instance ID.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is MISSING_INSTANCE_ID.", + "type": "string" + }, + "maximum_length": { + "description": "The maximum length allowed for a string or array property.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of MAX_STRING_LENGTH or MAX_ARRAY_LENGTH.", + "type": "integer", + "format": "int64" + }, + "minimum_length": { + "description": "The minimum length allowed for a string or array property.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of MIN_STRING_LENGTH or MIN_ARRAY_LENGTH.", + "type": "integer", + "format": "int64" + }, + "maximum_value": { + "description": "The maximum allowed value for a property.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is MAX_VALUE.", + "type": "integer", + "format": "int64" + }, + "minimum_value": { + "description": "The minimum allowed value for a property.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is MIN_VALUE.", + "type": "integer", + "format": "int64" + }, + "dependency_error": { + "description": "The dependency required by a union tag.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of INVALID_UNION_TAG or UNION_CASE_WITHOUT_UNION_TAG.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDependencyError" + }, + "component": { + "description": "For SCHEMA_NOT_FOUND errors, this will be the component portion of the unknown configuration.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is SCHEMA_NOT_FOUND.", + "type": "string" + }, + "group": { + "description": "For SCHEMA_NOT_FOUND errors, this will be the group portion of the unknown configuration.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is SCHEMA_NOT_FOUND.", + "type": "string" + }, + "key": { + "description": "For SCHEMA_NOT_FOUND errors, this will be the key portion of the unknown configuration.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is SCHEMA_NOT_FOUND.", + "type": "string" + }, + "path": { + "description": "The JSON-pointer to the configuration key in the profile section where the instance/key needs to be added.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of MISSING_REQUIRED_PROFILE_INSTANCE or MISSING_REQUIRED_PROFILE_KEY.", + "type": "string" + }, + "required_property": { + "description": "The name of the required property that is missing from the profile section for this instance/key.\nThis field is optional and it is only relevant when the value of DetailedValidationError.type is one of MISSING_REQUIRED_PROFILE_INSTANCE or MISSING_REQUIRED_PROFILE_KEY.", + "type": "string" + } + }, + "required": [ + "message", + "type" + ] + }, + "EsxSettingsClustersConfigurationDetailedValidationErrorErrorType": { + "type": "string", + "description": "The DetailedValidationError.ErrorType enum contains the possible types of errors related to property validation.", + "enum": [ + "GENERIC", + "ADDITIONAL_PROPERTY", + "INVALID_ENUM_OPTION", + "INVALID_TYPE", + "MAX_STRING_LENGTH", + "MIN_STRING_LENGTH", + "MISSING_REQUIRED", + "INVALID_UNION_TAG", + "DUPLICATE_INSTANCE_ID", + "MAX_ARRAY_LENGTH", + "MIN_ARRAY_LENGTH", + "MAX_VALUE", + "MIN_VALUE", + "PATTERN_MISMATCH", + "SCHEMA_NOT_FOUND", + "NULL_VALUE", + "INVALID_DELETE_DEFAULT", + "HOST_SPECIFIC_IN_PROFILE", + "NOT_HOST_SPECIFIC", + "MISSING_INSTANCE_ID", + "EMPTY_PROPERTY", + "KEY_IN_HOST_OVERRIDE", + "PLACEHOLDER_FOUND", + "PROPERTY_NAME_MISMATCH", + "MISSING_REQUIRED_PROFILE_INSTANCE", + "MISSING_REQUIRED_PROFILE_KEY", + "HOST_SPECIFIC_KEY_IN_OVERRIDE", + "UNION_CASE_WITHOUT_UNION_TAG" + ] + }, + "EsxSettingsClustersConfigurationDocumentStructure": { + "type": "string", + "description": "The DocumentStructure enumerated type contains the possible structures of the configuration document.", + "enum": [ + "HOST_ORIENTED", + "PROFILE_ORIENTED" + ] + }, + "EsxSettingsClustersConfigurationDraftImportResult": { + "type": "object", + "properties": { + "status": { + "description": "Status of importing desired configuration.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftImportResultStatus" + }, + "draft": { + "description": "This identifier refers to the commit action of importing the desired configuration document. This identifier can be used in the apply API.\nThis field is optional and it is only relevant when the value of DraftImportResult.status is OK.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.draft. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.draft.", + "type": "string" + }, + "error": { + "description": "Localized message describing the error encountered while importing desired configuration. The import operation will fail if the configuration document is an invalid JSON.\nThis field is optional and it is only relevant when the value of DraftImportResult.status is ERROR.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "warnings": { + "description": "Any issues found during the import are reported in this list.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "status" + ] + }, + "EsxSettingsClustersConfigurationDraftImportResultStatus": { + "type": "string", + "description": "The DraftImportResult.Status enumerated type contains the possible status codes describing the result of importing desired configuration for a cluster.", + "enum": [ + "RUNNING", + "OK", + "ERROR", + "CANCELED" + ] + }, + "EsxSettingsClustersConfigurationDraftsApply": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsApplySpec", + "description": "Additional arguments for the operation." + }, + "EsxSettingsClustersConfigurationDraftsApplyResult": { + "type": "object", + "properties": { + "commit": { + "description": "The ID of the commit created for this operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "apply_task": { + "description": "If the cluster is not empty, this will be set to the ID of the Apply task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + } + }, + "required": [ + "commit" + ] + }, + "EsxSettingsClustersConfigurationDraftsApplySpec": { + "type": "object", + "properties": { + "message": { + "description": "Message to include with the commit.\nIf unset, message is set to empty string.", + "type": "string" + }, + "apply_policy_spec": { + "description": "The parameter can be used to override the default remediation policies for the apply task.\nif unset the default cluster remediation policies are used.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpec" + } + } + }, + "EsxSettingsClustersConfigurationDraftsChangeDetails": { + "type": "object", + "properties": { + "modified_properties": { + "description": "Captures the properties that were added/modified in this draft. The map keys are JSON-Pointers that refer to the properties in the draft that are modifications. The values contain information about the property and, in the case of a modification, the location of the corresponding property in the desired document.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsModificationInfo" + } + }, + "deleted_properties": { + "description": "Captures the properties that were deleted from this draft. The map keys are JSON-Pointers that refer to the properties in the desired document that were deleted.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsDeletionInfo" + } + } + }, + "required": [ + "modified_properties", + "deleted_properties" + ] + }, + "EsxSettingsClustersConfigurationDraftsChangedProperty": { + "type": "object", + "properties": { + "path": { + "description": "A JSON-Pointer that refers to the property that has been changed.", + "type": "string" + }, + "current": { + "description": "If set, the current value of the property in the cluster configuration. If not set, the property does not exist in the current cluster configuration.", + "type": "string" + }, + "draft": { + "description": "If set, this is the new value for the property in this draft. If not set, the property has been deleted in this draft.", + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "EsxSettingsClustersConfigurationDraftsChangesResult": { + "type": "object", + "properties": { + "sets": { + "description": "If set, this contains a list of properties that have been changed from one value to another in this draft.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsChangedProperty" + } + }, + "adds": { + "description": "If set, this contains a list of properties that have been added in this draft.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsChangedProperty" + } + }, + "deletes": { + "description": "If set, this contains a list of properties that have been deleted in this draft.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsChangedProperty" + } + } + } + }, + "EsxSettingsClustersConfigurationDraftsConflictDetails": { + "type": "object", + "properties": { + "properties": { + "description": "Map of properties in the current draft that were changed and conflict with changes that were applied to the cluster configuration document since this draft was created.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsConflictPropertyInfo" + } + } + }, + "required": [ + "properties" + ] + }, + "EsxSettingsClustersConfigurationDraftsConflictPropertyInfo": { + "type": "object", + "properties": { + "property_path": { + "description": "The path refers to the conflicting property in the cluster configuration document.", + "type": "string" + } + }, + "required": [ + "property_path" + ] + }, + "EsxSettingsClustersConfigurationDraftsCreate": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsCreateSpec", + "description": "Options used when creating the new draft." + }, + "EsxSettingsClustersConfigurationDraftsCreateSpec": { + "type": "object", + "properties": { + "config": { + "description": "The initial configuration for the draft.\nIf not specified, the current desired configuration for the cluster will be used.", + "type": "string" + } + } + }, + "EsxSettingsClustersConfigurationDraftsDeletionInfo": { + "type": "object", + "properties": { + "display_path": { + "description": "A list of the display names for components of the property path.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "display_path" + ] + }, + "EsxSettingsClustersConfigurationDraftsImportFromHostTask": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "Identifier of the reference host\nThe parameter must be an identifier for the resource type: HostSystem." + } + }, + "required": [ + "host" + ] + }, + "EsxSettingsClustersConfigurationDraftsInfo": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the configuration draft.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsMetadata" + }, + "errors": { + "description": "If set, there were validation errors detected in the draft configuration.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsValidationDetails" + }, + "changes": { + "description": "If set, there are changes in this draft configuration from the current desired configuration.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsChangeDetails" + }, + "conflicts": { + "description": "If set, there are changes in this draft configuration that conflict with changes applied by a different user.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsConflictDetails" + }, + "host_info": { + "description": "A mapping of BIOS UUIDs for every host in the cluster to information about that host. The host-specific/host-override sections of the configuration use BIOS UUIDs to identify hosts, so this information can be useful to get details about hosts mentioned there.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "host_id_to_UUID": { + "description": "Map of host IDs to BIOS UUIDs.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "config": { + "description": "Configuration specification associated with the draft, encoded as JSON.", + "type": "string" + } + }, + "required": [ + "metadata", + "host_info", + "host_id_to_UUID", + "config" + ] + }, + "EsxSettingsClustersConfigurationDraftsMetadata": { + "type": "object", + "properties": { + "id": { + "description": "The draft identifier\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.draft. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.draft.", + "type": "string" + }, + "parent_id": { + "description": "The identifier of the parent commit.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "owner": { + "description": "Owner of the configuration draft.", + "type": "string" + }, + "state": { + "description": "State of the configuration draft.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsState" + }, + "revision": { + "description": "The current revision of this draft. Any updates to the draft will increment this value. This value should be included in calls to Drafts.update so that concurrent changes can be detected.", + "type": "integer", + "format": "int64" + }, + "creation_time": { + "description": "Creation time of the configuration draft.", + "type": "string", + "format": "date-time" + }, + "modified_time": { + "description": "Last modified time of the configuration draft.", + "type": "string", + "format": "date-time" + }, + "precheck_task": { + "description": "The ID of the precheck task that was last run for this draft.\nThis field is unset if precheck has not been done since the last modification.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + } + }, + "required": [ + "id", + "parent_id", + "owner", + "state", + "revision", + "creation_time", + "modified_time" + ] + }, + "EsxSettingsClustersConfigurationDraftsModificationInfo": { + "type": "object", + "properties": { + "display_path": { + "description": "A list of the display names for components of the property path.", + "type": "array", + "items": { + "type": "string" + } + }, + "original_path": { + "description": "If set, it contains a JSON-Pointer to the corresponding property in the original document. Otherwise, this modification is an addition to the draft.", + "type": "string" + } + }, + "required": [ + "display_path" + ] + }, + "EsxSettingsClustersConfigurationDraftsState": { + "type": "string", + "description": "The states of the draft configuration.", + "enum": [ + "VALID", + "INVALID" + ] + }, + "EsxSettingsClustersConfigurationDraftsUpdate": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsUpdateSpec", + "description": "" + }, + "EsxSettingsClustersConfigurationDraftsUpdateSpec": { + "type": "object", + "properties": { + "expected_revision": { + "description": "When supplied, this revision value will be compared against the draft's current revision as returned in Drafts.Metadata.revision to ensure no other changes have been applied.", + "type": "integer", + "format": "int64" + }, + "config": { + "description": "The new cluster configuration for this draft, encoded as JSON.", + "type": "string" + } + }, + "required": [ + "config" + ] + }, + "EsxSettingsClustersConfigurationDraftsValidationDetails": { + "type": "object", + "properties": { + "errors": { + "description": "Map of JSON-Pointers to properties in the draft configuration that have validation errors based on the schema and host-level validations.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDraftsValidationErrors" + } + } + }, + "required": [ + "errors" + ] + }, + "EsxSettingsClustersConfigurationDraftsValidationErrors": { + "type": "object", + "properties": { + "display_path": { + "description": "A list of the display names for components of the property path.", + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "description": "Localized error message describing the validation error.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationDetailedValidationError" + } + } + }, + "required": [ + "display_path", + "errors" + ] + }, + "EsxSettingsClustersConfigurationExportResult": { + "type": "object", + "properties": { + "config": { + "description": "Configuration of the cluster encoded as JSON.", + "type": "string" + } + }, + "required": [ + "config" + ] + }, + "EsxSettingsClustersConfigurationHostCompliance": { + "type": "object", + "properties": { + "status": { + "description": "This field indicates whether the ESXi host is compliant with the desired configuration specified in esx.settings_daemon.Configuration#CheckComplianceSpec. If COMPLIANT, no other information is available. If NON_COMPLAINT, drift information can be fetched from {#ComplianceInfo}", + "$ref": "#/definitions/EsxSettingsClustersConfigurationComplianceStatus" + }, + "compliance_info": { + "description": "Settings compliance information generated by the CheckCompliance operation.\nThis field is optional and it is only relevant when the value of HostCompliance.status is NON_COMPLIANT.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationComplianceInfo" + } + }, + "required": [ + "status" + ] + }, + "EsxSettingsClustersConfigurationHostPrecheckResult": { + "type": "object", + "properties": { + "status": { + "description": "This field represents the status of the precheck request for this host. {link HostStatus#status} is ERROR or SKIPPED, if precheck was not completed on the host due to some error or if health checks failed. If precheck failed due to host validation errors, details are specified in HostPrecheckResult.validation-errors. If precheck failed due to generic error, details are specified in the HostPrecheckResult.summary. Health check result is specified in HostPrecheckResult.precheck-result.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostStatus" + }, + "summary": { + "description": "Summarizing precheck operation on the host.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "validation_errors": { + "description": "This field represents the validation errors if the desired configuration specified is not valid.\nThis field is set if #HostStatus#status is ERROR due to host returning validation errors.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationValidationError" + } + }, + "impact": { + "description": "This field represents the impact on the host to reach the desired configuration state.\nThis field is set if there are no validation errors on the host. The HostStatus.status may be OK or ERROR.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationImpactInfo" + }, + "precheck_result": { + "description": "This field represents the health check results from the host, if the host needs to be put in maintenance mode or to be rebooted.\nThis field is set if there are not validation errors and health checks are run on the host. The HostStatus.status may be OK or ERROR.", + "$ref": "#/definitions/EsxSettingsStatusInfo" + } + }, + "required": [ + "status", + "summary" + ] + }, + "EsxSettingsClustersConfigurationHostResult": { + "type": "object", + "properties": { + "host_status": { + "description": "This field represents the status of the check compliance operation. If status is OK, the result of operation can be retrived from {#HostCompliance} {#Summary} field will summarize the status of the operation and if applicable, the specific error that occured. Additionally, {#ValidationError} is populated if the operation fails due to host validation errors in desired document.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostStatus" + }, + "summary": { + "description": "Summary of check compliance operation on the host.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "errors": { + "description": "List of validation errors returned by the host. This is only set for a specific HostStatus ERROR case.\nThis field is set only if the document fails to validate on the host.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationValidationError" + } + }, + "host_compliance": { + "description": "This field provides compliance results for the host if the operation successfully completed on the host. That is, this field is populated only if HostStatus is OK.\nThis field is unset if check compliance could not be completed on the host.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostCompliance" + } + }, + "required": [ + "host_status", + "summary" + ] + }, + "EsxSettingsClustersConfigurationHostStatus": { + "type": "object", + "properties": { + "status": { + "description": "The status of the operation.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationHostStatusStatus" + }, + "attempts": { + "description": "Number of the performed attempts of the operation.\nThis field is unset if it is not applicable.", + "type": "integer", + "format": "int64" + }, + "remaining_retries": { + "description": "Number of the remaining attempts of the operation.\nThis field is unset if it is not applicable.", + "type": "integer", + "format": "int64" + }, + "start_time": { + "description": "Time when the operation started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation completed.", + "type": "string", + "format": "date-time" + }, + "notifications": { + "description": "Notifications providing additional information about the status of the operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "start_time", + "end_time", + "notifications" + ] + }, + "EsxSettingsClustersConfigurationHostStatusStatus": { + "type": "string", + "description": "The HostStatus.Status enumerated type contains the possible different status codes that can be returned while trying to perform an operation on the hosts within the cluster.", + "enum": [ + "OK", + "PENDING", + "RUNNING", + "RETRY_PENDING", + "SKIPPED", + "CANCELED", + "TIMED_OUT", + "ERROR" + ] + }, + "EsxSettingsClustersConfigurationImpactInfo": { + "type": "object", + "properties": { + "impact": { + "description": "This field indicates the ESXi host impact on applying the desired configuration.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationImpactType" + }, + "info": { + "description": "This field represents the list of impact information describing the configuration changes needed on the host to reach the desired state.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "impact", + "info" + ] + }, + "EsxSettingsClustersConfigurationImpactType": { + "type": "string", + "description": "The ImpactType enumerated type contains information about the impact of applying desired configuration on the ESXi host.", + "enum": [ + "NO_IMPACT", + "MAINTENANCE_MODE_REQUIRED", + "REBOOT_REQUIRED" + ] + }, + "EsxSettingsClustersConfigurationImportConfigTask": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationImportSpec", + "description": "An Configuration.ImportSpec that contains the new desired configuration for the cluster." + }, + "EsxSettingsClustersConfigurationImportSpec": { + "type": "object", + "properties": { + "config": { + "description": "The cluster configuration, encoded as JSON.", + "type": "string" + }, + "description": { + "description": "A description of this version of the configuration.", + "type": "string" + } + }, + "required": [ + "config" + ] + }, + "EsxSettingsClustersConfigurationInfo": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the configuration commit.", + "$ref": "#/definitions/EsxSettingsClustersConfigurationMetadata" + }, + "host_info": { + "description": "A mapping of BIOS UUIDs for every host in the cluster to information about that host. The host-specific/host-override sections of the configuration use BIOS UUIDs to identify hosts, so this information can be useful to get details about hosts mentioned there.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "config": { + "description": "Configuration specification associated with the commit, encoded as JSON.", + "type": "string" + } + }, + "required": [ + "metadata", + "host_info", + "config" + ] + }, + "EsxSettingsClustersConfigurationMetadata": { + "type": "object", + "properties": { + "id": { + "description": "The identifier of the commit.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "author": { + "description": "Author of the configuration commit.", + "type": "string" + }, + "creation_time": { + "description": "Creation time of the configuration commit.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "author", + "creation_time" + ] + }, + "EsxSettingsClustersConfigurationReportsRecentTasksDraftTasks": { + "type": "object", + "properties": { + "precheck": { + "description": "The ID of the last precheck task to be executed for this draft.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + } + } + }, + "EsxSettingsClustersConfigurationReportsRecentTasksInfo": { + "type": "object", + "properties": { + "check_compliance": { + "description": "The ID of the last check-compliance task to be executed.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "precheck": { + "description": "The ID of the last precheck task to be executed.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "draft_tasks": { + "description": "Map of draft IDs to the latest tasks executed for that draft.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.draft. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.draft.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersConfigurationReportsRecentTasksDraftTasks" + } + }, + "apply": { + "description": "The ID of the last apply task to be executed.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + } + }, + "required": [ + "draft_tasks" + ] + }, + "EsxSettingsClustersConfigurationSchemaResult": { + "type": "object", + "properties": { + "schema": { + "description": "The configuration schema associated with the cluster.", + "type": "string" + } + }, + "required": [ + "schema" + ] + }, + "EsxSettingsClustersConfigurationSettingCompliance": { + "type": "object", + "properties": { + "path": { + "description": "Full path to the setting within the desired document.", + "type": "string" + }, + "current": { + "description": "Value of setting on the ESXi host.\nThis field is unset if there is no host value to report or if setting is of complex type.", + "type": "string" + }, + "target": { + "description": "Value of setting in the desired document.\nThis field is unset if there is no value in the desired document to report or if setting is of complex type.", + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "EsxSettingsClustersConfigurationValidationError": { + "type": "object", + "properties": { + "path": { + "description": "Full path to the configuration or the property within the configuration which was found to be invalid.", + "type": "string" + }, + "messages": { + "description": "Localized error message describing the validation error.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "path", + "messages" + ] + }, + "EsxSettingsClustersDepotOverridesAdd": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesDepot", + "description": "Information of a depot override." + }, + "EsxSettingsClustersDepotOverridesDepot": { + "type": "object", + "properties": { + "location": { + "description": "Location of the depot override. This could be a location of zip file or location to an index.xml file.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "location" + ] + }, + "EsxSettingsClustersDepotOverridesInfo": { + "type": "object", + "properties": { + "depots": { + "description": "List of the depot overrides.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesDepot" + } + } + }, + "required": [ + "depots" + ] + }, + "EsxSettingsClustersDepotOverridesRemove": { + "$ref": "#/definitions/EsxSettingsClustersDepotOverridesDepot", + "description": "Information of the depot override to be removed." + }, + "EsxSettingsClustersEnablementConfigurationInfo": { + "type": "object", + "properties": { + "enabled": { + "description": "Status of the feature enablement True if feature is enabled, false otherwise", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionFileSpec": { + "type": "object", + "properties": { + "filename": { + "description": "Filename of the imported configuration.", + "type": "string" + }, + "config": { + "description": "Configuration from the imported file.", + "type": "string" + } + }, + "required": [ + "filename", + "config" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionImportFromFile": { + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionFileSpec", + "description": "Input structure containing file information." + }, + "EsxSettingsClustersEnablementConfigurationTransitionImportFromHostTask": { + "type": "string", + "description": "Identifier of the reference host\nThe parameter must be an identifier for the resource type: HostSystem." + }, + "EsxSettingsClustersEnablementConfigurationTransitionInfo": { + "type": "object", + "properties": { + "status": { + "description": "Status of transition on a cluster.", + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionInfoStatus" + }, + "state": { + "description": "State of the transition. This field is set if the cluster is currently being transitioned to desired configuration management platform.\nThis field is optional and it is only relevant when the value of Transition.Info.status is one of STARTED or NOT_ALLOWED_IN_CURRENT_STATE.", + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionState" + }, + "fast_track": { + "description": "Flag describing if fast transition workflow is eligible on the cluster. Fast transition allows user to enable desired configuration platform on the cluster with default configuration. The cluster is eligible if transition workflow is not started and the cluster is empty.\nThis field is optional and it is only relevant when the value of Transition.Info.status is NOT_STARTED.", + "type": "boolean" + } + }, + "required": [ + "status" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionInfoStatus": { + "type": "string", + "description": "The Transition.Info.Status enumerated type contains the possible status codes describing the transition state of the cluster.", + "enum": [ + "ENABLED", + "ENABLE_IN_PROGRESS", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_STARTED", + "SOFTWARE_SPECIFICATION_NOT_SET", + "STARTED" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionReferenceHost": { + "type": "object", + "properties": { + "host": { + "description": "Reference host ID.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "host_info": { + "description": "Host Info for Reference host.", + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "required": [ + "host", + "host_info" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionSource": { + "type": "string", + "description": "The Transition.Source enumerated type describes the possible sources for specifying the desired configuration of the cluster.", + "enum": [ + "FILE", + "HOST" + ] + }, + "EsxSettingsClustersEnablementConfigurationTransitionState": { + "type": "object", + "properties": { + "author": { + "description": "Author of transition.", + "type": "string" + }, + "start_time": { + "description": "The start time of the transition process.", + "type": "string", + "format": "date-time" + }, + "modified_time": { + "description": "Last modified time of the transition process.", + "type": "string", + "format": "date-time" + }, + "source": { + "description": "Source of reference configuration.", + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionSource" + }, + "host": { + "description": "Reference host.\nThis field is optional and it is only relevant when the value of Transition.State.source is HOST.", + "$ref": "#/definitions/EsxSettingsClustersEnablementConfigurationTransitionReferenceHost" + }, + "filename": { + "description": "Filename of the imported configuration.\nThis field is optional and it is only relevant when the value of Transition.State.source is FILE.", + "type": "string" + } + }, + "required": [ + "author", + "start_time", + "modified_time", + "source" + ] + }, + "EsxSettingsClustersEnablementSoftwareCheckSpec": { + "type": "object", + "properties": { + "checks_to_skip": { + "description": "Specifies the checks that should be skipped. If the set is empty, all checks will be performed.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareCheckType" + } + } + }, + "required": [ + "checks_to_skip" + ] + }, + "EsxSettingsClustersEnablementSoftwareCheckTask": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareCheckSpec", + "description": "Check specification.\nIf unset, all checks are performed." + }, + "EsxSettingsClustersEnablementSoftwareCheckType": { + "type": "string", + "description": "The Software.CheckType enumerated type contains various checks to identify the possibility to enable the feature that manages the cluster with a single software specification.", + "enum": [ + "SOFTWARE", + "VERSION", + "STATELESSNESS", + "VUM_REMEDIATION", + "SOFTWARE_SPECIFICATION_EXISTENCE", + "VSAN_WITNESS_ELIGIBILITY" + ] + }, + "EsxSettingsClustersEnablementSoftwareEnableSpec": { + "type": "object", + "properties": { + "skip_software_check": { + "description": "Skip SOFTWARE check during feature enablement.", + "type": "boolean" + } + }, + "required": [ + "skip_software_check" + ] + }, + "EsxSettingsClustersEnablementSoftwareEnableTask": { + "$ref": "#/definitions/EsxSettingsClustersEnablementSoftwareEnableSpec", + "description": "Enablement specification.\nIf unset, all checks are performed." + }, + "EsxSettingsClustersEnablementSoftwareInfo": { + "type": "object", + "properties": { + "enabled": { + "description": "Status of the feature enablement True if feature is enabled, false otherwise", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsClustersPoliciesApplyConfiguredPolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on a given host of the cluster.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation in the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "disable_dpm": { + "description": "Disable DPM on the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "disable_hac": { + "description": "Disable HA Admission control on the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "evacuate_offline_vms": { + "description": "Evacuate powered off/suspended VMs when attempting maintenance mode.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "enforce_hcl_validation": { + "description": "Enforce Hcl validation, when applicable, to prevent remediation if hardware compatibility issues are found.\nIf unset, hardware compatibility issues will not prevent remediation.", + "type": "boolean" + }, + "parallel_remediation_action": { + "description": "Enable parallel remediation of hosts in maintenance mode. Set max hosts when applicable.\nIf unset, parallel remediation will not happen.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyParallelRemediationAction" + } + } + }, + "EsxSettingsClustersPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Apply.ConfiguredPolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on a given host of the cluster.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation in the cluster.", + "type": "boolean" + }, + "disable_dpm": { + "description": "Disable DPM on the cluster.", + "type": "boolean" + }, + "disable_hac": { + "description": "Disable HA Admission control on the cluster.", + "type": "boolean" + }, + "evacuate_offline_vms": { + "description": "Evacuate powered off/suspended VMs when attempting maintenance mode.", + "type": "boolean" + }, + "enforce_hcl_validation": { + "description": "Enforce Hcl validation, when applicable, to prevent remediation if hardware compatibility issues are found.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "parallel_remediation_action": { + "description": "Enable parallel remediation of hosts in maintenance mode.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveParallelRemediationAction" + } + }, + "required": [ + "failure_action", + "pre_remediation_power_action", + "enable_quick_boot", + "disable_dpm", + "disable_hac", + "evacuate_offline_vms" + ] + }, + "EsxSettingsClustersPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Effective.EffectivePolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsClustersPoliciesApplyEffectiveFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on a single host within the cluster.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyEffectiveFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsClustersPoliciesApplyEffectiveFailureActionAction": { + "type": "string", + "description": "The Effective.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on a single host within the cluster.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsClustersPoliciesApplyEffectiveParallelRemediationAction": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable parallel remediation for hosts in maintenance mode within a cluster.", + "type": "boolean" + }, + "max_hosts": { + "description": "Maximum number of hosts that can be remediated in parallel. Setting Apply.ParallelRemediationAction.max-hosts does not guarantee maxHosts to be remediated in parallel.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsClustersPoliciesApplyFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on a single host within the cluster.", + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsClustersPoliciesApplyFailureActionAction": { + "type": "string", + "description": "The Apply.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on a single host within the cluster.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsClustersPoliciesApplyParallelRemediationAction": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable parallel remediation for hosts in maintenance mode within a cluster.", + "type": "boolean" + }, + "max_hosts": { + "description": "Maximum number of hosts that can be remediated in parallel. Setting Apply.ParallelRemediationAction.max-hosts does not guarantee maxHosts to be remediated in parallel.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsClustersPoliciesApplySet": { + "$ref": "#/definitions/EsxSettingsClustersPoliciesApplyConfiguredPolicySpec", + "description": "The policy that needs to be configured." + }, + "EsxSettingsClustersSoftwareApplySpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the Software.apply operation.\nif unset or empty the apply operation will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "hosts": { + "description": "The specific hosts within the cluster to be considered during the Software.apply operation.\nif unset or empty the Software.apply operation will remediate all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "accept_eula": { + "description": "Accept the VMware End User License Agreement (EULA) before starting the Software.apply operation. The VMware EULA is available for download at, https://www.vmware.com/download/eula.html\nif unset the Software.apply operation could fail due to the EULA not being accepted.", + "type": "boolean" + } + } + }, + "EsxSettingsClustersSoftwareApplyTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareApplySpec", + "description": "Apply specification." + }, + "EsxSettingsClustersSoftwareCheckSpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the check operation.\nif unset or empty the check opertion will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "hosts": { + "description": "The specific hosts for which checks need to be performed\nif unset or empty checks are run for all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsClustersSoftwareCheckTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareCheckSpec", + "description": "Check specification." + }, + "EsxSettingsClustersSoftwareCommitsInfo": { + "type": "object", + "properties": { + "author": { + "description": "Author of the commit.", + "type": "string" + }, + "commit_time": { + "description": "Creation time of the commit.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "Description accompanying this commit.", + "type": "string" + }, + "apply_status": { + "description": "Apply status of the commit.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareCommitsInfoApplyStatusType" + } + }, + "required": [ + "author", + "commit_time", + "description", + "apply_status" + ] + }, + "EsxSettingsClustersSoftwareCommitsInfoApplyStatusType": { + "type": "string", + "description": "The Commits.Info.ApplyStatusType structure defines possible values regarding the application of this commit.", + "enum": [ + "APPLIED", + "NOT_APPLIED" + ] + }, + "EsxSettingsClustersSoftwareDraftsCommitSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message to include with the commit.\nIf unset, message is set to empty string.", + "type": "string" + } + } + }, + "EsxSettingsClustersSoftwareDraftsCommitTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsCommitSpec", + "description": "The spec to be used to create the commit." + }, + "EsxSettingsClustersSoftwareDraftsFilterSpec": { + "type": "object", + "properties": { + "owners": { + "description": "Owners of the drafts.\nIf unset or empty, drafts from all owners will be returned.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsClustersSoftwareDraftsImportSoftwareSpec": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsImportSpec", + "description": "Specification to import desired software specification." + }, + "EsxSettingsClustersSoftwareDraftsImportSpec": { + "type": "object", + "properties": { + "source_type": { + "description": "Type of the source to import the desired software specification", + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSourceType" + }, + "location": { + "description": "Location of the software specification file to be imported.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is PULL.", + "type": "string", + "format": "uri" + }, + "file_id": { + "description": "File identifier returned by the file upload endpoint after file is uploaded.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is PUSH.", + "type": "string" + }, + "software_spec": { + "description": "The JSON string representing the desired software specification.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is JSON_STRING.", + "type": "string" + } + }, + "required": [ + "source_type" + ] + }, + "EsxSettingsClustersSoftwareDraftsInfo": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the software draft.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsMetadata" + }, + "software": { + "description": "Software specification associated with the draft.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + } + }, + "required": [ + "metadata", + "software" + ] + }, + "EsxSettingsClustersSoftwareDraftsMetadata": { + "type": "object", + "properties": { + "owner": { + "description": "Owner of the software draft.", + "type": "string" + }, + "status": { + "description": "Status of the software draft.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsStatusType" + }, + "creation_time": { + "description": "Creation time of the software draft.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "owner", + "status", + "creation_time" + ] + }, + "EsxSettingsClustersSoftwareDraftsSoftwareAddOnSet": { + "$ref": "#/definitions/EsxSettingsAddOnSpec", + "description": "AddOn specification." + }, + "EsxSettingsClustersSoftwareDraftsSoftwareBaseImageSet": { + "$ref": "#/definitions/EsxSettingsBaseImageSpec", + "description": "Base-image specification." + }, + "EsxSettingsClustersSoftwareDraftsSoftwareComponentsSet": { + "type": "string", + "description": "Component version.\nThis field is currently required. In the future,if this field is unset then version is chosen based on the constraints in the system." + }, + "EsxSettingsClustersSoftwareDraftsSoftwareComponentsUpdate": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsSoftwareComponentsUpdateSpec", + "description": "Update specification containing list of components to add and/or delete." + }, + "EsxSettingsClustersSoftwareDraftsSoftwareComponentsUpdateSpec": { + "type": "object", + "properties": { + "components_to_set": { + "description": "List of components to be updated. If the component already exists in the draft, the version is updated, else it is added. If a component is provided without version, then its version will be chosen based on constraints in the system.\nIf unset, no components will be added or updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "components_to_delete": { + "description": "List of components to be removed.\nIf unset, no components will be removed.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.component.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsClustersSoftwareDraftsSoftwareHardwareSupportSet": { + "$ref": "#/definitions/EsxSettingsHardwareSupportSpec", + "description": "new Hardware Support Package (HSP) configuration for the cluster" + }, + "EsxSettingsClustersSoftwareDraftsSourceType": { + "type": "string", + "description": "The Drafts.SourceType enumerated type defines possible values of sources to import software specification.", + "enum": [ + "PULL", + "PUSH", + "JSON_STRING", + "LATEST_RECOMMENDATION", + "CURRENT_SERIES_RECOMMENDATION", + "SPECIFIED_BASE_IMAGE_RECOMMENDATION" + ] + }, + "EsxSettingsClustersSoftwareDraftsStatusType": { + "type": "string", + "description": "The Drafts.StatusType enumerated type defines possible values of status of a software draft.", + "enum": [ + "VALID", + "INVALID" + ] + }, + "EsxSettingsClustersSoftwareDraftsSummary": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the software draft.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareDraftsMetadata" + } + }, + "required": [ + "metadata" + ] + }, + "EsxSettingsClustersSoftwareExport": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareExportSpec", + "description": "" + }, + "EsxSettingsClustersSoftwareExportSpec": { + "type": "object", + "properties": { + "export_software_spec": { + "description": "Whether to export software specification document.", + "type": "boolean" + }, + "export_iso_image": { + "description": "Whether to export ISO image.", + "type": "boolean" + }, + "export_offline_bundle": { + "description": "Whether to export offline bundle.", + "type": "boolean" + } + }, + "required": [ + "export_software_spec", + "export_iso_image", + "export_offline_bundle" + ] + }, + "EsxSettingsClustersSoftwareRecommendationsExplanationDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of an excluded image entity (base image, add-on etc.).", + "type": "string" + }, + "display_version": { + "description": "Display version of an excluded image entity (base image, add-on etc.).", + "type": "string" + }, + "explanation": { + "description": "List of explanations on why the image entity is excluded.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "display_name", + "display_version", + "explanation" + ] + }, + "EsxSettingsClustersSoftwareRecommendationsFilterSpec": { + "type": "object", + "properties": { + "base_image_version": { + "description": "Base image version string is used in generating the specified base image recommendations. Default recommendations are generated when the value is empty.", + "type": "string" + } + } + }, + "EsxSettingsClustersSoftwareRecommendationsGenerateTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareRecommendationsFilterSpec", + "description": "Specification on how to filter recommendations based on a specified base image version.\nIf unset, latest and current series recommendations are generated." + }, + "EsxSettingsClustersSoftwareRecommendationsInfo": { + "type": "object", + "properties": { + "latest_recommendation": { + "description": "Recommended image specification based on latest base image version.\nunset if no recommended image based on latest base image version is available.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + }, + "current_series_recommendation": { + "description": "Recommended image specification based on latest base image patch or update of the current series.\nunset if no recommended image based on latest base image patch or update of the current series is available.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + }, + "specified_base_image_version_recommendation": { + "description": "Recommended image specification based on a specified base image version.\nunset if no recommendation image based on the specified base image version is available.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + }, + "base_image_explanation_details": { + "description": "Details about why some base images are excluded in latest and current series recommendations. This is not applicable for specified base image recommendations.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareRecommendationsExplanationDetails" + } + }, + "check_time": { + "description": "The most recent timestamp when check for recommended image is launched.\nunset if no recommendation check has ever been launched.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "base_image_explanation_details" + ] + }, + "EsxSettingsClustersSoftwareReportsApplyImpactApplyImpactSpec": { + "type": "object", + "properties": { + "hosts": { + "description": "The specific hosts for which an impact is to be generated.\nif unset or empty impact is generated for all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsClustersSoftwareReportsApplyImpactClusterImpact": { + "type": "object", + "properties": { + "impact": { + "description": "Impact of steps performed during the setup and cleanup phase of the apply operation.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsApplyImpactImpact" + } + }, + "host_impact": { + "description": "Impact summary for each host within the clsuter.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsApplyImpactImpact" + } + } + }, + "commit": { + "description": "Identifier of the commit on which the impact is generated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information of hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + } + }, + "required": [ + "impact", + "host_impact", + "commit", + "host_info" + ] + }, + "EsxSettingsClustersSoftwareReportsApplyImpactImpact": { + "type": "object", + "properties": { + "message": { + "description": "Description of the impact.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "message" + ] + }, + "EsxSettingsClustersSoftwareReportsCheckResult": { + "type": "object", + "properties": { + "status": { + "description": "Overall compliance status of Cluster with respective to all hosts in the cluster.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "scan_time": { + "description": "HCL Validation check time.", + "type": "string", + "format": "date-time" + }, + "updated_since_last_check": { + "description": "Flag to indicate if there were any hardware compatibility overrides were performed after the last check operation.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "v_san_data_only": { + "description": "HCL Validation Computed only for vSAN Clusters.\nunset to show vSAN in UI", + "type": "boolean" + }, + "commit": { + "description": "Spec Identifier of the desired configuration on which the HCL scan is performed to generate this result, populated by the HCL validation.\nThis field will be unset if validation was performed against a draft.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "base_image_version": { + "description": "Target base image version E.g., version = BaseImageSpec->Version BaseImageSpec.version structure", + "type": "string" + }, + "pci_device_compliance": { + "description": "Compliance result for the Pci Devices that are present in all hosts of the cluster.\nThis field will be unset if Pci device compliance was not computed.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDeviceCompliance" + }, + "storage_device_compliance": { + "description": "Compliance result for storage devices in all the hosts of the cluster. Currently only includes SAS/SATA storage devices.\nThis field will be unset if storage device compliance was not computed.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceCompliance" + }, + "notifications": { + "description": "Notifications returned by the HCL Validation operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + }, + "note": { + "description": "Localizable disclaimer notice to show on the UI detailing the type of checks are done by the HCL Validaiton. Example : HCL Validation is only done on storage and network controllers.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "status", + "scan_time", + "base_image_version", + "notifications", + "note" + ] + }, + "EsxSettingsClustersSoftwareReportsComplianceStatus": { + "type": "string", + "description": "The ComplianceStatus enumerated type contains the possible different status of compliance with respect to target version.", + "enum": [ + "COMPATIBLE", + "INCOMPATIBLE", + "HCL_DATA_UNAVAILABLE", + "UNAVAILABLE", + "NO_FIRMWARE_PROVIDER" + ] + }, + "EsxSettingsClustersSoftwareReportsComplianceStatusDetail": { + "type": "string", + "description": "The ComplianceStatusDetail enumerated type contains the essential status values for compliance with respect to target VMware Compatibility Guide (VCG)", + "enum": [ + "CERTIFIED", + "NOT_CERTIFIED", + "HCL_DATA_UNAVAILABLE", + "HOSTS_UNAVAILABLE", + "FIRMWARE_VERSION_UNKNOWN", + "UNKNOWN", + "VENDOR_UPDATE", + "USER_VERIFIED", + "USER_FLAGGED", + "MUTED" + ] + }, + "EsxSettingsClustersSoftwareReportsDriverFirmwareVersion": { + "type": "object", + "properties": { + "driver_version": { + "description": "Driver Version.", + "type": "string" + }, + "firmware_version": { + "description": "Firmware Version. This will be an empty string if the target firmware version cannot be determined.", + "type": "string" + }, + "driver_name": { + "description": "Driver Name.", + "type": "string" + } + }, + "required": [ + "driver_version", + "firmware_version", + "driver_name" + ] + }, + "EsxSettingsClustersSoftwareReportsFirmwareVersionMatchingCriteria": { + "type": "string", + "description": "The FirmwareVersionMatchingCriteria enumerated type contains the criteria for firmware version comparison", + "enum": [ + "EXACT", + "MINIMUM" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityCheckSummary": { + "type": "object", + "properties": { + "status": { + "description": "Overall compliance status of the cluster with respective to all hosts in the cluster.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityComplianceStatus" + }, + "scan_time": { + "description": "HCL Validation check time.", + "type": "string", + "format": "date-time" + }, + "commit": { + "description": "Spec Identifier of the desired configuration on which the HCL scan is performed to generate this result, populated by the HCL validation.\nThis field will be unset if validation was performed against a draft.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "base_image_version": { + "description": "Target base image version E.g., version = BaseImageSpec->Version BaseImageSpec.version structure", + "type": "string" + }, + "summary_result": { + "description": "Over all Compliance result for cluster for the software specification.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "notifications": { + "description": "Notifications returned by the HCL Validation operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "scan_time", + "base_image_version", + "summary_result", + "notifications" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityComplianceStatus": { + "type": "string", + "description": "The HardwareCompatibility.ComplianceStatus enumerated type contains the possible different status of compliance with respect to target version.", + "enum": [ + "COMPATIBLE", + "INCOMPATIBLE", + "HCL_DATA_UNAVAILABLE", + "UNAVAILABLE", + "NO_FIRMWARE_PROVIDER" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusComplianceAction": { + "type": "string", + "description": "The ComplianceStatus.ComplianceAction enumerated type enumerates the possible compliance status overrides for a storage device.", + "enum": [ + "MARK_AS_VERIFIED", + "FLAG_AS_INCOMPATIBLE", + "SUPPRESS_WARNING" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey": { + "type": "object", + "properties": { + "model": { + "description": "", + "type": "string" + }, + "vendor": { + "description": "", + "type": "string" + }, + "capacity": { + "description": "", + "type": "integer", + "format": "int64" + }, + "part_number": { + "description": "storage device part number\nIf {@term.unset} the override will be applied to the entries without a part number.", + "type": "string" + }, + "firmware_version": { + "description": "storage device firmware version\nIf {@term.unset} the override is applied to the entries with an unknown firmware version.", + "type": "string" + }, + "driver_name": { + "description": "Driver name of this storage device if applicable/available.\nThis field will be unset if there is no driver associated with the device.", + "type": "string" + }, + "driver_version": { + "description": "Driver version of this storage device if applicable/available.\nThis field will be unset if there is no driver associated with the device.", + "type": "string" + }, + "release": { + "description": "vSphere release that an override must be applied to.\nIf this field is unset, InvalidArgument is thrown. The field is left optional to support wildcard matching in a future release.", + "type": "string" + }, + "validated_features_in_use": { + "description": "Validated features for which this override applies If a service is specified but no specific features are included, the device is taken to be in use by the service.\nIf this field is unset this is taken to mean that the device is active for the vSAN service (and no specific features). This is done in order to support 7.0 U3 clients which do not set this field. Subset of validated features for which we provide certification - for example RDMA, not IPV6 Note that this list represents the features in actual current use, which could include features for which the device is not certified", + "type": "object", + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "required": [ + "model", + "vendor", + "capacity" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusReclassificationSpec": { + "type": "object", + "properties": { + "key": { + "description": "Information about the storage device for which this override must be applied to.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey" + }, + "override": { + "description": "Compliance status override for the stroage device.\nIf this field is unset any existing compliance override for the specified device will be reset.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusComplianceAction" + } + }, + "required": [ + "key" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusUpdateSpec": { + "type": "object", + "properties": { + "device_reclassifications": { + "description": "List of compatibility overrides to be applied for the storage devices in a cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusReclassificationSpec" + } + } + }, + "required": [ + "device_reclassifications" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusUpdateTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusUpdateSpec", + "description": "Specification for updating the compliance status overrides for storage devices in a cluster." + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesKey": { + "type": "object", + "properties": { + "model": { + "description": "", + "type": "string" + }, + "vendor": { + "description": "", + "type": "string" + }, + "capacity": { + "description": "", + "type": "integer", + "format": "int64" + }, + "part_number": { + "description": "storage device part number\nIf {@term.unset} the override will be applied to the entries without a part number.", + "type": "string" + }, + "firmware_version": { + "description": "storage device firmware version\nIf {@term.unset} the override is applied to all firmware versions.", + "type": "string" + } + }, + "required": [ + "model", + "vendor", + "capacity" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesProductSelectionSpec": { + "type": "object", + "properties": { + "key": { + "description": "Information about the storage device for which this override must be applied to.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesKey" + }, + "vcg_product": { + "description": "VMware Compatibility Guide (VCG) product selection that must be applied to the specified storage device.\nif {@term.unset} any existing vcg selection for the storage device will be removed\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.vcg_product. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.vcg_product.", + "type": "string" + } + }, + "required": [ + "key" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesUpdateSpec": { + "type": "object", + "properties": { + "product_selections": { + "description": "List of VMware Compatibility Guide (VCG) overrides to be applied for the storage devices in a cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesProductSelectionSpec" + } + } + }, + "required": [ + "product_selections" + ] + }, + "EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesUpdateTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesVcgEntriesUpdateSpec", + "description": "Specification for updating the compatibility overrides for the cluster." + }, + "EsxSettingsClustersSoftwareReportsLastApplyResultApplyResult": { + "type": "object", + "properties": { + "status": { + "description": "Specifies the aggregated status of the apply operation.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastApplyResultApplyStatus" + }, + "commit": { + "description": "The identifier of the commit used to fetch the desired software document to be applied to all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information of the hosts in this cluster to which the desired software document specified by the LastApplyResult.ApplyResult.commit should be applied to.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "host_status": { + "description": "Status of the hosts in this cluster to which the desired software document specified by the LastApplyResult.ApplyResult.commit was applied to. Hosts on which the apply operation was sucessful are specified by LastApplyResult.ApplyResult.successful-hosts. Hosts on which the apply operation failed are specified by LastApplyResult.ApplyResult.failed-hosts. Hosts which were skipped by the apply operation are specified by LastApplyResult.ApplyResult.skipped-hosts.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastApplyResultApplyStatus" + } + }, + "successful_hosts": { + "description": "Hosts in this cluster to which the desired software document specified by the LastApplyResult.ApplyResult.commit has been successfully applied to.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "failed_hosts": { + "description": "Hosts in this cluster to which the desired software document specified by the LastApplyResult.ApplyResult.commit failed to be applied to.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "skipped_hosts": { + "description": "Hosts in this cluster that were skipped by the apply operation.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "notifications": { + "description": "Notifications providing additional information for Software.apply operation. These notifications are mutually exclusive with the notifications in LastApplyResult.ApplyStatus.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "commit", + "host_info", + "host_status", + "successful_hosts", + "failed_hosts", + "skipped_hosts" + ] + }, + "EsxSettingsClustersSoftwareReportsLastApplyResultApplyStatus": { + "type": "object", + "properties": { + "status": { + "description": "The status of the operation.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastApplyResultApplyStatusStatus" + }, + "progress": { + "description": "Progress of the operation.\nunset for #ApplyStatus of the cluster", + "$ref": "#/definitions/CisTaskProgress" + }, + "start_time": { + "description": "Time when the operation started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation completed.", + "type": "string", + "format": "date-time" + }, + "notifications": { + "description": "Notifications providing additional information about the status of the operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "start_time", + "end_time", + "notifications" + ] + }, + "EsxSettingsClustersSoftwareReportsLastApplyResultApplyStatusStatus": { + "type": "string", + "description": "The LastApplyResult.ApplyStatus.Status enumerated type contains the possible different status codes that can be returned while trying to apply the desired software specification to hosts within the cluster.", + "enum": [ + "OK", + "SKIPPED", + "TIMED_OUT", + "ERROR", + "RETRY_PENDING" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultCheckInfo": { + "type": "object", + "properties": { + "check": { + "description": "The check identifier.", + "type": "string" + }, + "name": { + "description": "The check name.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "description": { + "description": "Human-readable check description.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "check", + "name", + "description" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultCheckResult": { + "type": "object", + "properties": { + "status": { + "description": "Aggregated status from all checks performed.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultStatus" + }, + "start_time": { + "description": "Time when the operation started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation completed.", + "type": "string", + "format": "date-time" + }, + "commit": { + "description": "The identifier of the commit on which checks have been run.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information about the hosts in this cluster for which checks have been requested to be run.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "entity_results": { + "description": "List of LastCheckResult.EntityCheckResult for all entities for which checks have been run.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultEntityCheckResult" + } + } + }, + "required": [ + "status", + "start_time", + "end_time", + "commit", + "host_info", + "entity_results" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultCheckStatus": { + "type": "object", + "properties": { + "check": { + "description": "Information about this check.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultCheckInfo" + }, + "status": { + "description": "The status of this check.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultStatus" + }, + "issues": { + "description": "The issues encountered while running this check.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "check", + "status", + "issues" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultEntityCheckResult": { + "type": "object", + "properties": { + "type": { + "description": "The entity type for which these checks are being run.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultEntityCheckResultEntityType" + }, + "cluster": { + "description": "If the entity type is CLUSTER then the cluster identifier for which the checks have been run.\nThis field is optional and it is only relevant when the value of LastCheckResult.EntityCheckResult.type is CLUSTER.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "host": { + "description": "If the entity type is HOST then the host identifier for which the checks have been run.\nThis field is optional and it is only relevant when the value of LastCheckResult.EntityCheckResult.type is HOST.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "status": { + "description": "Aggregated status from all checks performed on this entity.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultStatus" + }, + "check_statuses": { + "description": "List of LastCheckResult.CheckStatus for all checks performed.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsLastCheckResultCheckStatus" + } + } + }, + "required": [ + "type", + "status", + "check_statuses" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultEntityCheckResultEntityType": { + "type": "string", + "description": "The LastCheckResult.EntityCheckResult.EntityType enumerated type contains the entitites on which checks can be performed.", + "enum": [ + "CLUSTER", + "HOST" + ] + }, + "EsxSettingsClustersSoftwareReportsLastCheckResultStatus": { + "type": "string", + "description": "The LastCheckResult.Status enumerated type defines the status result for a particular check.", + "enum": [ + "OK", + "WARNING", + "TIMEOUT", + "ERROR" + ] + }, + "EsxSettingsClustersSoftwareReportsPciDevice": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the device.", + "type": "string" + }, + "driver_name": { + "description": "Driver Name of the device.", + "type": "string" + }, + "vendor": { + "description": "Vendor Name of the device.", + "type": "string" + }, + "vid": { + "description": "PCI VID of the device.", + "type": "string" + }, + "did": { + "description": "PCI DID of the device.", + "type": "string" + }, + "svid": { + "description": "PCI SVID of the device.", + "type": "string" + }, + "ssid": { + "description": "PCI SSID of the device.", + "type": "string" + } + }, + "required": [ + "display_name", + "driver_name", + "vendor", + "vid", + "did", + "svid", + "ssid" + ] + }, + "EsxSettingsClustersSoftwareReportsPciDeviceCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Over all Compliance status of PCI Devices in Cluster with respective to all hosts in the cluster.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "compatible_devices": { + "description": "Compatible Device Compliance result for all devices present on all hosts in the cluster compared with the corresponding component in the software specification. The key is the DeviceName and value is the PciDeviceComplianceInfo object.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDeviceComplianceInfo" + } + }, + "incompatible_devices": { + "description": "Incompatible Device Compliance result for all devices present on all hosts in the cluster compared with the corresponding component in the software specification. The key is the DeviceName and value is the PciDeviceComplianceInfo object.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDeviceComplianceInfo" + } + }, + "incompatible_driver_firmware": { + "description": "Incompatible Driver Firmware combination Compliance result for all devices present on hosts in the cluster compared with the corresponding component in the software specification. The key is the DeviceName and value is the PciDeviceComplianceInfo object.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDeviceComplianceInfo" + } + } + }, + "required": [ + "status", + "compatible_devices", + "incompatible_devices", + "incompatible_driver_firmware" + ] + }, + "EsxSettingsClustersSoftwareReportsPciDeviceComplianceInfo": { + "type": "object", + "properties": { + "status": { + "description": "High-level compliance status of the device.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "device": { + "description": "Pci Device Details", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDevice" + }, + "compatible_versions": { + "description": "List of vSphere Versions compatible for this device. This field is populated only for device found INCOMPATIBLE", + "type": "array", + "items": { + "type": "string" + } + }, + "host_info": { + "description": "Affected List of Host IDs where this device is found.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "target": { + "description": "Driver and Firmware Version from Image Specification.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsDriverFirmwareVersion" + }, + "validated_features_in_use": { + "description": "Validated features in use on this device If Service is set but features is empty, device is active for solution Subset of validated features for which we provide certification - for example RDMA, not IPV6 Inclusion in this set of features is independent of the certification status of device. In other words it's possible a device is configured to use a feature it is not certified.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "object", + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "supported": { + "description": "List of Supported Driver and Firmware Version combination from Harware Compatibility List.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsDriverFirmwareVersion" + } + }, + "constraints": { + "description": "List of Supported Driver and Firmware Version combination and corresponding supportedFeatures from VMware Compatibility Guide (VCG) listing for the given vSphere version\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsPciDeviceConstraint" + } + }, + "compatibility_guide_link": { + "description": "Provides link to the VMware Compatibility Guide for further information on the compatibility.\nIf unset there is no VMware Compatibility link available as this is device used by VSAN.", + "type": "string", + "format": "uri" + }, + "notifications": { + "description": "Device Specific notifications describing the compliance result.\nThis field will be unset if there are no notifications", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "device", + "compatible_versions", + "host_info", + "target", + "supported" + ] + }, + "EsxSettingsClustersSoftwareReportsPciDeviceConstraint": { + "type": "object", + "properties": { + "firmware_version": { + "description": "Certified Firmware Version.\nThis field will be unset - If there is no firware version specified for the device", + "type": "string" + }, + "firmware_version_match": { + "description": "Criteria for matching firmware version\nThis field will be unset when firmware version is not set", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsFirmwareVersionMatchingCriteria" + }, + "driver_name": { + "description": "Certified Driver Name.\nThis field will be unset If there is no driver certification for the device", + "type": "string" + }, + "driver_version": { + "description": "Certified Driver Version(Exact Matching criteria).\nThis field will be unset If there is no driver certification for the device.", + "type": "string" + }, + "supported_features": { + "description": "Map of solutions and the corresponding features that the device is certified for in the VMware Compatibility Guide If map is empty, device is not certified for any specific solutions like vSAN. If Service is set but features are empty, means device is certified for solution. If Service is set and features is also set, means device is certified for specific features", + "type": "object", + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "required": [ + "supported_features" + ] + }, + "EsxSettingsClustersSoftwareReportsStorageDeviceCompatibility": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the storage device, when computed based on this VMware Compatibility Guide (VCG) listing.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "compatible_versions": { + "description": "List of vSphere Versions compatible for this storage device.\nThis field will be unset if the storage device is certified for the target ESXi version.", + "type": "array", + "items": { + "type": "string" + } + }, + "supported_firmware_versions": { + "description": "List of minimum firmware versions supported from VMware Compatibility Guide (VCG) listing for the given vSphere version.\nThis field will be unset if the storage device is not certified for the target ESXi version or the storage device is only certified in combination with specific driver versions, in which case listedDriverFirmwareVersions below will be set.", + "type": "array", + "items": { + "type": "string" + } + }, + "constraints": { + "description": "List of Supported Firmware Versions and corresponding supported features from VMware Compatibility Guide (VCG) listing for the given vSphere version.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceConstraint" + } + }, + "vcg_product": { + "description": "Identifier of the VMware Compatibility Guide (VCG) listing for the product.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.vcg_product. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.vcg_product.", + "type": "string" + }, + "model": { + "description": "Model name of the storage device as listed in the VMware Compatibility Guide (VCG) listing. This may not be the same as the StorageDeviceInfo.model", + "type": "string" + }, + "partner": { + "description": "OEM partner name of the storage device as listed in the VMware Compatibility Guide (VCG) listing.", + "type": "string" + }, + "compatibility_guide_link": { + "description": "Provides link to the VMware Compatibility Guide (VCG) listing for further information on the compatibility.", + "type": "string", + "format": "uri" + }, + "used_for_compliance": { + "description": "Flag to indicate whether this VMware compatibility Guide (VCG) listing was used to compute the overall compatibility of the storage device.", + "type": "boolean" + }, + "user_selected": { + "description": "Flag to indicate if the user has selected this VMware Compatibility Guide (VCG) listing to be considered to compute the overall compatibility of the storage device.", + "type": "boolean" + }, + "notifications": { + "description": "VMware compatibility Guide (VCG) listing specific notifications describing the compliance result.\nThis field will be unset if there are no notifications", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "vcg_product", + "model", + "partner", + "compatibility_guide_link", + "used_for_compliance", + "user_selected" + ] + }, + "EsxSettingsClustersSoftwareReportsStorageDeviceCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Overall compliance status of storage devices in the cluster with respect to all hosts in the cluster.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "compatible_devices": { + "description": "Lists compliance information for storage devices found to be compliant with VMware Compatibility Guide (VCG) during the last check operation. \n Note that complianceStatus of every device is not necessarily COMPATIBLE due to changes made after this check was run; entries are only rearranged when a new check operation is invoked. lastOverrideTime being greater than the scanTime is an indication that there were changes made after the last check operation", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceComplianceInfo" + } + }, + "incompatible_devices": { + "description": "Lists compliance information for storage devices found to be non-compliant with VMware Compatibility Guide (VCG) during the last check operation. \n Note that complianceStatus of every device is not necessarily INCOMPATIBLE due to changes made after this check was run; entries are only rearranged when a new check operation is invoked. lastOverrideTime being greater than the scanTime is an indication that there were changes made after the last check operation", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceComplianceInfo" + } + }, + "unknown_devices": { + "description": "Lists storage devices whose compliance information could not be computed successfully during the last check operation. \n Note that complianceStatus of every device is not necessarily UNAVAILABLE due to changes made after this check was run; entries are only rearranged when a new check operation is invoked. lastOverrideTime being greater than the scanTime is an indication that there were changes made after the last check operation", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceComplianceInfo" + } + }, + "notifications": { + "description": "Storage device compliance specific notifications describing the compliance result.\nThis field will be unset if there are no notifications", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "compatible_devices", + "incompatible_devices", + "unknown_devices" + ] + }, + "EsxSettingsClustersSoftwareReportsStorageDeviceComplianceInfo": { + "type": "object", + "properties": { + "storage_device_info": { + "description": "Information of the storage device.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceInfo" + }, + "device_count": { + "description": "Indicate the number of actual physical storage devices represented by this info.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "Compliance status of the storage device. When there are multiple possible VMware Compatibility Guide (VCG) matches for the storage device, the compliance status would be set to UNAVAILABLE Each match found would be listed under StorageDeviceComplianceInfo.matches with the corresponding compliance status of the storage device if compared against the constraints specified in the match.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatus" + }, + "detail": { + "description": "Detailed compliance status of the storage device.", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsComplianceStatusDetail" + }, + "host_info": { + "description": "Affected List of Host IDs where this device is found.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: HostSystem.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "firmware_version": { + "description": "Firmware version on the storage device.\nThis field will be unset if the firmware version on the storage device is unknown or cannot be determined.", + "type": "string" + }, + "validated_features_in_use": { + "description": "Validated Features in use on the storage device If Service is set but features is empty, device is active for solution Subset of validated features for which we provide certification - for example RDMA, not IPV6 Inclusion in this set of features is independent of the certification status of device. In other words it's possible a device is configured to use a feature it is not certified.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "object", + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "driver_name": { + "description": "Driver name on the storage device\nThis field will be unset if there is no driver associated with the device.", + "type": "string" + }, + "driver_version": { + "description": "Driver Version on the storage device\nThis field will be unset if there is no driver associated with the device.", + "type": "string" + }, + "matches": { + "description": "Provides information about possible compatibility matches for the given storage device. \n There could be multiple possible matches available in the compatibility data.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsStorageDeviceCompatibility" + } + }, + "used_by_vsan": { + "description": "Indicates if the storage device is in use by vSAN. When this flag is set to true, the hardware compatibility is computed against vSAN HCL constraints.", + "type": "boolean" + }, + "notifications": { + "description": "Device Specific notifications describing the compliance result.\nThis field will be unset if there are no notifications", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "storage_device_info", + "status", + "detail", + "host_info", + "matches", + "used_by_vsan" + ] + }, + "EsxSettingsClustersSoftwareReportsStorageDeviceConstraint": { + "type": "object", + "properties": { + "firmware_version": { + "description": "Certified Firmware Version.\nThis field will be unset- If there is no firware version specified for the device", + "type": "string" + }, + "firmware_version_match": { + "description": "Criteria for matching firmware version\nThis field will be unset when firmware version is not set", + "$ref": "#/definitions/EsxSettingsClustersSoftwareReportsFirmwareVersionMatchingCriteria" + }, + "driver_name": { + "description": "Certified Driver Name.\nThis field will be unset If there is no driver certification for the device", + "type": "string" + }, + "driver_version": { + "description": "Certified Driver Version.\nThis field will be unset If there is no driver certification for the device", + "type": "string" + }, + "supported_features": { + "description": "Map of solutions and the corresponding features that the device is certified for in the VMware Compatibility Guide If map is empty, device is not certified for any specific solutions like vSAN If Service is set but features are empty, means device is certified for solution. If Service is set and features is also set, means device is certified for specific features.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "object", + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + } + }, + "EsxSettingsClustersSoftwareReportsStorageDeviceInfo": { + "type": "object", + "properties": { + "model": { + "description": "Storage device model", + "type": "string" + }, + "vendor": { + "description": "Storage device vendor", + "type": "string" + }, + "part_number": { + "description": "Hardware part number of the storage device\nThis field will be unest if part number information is not available for the storage device.", + "type": "string" + }, + "capacity": { + "description": "Capacity of the storage device in bytes", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "model", + "vendor", + "capacity" + ] + }, + "EsxSettingsClustersSoftwareSolutionsSetTask": { + "$ref": "#/definitions/EsxSettingsSolutionSpec", + "description": "Registered solution specification." + }, + "EsxSettingsClustersSoftwareStageSpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the Software.stage operation.\nif unset or empty the stage operation will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "hosts": { + "description": "The specific hosts within the cluster to be considered during the Software.stage operation.\nif unset or empty the Software.stage operation will stage all hosts within the cluster.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsClustersSoftwareStageTask": { + "$ref": "#/definitions/EsxSettingsClustersSoftwareStageSpec", + "description": "stage specification." + }, + "EsxSettingsComplianceImpact": { + "type": "string", + "description": "The ComplianceImpact enumerated type contains information about the impact of applying the target state in case of non compliance.", + "enum": [ + "NO_IMPACT", + "PARTIAL_MAINTENANCE_MODE_REQUIRED", + "MAINTENANCE_MODE_REQUIRED", + "REBOOT_REQUIRED", + "UNKNOWN" + ] + }, + "EsxSettingsComplianceStatus": { + "type": "string", + "description": "The ComplianceStatus enumerated type contains the possible different status of compliance with respect to target version.", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "INCOMPATIBLE", + "UNAVAILABLE" + ] + }, + "EsxSettingsComponentCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the component.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the component. This is only relevant when the value of ComponentCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "current": { + "description": "Current version of the component present on the host.\nunset if component is not present on the host.", + "$ref": "#/definitions/EsxSettingsComponentInfo" + }, + "target": { + "description": "Target version of the component present in the software specification.\nunset if component is not present in the software specification.", + "$ref": "#/definitions/EsxSettingsComponentInfo" + }, + "current_source": { + "description": "Source of the component on the host.\nunset if component is not present on the host.", + "$ref": "#/definitions/EsxSettingsComponentSource" + }, + "target_source": { + "description": "Source of the component in the software specification.\nunset if component is not present in the software specification.", + "$ref": "#/definitions/EsxSettingsComponentSource" + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "notifications" + ] + }, + "EsxSettingsComponentDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.\nunset if no version is provided for the component.", + "type": "string" + } + }, + "required": [ + "display_name", + "vendor" + ] + }, + "EsxSettingsComponentInfo": { + "type": "object", + "properties": { + "version": { + "description": "Version of the component.\nunset if version is not specified.", + "type": "string" + }, + "details": { + "description": "Details about the component.\nunset if component is not present in the depot.", + "$ref": "#/definitions/EsxSettingsComponentDetails" + } + } + }, + "EsxSettingsComponentOverrideInfo": { + "type": "object", + "properties": { + "version": { + "description": "Version of the component override.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component override.", + "type": "string" + }, + "source": { + "description": "Source of the component override.", + "$ref": "#/definitions/EsxSettingsComponentSource" + }, + "note": { + "description": "Note explaining the override.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "version", + "display_version", + "source", + "note" + ] + }, + "EsxSettingsComponentSource": { + "type": "string", + "description": "The ComponentSource enumerated type contains the component's source information.", + "enum": [ + "BASE_IMAGE", + "ADD_ON", + "USER", + "SOLUTION", + "HARDWARE_SUPPORT_PACKAGE" + ] + }, + "EsxSettingsDataProcessingUnitCompliance": { + "type": "object", + "properties": { + "impact": { + "description": "Overall compliance impact of the data processing unit.", + "$ref": "#/definitions/EsxSettingsComplianceImpact" + }, + "status": { + "description": "Overall compliance status of the data processing unit.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Overall stage status of the data processing unit. This is only relevant when the value of DataProcessingUnitCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "notifications": { + "description": "Notifications returned by the scan operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + }, + "scan_time": { + "description": "Scan completion time.", + "type": "string", + "format": "date-time" + }, + "base_image": { + "description": "Compliance result for the base image.", + "$ref": "#/definitions/EsxSettingsBaseImageCompliance" + }, + "add_on": { + "description": "Compliance result for the OEM add-on.", + "$ref": "#/definitions/EsxSettingsAddOnCompliance" + }, + "hardware_support": { + "description": "Compliance result for hardware support (both Hardware Support Package or HSP and individual hardware module firmware) for every HSP configured, keyed by Hardware Support Manager (HSM).\nThis field will be unset or contain an empty map if operation is performed on an image whose SoftwareSpec does not have a value for its hardwareSupport field. For initial release hardwareSupport field would be empty.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageCompliance" + } + }, + "components": { + "description": "Compliance result for all user components present on the data processing unit and in the software specification. The key is the component name and value is the ComponentCompliance object.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentCompliance" + } + }, + "solutions": { + "description": "Compliance result for solutions. The key is the solution name and value is the SolutionCompliance.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.solution. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.solution.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsSolutionCompliance" + } + } + }, + "required": [ + "impact", + "status", + "notifications", + "scan_time", + "base_image", + "add_on", + "components", + "solutions" + ] + }, + "EsxSettingsDataProcessingUnitInfo": { + "type": "object", + "properties": { + "alias": { + "description": "Alias of the data processing unit. This field is used to identify the data processing unit on the host with a short hand representation, that can used by vSphere's components across the board. Example: UI. Each data processing unit will have unique alias on the host. Alias is persisted across the reboots and upgrades.", + "type": "string" + } + }, + "required": [ + "alias" + ] + }, + "EsxSettingsDataProcessingUnitsCompliance": { + "type": "object", + "properties": { + "compliant_data_processing_units": { + "description": "Identifiers of compliant data processing units.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.data_processing_unit.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "non_compliant_data_processing_units": { + "description": "Identifiers of non-compliant data processing units.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.data_processing_unit.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "incompatible_data_processing_units": { + "description": "Identifiers of incompatible data processing units.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.data_processing_unit.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "unavailable_data_processing_units": { + "description": "Identifiers of unavailable data processing units. There will not be compliance details for these data processing units in #dataProcessingUnits.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.data_processing_unit.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "compliance": { + "description": "Mapping from data processing unit identifier to the compliance information for the data processing units.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.data_processing_unit.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDataProcessingUnitCompliance" + } + }, + "data_processing_unit_info": { + "description": "Auxillary information about the data processing units. This gives some additional information about the data processing units referenced in this result.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.data_processing_unit. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.data_processing_unit.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDataProcessingUnitInfo" + } + } + }, + "required": [ + "compliant_data_processing_units", + "non_compliant_data_processing_units", + "incompatible_data_processing_units", + "unavailable_data_processing_units", + "compliance", + "data_processing_unit_info" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyConfiguredPolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on a given host of the cluster.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation in the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "disable_dpm": { + "description": "Disable DPM on the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "disable_hac": { + "description": "Disable HA Admission control on the cluster.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "evacuate_offline_vms": { + "description": "Evacuate powered off/suspended VMs when attempting maintenance mode.\nIf unset, configured value would be unset.", + "type": "boolean" + }, + "enforce_hcl_validation": { + "description": "Enforce Hcl validation, when applicable, to prevent remediation if hardware compatibility issues are found.\nIf unset, hardware compatibility issues will not prevent remediation.", + "type": "boolean" + }, + "parallel_remediation_action": { + "description": "Enable parallel remediation of hosts in maintenance mode. Set max hosts when applicable.\nIf unset, parallel remediation will not happen.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyParallelRemediationAction" + } + } + }, + "EsxSettingsDefaultsClustersPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Apply.ConfiguredPolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken on VMs before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyEffectiveEffectivePolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on a given host of the cluster.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyEffectiveFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation in the cluster.", + "type": "boolean" + }, + "disable_dpm": { + "description": "Disable DPM on the cluster.", + "type": "boolean" + }, + "disable_hac": { + "description": "Disable HA Admission control on the cluster.", + "type": "boolean" + }, + "evacuate_offline_vms": { + "description": "Evacuate powered off/suspended VMs when attempting maintenance mode.", + "type": "boolean" + }, + "enforce_hcl_validation": { + "description": "Enforce Hcl validation, when applicable, to prevent remediation if hardware compatibility issues are found.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "parallel_remediation_action": { + "description": "Enable parallel remediation of hosts in maintenance mode. Set max hosts when applicable.\nIf unset, parallel remediation will not happen.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyEffectiveParallelRemediationAction" + } + }, + "required": [ + "failure_action", + "pre_remediation_power_action", + "enable_quick_boot", + "disable_dpm", + "disable_hac", + "evacuate_offline_vms" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Effective.EffectivePolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyEffectiveFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on a single host within the cluster.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyEffectiveFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyEffectiveFailureActionAction": { + "type": "string", + "description": "The Effective.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on a single host within the cluster.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyEffectiveParallelRemediationAction": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable parallel remediation for hosts in maintenance mode within a cluster.", + "type": "boolean" + }, + "max_hosts": { + "description": "Maximum number of hosts that can be remediated in parallel. Setting Apply.ParallelRemediationAction.max-hosts does not guarantee maxHosts to be remediated in parallel.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on a single host within the cluster.", + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyFailureActionAction": { + "type": "string", + "description": "The Apply.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on a single host within the cluster.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplyParallelRemediationAction": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable parallel remediation for hosts in maintenance mode within a cluster.", + "type": "boolean" + }, + "max_hosts": { + "description": "Maximum number of hosts that can be remediated in parallel Setting Apply.ParallelRemediationAction.max-hosts does not guarantee maxHosts to be remediated in parallel.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsDefaultsClustersPoliciesApplySet": { + "$ref": "#/definitions/EsxSettingsDefaultsClustersPoliciesApplyConfiguredPolicySpec", + "description": "The policy that needs to be configured." + }, + "EsxSettingsDefaultsHostsPoliciesApplyConfiguredPolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on an ESXi host.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation of the host.\nIf unset, configured value would be unset.", + "type": "boolean" + } + } + }, + "EsxSettingsDefaultsHostsPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Apply.ConfiguredPolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyEffectiveEffectivePolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyEffectiveFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation of an ESXi host.", + "type": "boolean" + } + }, + "required": [ + "failure_action", + "pre_remediation_power_action", + "enable_quick_boot" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Effective.EffectivePolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to be taken, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyEffectiveFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyEffectiveFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyEffectiveFailureActionAction": { + "type": "string", + "description": "The Effective.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on an ESXi host.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplyFailureActionAction": { + "type": "string", + "description": "The Apply.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on an ESXi host.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsDefaultsHostsPoliciesApplySet": { + "$ref": "#/definitions/EsxSettingsDefaultsHostsPoliciesApplyConfiguredPolicySpec", + "description": "The policy specification." + }, + "EsxSettingsDepotContentAddOnsAddOnVersionSummary": { + "type": "object", + "properties": { + "version": { + "description": "Version of the OEM add-on.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the OEM add-on.", + "type": "string" + }, + "summary": { + "description": "Summary of the OEM add-on version.", + "type": "string" + }, + "category": { + "description": "Category of the OEM add-on version.", + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsCategoryType" + }, + "kb": { + "description": "Link to kb article related to this the OEM add-on version.", + "type": "string", + "format": "uri" + }, + "release_date": { + "description": "Release date of the OEM add-on version.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "version", + "display_version", + "summary", + "category", + "kb", + "release_date" + ] + }, + "EsxSettingsDepotContentAddOnsCategoryType": { + "type": "string", + "description": "The AddOns.CategoryType enumerated type defines possible values of categories for a OEM add-on.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX" + ] + }, + "EsxSettingsDepotContentAddOnsFilterSpec": { + "type": "object", + "properties": { + "vendors": { + "description": "Vendors that an add-on must have to match the filter.\nIf unset or empty, add-ons from any vendor will match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that an add-on must have to match the filter.\nIf unset or empty, add-ons with any name will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.add_on. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.add_on.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "versions": { + "description": "Versions that an add-on must have to match the filter.\nIf unset or empty, add-ons with any version will match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "min_version": { + "description": "Minimum version of an add-on that can match the filter.\nIf set, only OEM add-ons with version greater than or equal to this will be returned.", + "type": "string" + } + } + }, + "EsxSettingsDepotContentAddOnsSummary": { + "type": "object", + "properties": { + "name": { + "description": "Name of the OEM add-on.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.add_on. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.add_on.", + "type": "string" + }, + "display_name": { + "description": "Display name of the OEM add-on.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the OEM add-on.", + "type": "string" + }, + "versions": { + "description": "Summary information about the versions of this addon. These are sorted by the version.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsAddOnVersionSummary" + } + } + }, + "required": [ + "name", + "display_name", + "vendor", + "versions" + ] + }, + "EsxSettingsDepotContentAddOnsVersionsCategoryType": { + "type": "string", + "description": "The Versions.CategoryType enumerated type defines possible values of categories for a OEM add-on.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX" + ] + }, + "EsxSettingsDepotContentAddOnsVersionsComponentInfo": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "version": { + "description": "Version of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the OEM add-on.", + "type": "string" + } + }, + "required": [ + "name", + "display_name", + "version", + "display_version" + ] + }, + "EsxSettingsDepotContentAddOnsVersionsInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the OEM add-on.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the OEM add-on.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the OEM add-on.", + "type": "string" + }, + "summary": { + "description": "Summary of the OEM add-on.", + "type": "string" + }, + "description": { + "description": "Discription of the OEM add-on.", + "type": "string" + }, + "category": { + "description": "Category of the OEM add-on.", + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsVersionsCategoryType" + }, + "kb": { + "description": "Link to kb article related to this the OEM add-on.", + "type": "string", + "format": "uri" + }, + "release_date": { + "description": "Release date of the OEM add-on.", + "type": "string", + "format": "date-time" + }, + "components": { + "description": "List of components in this OEM add-on.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsVersionsComponentInfo" + } + }, + "removed_components": { + "description": "List of components removed by this OEM add-on.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentAddOnsVersionsRemovedComponentInfo" + } + } + }, + "required": [ + "display_name", + "vendor", + "display_version", + "summary", + "description", + "category", + "kb", + "release_date", + "components", + "removed_components" + ] + }, + "EsxSettingsDepotContentAddOnsVersionsRemovedComponentInfo": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + } + }, + "required": [ + "name", + "display_name" + ] + }, + "EsxSettingsDepotContentBaseImagesCategoryType": { + "type": "string", + "description": "The BaseImages.CategoryType enumerated type defines possible values of categories for a base image.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX" + ] + }, + "EsxSettingsDepotContentBaseImagesFilterSpec": { + "type": "object", + "properties": { + "min_version": { + "description": "Minimum version of a base image that can match the filter.\nIf set, only base images with version greater than or equal to this version will be returned.", + "type": "string" + } + } + }, + "EsxSettingsDepotContentBaseImagesSummary": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the base image.", + "type": "string" + }, + "version": { + "description": "Version of the base image.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.base_image. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.base_image.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the base image.", + "type": "string" + }, + "summary": { + "description": "Summary of the base image.", + "type": "string" + }, + "category": { + "description": "Category of the base image.", + "$ref": "#/definitions/EsxSettingsDepotContentBaseImagesCategoryType" + }, + "kb": { + "description": "Link to kb article related to this the base image.", + "type": "string", + "format": "uri" + }, + "release_date": { + "description": "Release date of the base image.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "display_name", + "version", + "display_version", + "summary", + "category", + "kb", + "release_date" + ] + }, + "EsxSettingsDepotContentBaseImagesVersionsCategoryType": { + "type": "string", + "description": "The Versions.CategoryType enumerated type defines possible values of categories for a base image.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX" + ] + }, + "EsxSettingsDepotContentBaseImagesVersionsComponentVersionInfo": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "version": { + "description": "Version of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the base image.", + "type": "string" + } + }, + "required": [ + "name", + "display_name", + "version", + "display_version" + ] + }, + "EsxSettingsDepotContentBaseImagesVersionsInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the base image.", + "type": "string" + }, + "version": { + "description": "Version of the base image.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.base_image. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.base_image.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the base image.", + "type": "string" + }, + "summary": { + "description": "Summary of the base image.", + "type": "string" + }, + "description": { + "description": "Discription of the base image.", + "type": "string" + }, + "category": { + "description": "Category of the base image.", + "$ref": "#/definitions/EsxSettingsDepotContentBaseImagesVersionsCategoryType" + }, + "kb": { + "description": "Link to kb article related to this the base image.", + "type": "string", + "format": "uri" + }, + "release_date": { + "description": "Release date of the base image.", + "type": "string", + "format": "date-time" + }, + "components": { + "description": "List of components in this base image.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentBaseImagesVersionsComponentVersionInfo" + } + } + }, + "required": [ + "display_name", + "version", + "display_version", + "summary", + "description", + "category", + "kb", + "release_date", + "components" + ] + }, + "EsxSettingsDepotContentComponentsCategoryType": { + "type": "string", + "description": "The Components.CategoryType enumerated type defines possible values of categories for a component.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX", + "RECALL", + "RECALL_FIX", + "INFO", + "MISC", + "GENERAL" + ] + }, + "EsxSettingsDepotContentComponentsComponentBundleType": { + "type": "string", + "enum": [ + "INDEPENDENT", + "BASE_IMAGE", + "ADD_ON" + ] + }, + "EsxSettingsDepotContentComponentsComponentVersionSummary": { + "type": "object", + "properties": { + "version": { + "description": "Version of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.", + "type": "string" + }, + "summary": { + "description": "Summary of the component version.", + "type": "string" + }, + "category": { + "description": "Category of the component version.", + "$ref": "#/definitions/EsxSettingsDepotContentComponentsCategoryType" + }, + "urgency": { + "description": "Urgency of the component version.", + "$ref": "#/definitions/EsxSettingsDepotContentComponentsUrgencyType" + }, + "kb": { + "description": "Link to kb article related to this the component version.", + "type": "string", + "format": "uri" + }, + "release_date": { + "description": "Release date of the component version.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "version", + "display_version", + "summary", + "category", + "urgency", + "kb", + "release_date" + ] + }, + "EsxSettingsDepotContentComponentsFilterSpec": { + "type": "object", + "properties": { + "vendors": { + "description": "Vendors that a component must have to match the filter.\nIf unset or empty, components with any vendor name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that a component must have to match the filter.\nIf unset or empty, components with any name will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.component.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "versions": { + "description": "Versions that a component must have to match the filter.\nIf unset or empty, components with any version will match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "min_version": { + "description": "Minimum version of the component that can match the filter.\nIf set, only components with version greater than or equal to the given version match the filter.", + "type": "string" + }, + "bundle_types": { + "description": "Component bundle types that a component must have to match the filter.\nIf unset or empty, all components will match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentComponentsComponentBundleType" + } + } + } + }, + "EsxSettingsDepotContentComponentsSummary": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the component.", + "type": "string" + }, + "versions": { + "description": "Summary information about the versions of this component. These are sorted by the version.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotContentComponentsComponentVersionSummary" + } + } + }, + "required": [ + "name", + "display_name", + "vendor", + "versions" + ] + }, + "EsxSettingsDepotContentComponentsUrgencyType": { + "type": "string", + "description": "The Components.UrgencyType enumerated type defines possible values of urgencies for a component.", + "enum": [ + "CRITICAL", + "IMPORTANT", + "MODERATE", + "LOW", + "GENERAL" + ] + }, + "EsxSettingsDepotContentComponentsVersionsCategoryType": { + "type": "string", + "description": "The Versions.CategoryType enumerated type defines possible values of categories for a component.", + "enum": [ + "SECURITY", + "ENHANCEMENT", + "BUGFIX", + "RECALL", + "RECALL_FIX", + "INFO", + "MISC", + "GENERAL" + ] + }, + "EsxSettingsDepotContentComponentsVersionsInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.", + "type": "string" + }, + "summary": { + "description": "Summary of the component version.", + "type": "string" + }, + "description": { + "description": "Discription of the component version.", + "type": "string" + }, + "category": { + "description": "Category of the component version.", + "$ref": "#/definitions/EsxSettingsDepotContentComponentsVersionsCategoryType" + }, + "urgency": { + "description": "Urgency of the component version.", + "$ref": "#/definitions/EsxSettingsDepotContentComponentsVersionsUrgencyType" + }, + "kb": { + "description": "Link to kb article related to this the component version.", + "type": "string", + "format": "uri" + }, + "contact": { + "description": "Contact email for the component version.", + "type": "string" + }, + "release_date": { + "description": "Release date of the component version.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "display_name", + "vendor", + "display_version", + "summary", + "description", + "category", + "urgency", + "kb", + "contact", + "release_date" + ] + }, + "EsxSettingsDepotContentComponentsVersionsUrgencyType": { + "type": "string", + "description": "The Versions.UrgencyType enumerated type defines possible values of urgencies for a component.", + "enum": [ + "CRITICAL", + "IMPORTANT", + "MODERATE", + "LOW", + "GENERAL" + ] + }, + "EsxSettingsDepotsAddonSummary": { + "type": "object", + "properties": { + "display_name": { + "description": "Human readable name of the addon.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the addon.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.depots.vendor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.depots.vendor.", + "type": "string" + }, + "versions": { + "description": "Different versions of the addon.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsAddonVersion" + } + } + }, + "required": [ + "display_name", + "vendor", + "versions" + ] + }, + "EsxSettingsDepotsAddonVersion": { + "type": "object", + "properties": { + "version": { + "description": "Version of the addon.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the addon.", + "type": "string" + } + }, + "required": [ + "version", + "display_version" + ] + }, + "EsxSettingsDepotsBaseImageVersion": { + "type": "object", + "properties": { + "version": { + "description": "Version of the base image.", + "type": "string" + }, + "display_name": { + "description": "Human readable name of the base image.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the base image.", + "type": "string" + } + }, + "required": [ + "version", + "display_name", + "display_version" + ] + }, + "EsxSettingsDepotsComponentSummary": { + "type": "object", + "properties": { + "display_name": { + "description": "Human readable name of the component.", + "type": "string" + }, + "versions": { + "description": "Different versions of the component.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsComponentVersion" + } + } + }, + "required": [ + "display_name", + "versions" + ] + }, + "EsxSettingsDepotsComponentVersion": { + "type": "object", + "properties": { + "version": { + "description": "Version of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.", + "type": "string" + } + }, + "required": [ + "version", + "display_version" + ] + }, + "EsxSettingsDepotsHardwareSupportManagerSummary": { + "type": "object", + "properties": { + "display_name": { + "description": "UI label for HSM, derived from HSM extension's description's 'label' field.", + "type": "string" + }, + "packages": { + "description": "Different hardware support packages (HSP) published by the HSM. The key is name of HSP.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.package.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsHardwareSupportPackageSummary" + } + } + }, + "required": [ + "display_name", + "packages" + ] + }, + "EsxSettingsDepotsHardwareSupportPackageSummary": { + "type": "object", + "properties": { + "versions": { + "description": "Different versions of the HSP.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsHardwareSupportPackageVersion" + } + } + }, + "required": [ + "versions" + ] + }, + "EsxSettingsDepotsHardwareSupportPackageVersion": { + "type": "object", + "properties": { + "version": { + "description": "Version of the HSP.", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "EsxSettingsDepotsMetadataInfo": { + "type": "object", + "properties": { + "file_name": { + "description": "File name of the metadata bundle.", + "type": "string" + }, + "base_images": { + "description": "All the base images contained in the metadata bundle.\nIf unset, the metadata bundle contains no base image.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsBaseImageVersion" + } + }, + "addons": { + "description": "All the addons contained in the metadata bundle. The key is name of addon.\nIf unset, the metadata bundle contains no addon.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.add_on. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.add_on.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsAddonSummary" + } + }, + "solutions": { + "description": "All the solutions contained in the metadata bundle. The key is name of solution.\nIf unset, the metadata bundle contains no solution.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.solution. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.solution.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsSolutionSummary" + } + }, + "hardware_support": { + "description": "All the HSMs and their HSPs contained in the metadata bundle. The key is name of HSM.\nIf unset, the metadata bundle contains no hardware support manager.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsHardwareSupportManagerSummary" + } + }, + "independent_components": { + "description": "All the independent components contained in the metadata bundle. The components belongs to other base images, addons, solutions and hardware support packages are not counted. The ksy is name of component.\nIf unset, the metadata bundle contains no inpendent component.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsComponentSummary" + } + }, + "updates": { + "description": "All the updates (bulletins) contained in the metadata bundle. They key is identifier of the update (bulletin). The value is summary of the update (bulletin).\nIf unset, the metadata bundle contains no update (bulletin).\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.depots.bulletin. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.depots.bulletin.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsDepotsUpdateSummary" + } + } + }, + "required": [ + "file_name" + ] + }, + "EsxSettingsDepotsOfflineConnectionSpec": { + "type": "object", + "properties": { + "auth_type": { + "description": "Specifies what type of authentication (AuthenticationType) is to be used when connecting with the host. USERNAME_PASSWORD is intended to be used when connecting to a host that is not currently part of the vCenter inventory. EXISTING is intented for hosts that are in vCenter inventory, in which case, HostServiceTicket will be used to connect to the host.", + "$ref": "#/definitions/EsxSettingsDepotsOfflineConnectionSpecAuthenticationType" + }, + "host_credential": { + "description": "Specifies the host details to be used during the Offline.create-from-host operation.\nThis field is optional and it is only relevant when the value of Offline.ConnectionSpec.auth-type is USERNAME_PASSWORD.", + "$ref": "#/definitions/EsxSettingsDepotsOfflineHostCredentials" + }, + "host": { + "description": "Specifies the host Managed Object ID to be used during the Offline.create-from-host operation.\nThis field is optional and it is only relevant when the value of Offline.ConnectionSpec.auth-type is EXISTING.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + } + }, + "required": [ + "auth_type" + ] + }, + "EsxSettingsDepotsOfflineConnectionSpecAuthenticationType": { + "type": "string", + "description": "The Offline.ConnectionSpec.AuthenticationType enumerated type defines the possible types of authentication supported when connecting to the host.", + "enum": [ + "USERNAME_PASSWORD", + "EXISTING" + ] + }, + "EsxSettingsDepotsOfflineContentInfo": { + "type": "object", + "properties": { + "metadata_bundles": { + "description": "A list of metadata bundles contained in the depot. The key is vendor of metadata bundle.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.depots.vendor. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.depots.vendor.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsMetadataInfo" + } + } + } + }, + "required": [ + "metadata_bundles" + ] + }, + "EsxSettingsDepotsOfflineCreateFromHostTask": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineConnectionSpec", + "description": "ConnectionSpec connection spec for the host." + }, + "EsxSettingsDepotsOfflineCreateSpec": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot.\nIf unset, the description will be empty.", + "type": "string" + }, + "source_type": { + "description": "Type of the source from which offline bundle is obtained.", + "$ref": "#/definitions/EsxSettingsDepotsOfflineSourceType" + }, + "location": { + "description": "Location of the depot from which content should be retrieved.\nThis field is optional and it is only relevant when the value of Offline.CreateSpec.source-type is PULL.", + "type": "string", + "format": "uri" + }, + "file_id": { + "description": "File identifier returned by the file upload endpoint after file is uploaded.\nThis field is optional and it is only relevant when the value of Offline.CreateSpec.source-type is PUSH.", + "type": "string" + }, + "ownerdata": { + "description": "Private data saved by the Offline.Info.owner of the depot. It is opaque to vLCM.\nIf unset, no ownerdata will be saved.", + "type": "string" + } + }, + "required": [ + "source_type" + ] + }, + "EsxSettingsDepotsOfflineCreateTask": { + "$ref": "#/definitions/EsxSettingsDepotsOfflineCreateSpec", + "description": "Specification to import an offline depot." + }, + "EsxSettingsDepotsOfflineHostCredentials": { + "type": "object", + "properties": { + "host_name": { + "description": "The IP address or DNS resolvable name of the host.", + "type": "string" + }, + "user_name": { + "description": "Specifies the username to be used during the Offline.create-from-host operation.", + "type": "string" + }, + "password": { + "description": "Specifies the password to be used during the Offline.create-from-host operation.", + "type": "string", + "format": "password" + }, + "port": { + "description": "Specifies the port number of the host to be used during Offline.create-from-host operation.\nIf unset, port number is set to 443.", + "type": "integer", + "format": "int64" + }, + "ssl_thumb_print": { + "description": "Specifies the sslThumbPrint of the host to be used during Offline.create-from-host operation SHA1 hash of the host's SSL certificate.\nIf unset, Offline.create-from-host operation this operation will throw UnverifiedPeer with the host provided thumbprint as data.", + "type": "string" + } + }, + "required": [ + "host_name", + "user_name", + "password" + ] + }, + "EsxSettingsDepotsOfflineInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot. If not set during import, it will be empty.", + "type": "string" + }, + "source_type": { + "description": "Type of the source from which offline depot is obtained.", + "$ref": "#/definitions/EsxSettingsDepotsOfflineSourceType" + }, + "location": { + "description": "Location of the depot from which content is retrieved.\nThis field is optional and it is only relevant when the value of Offline.Info.source-type is PULL.", + "type": "string", + "format": "uri" + }, + "file_id": { + "description": "File identifier returned by the file upload endpoint after file is uploaded.\nThis field is optional and it is only relevant when the value of Offline.Info.source-type is PUSH.", + "type": "string" + }, + "create_time": { + "description": "Time when the depot was created.", + "type": "string", + "format": "date-time" + }, + "owner": { + "description": "Name of the user creating the depot.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "ownerdata": { + "description": "Private data saved by the Offline.Info.owner of depot. It is opaque to vLCM.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + } + }, + "required": [ + "description", + "source_type", + "create_time" + ] + }, + "EsxSettingsDepotsOfflineSourceType": { + "type": "string", + "description": "The Offline.SourceType enumerated type defines possible values of sources for the offline depot.", + "enum": [ + "PULL", + "PUSH" + ] + }, + "EsxSettingsDepotsOfflineSummary": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot. If not set during import, it will be empty.", + "type": "string" + }, + "source_type": { + "description": "Type of the source from which offline depot is obtained.", + "$ref": "#/definitions/EsxSettingsDepotsOfflineSourceType" + }, + "location": { + "description": "Location of the depot from which content is retrieved.\nThis field is optional and it is only relevant when the value of Offline.Summary.source-type is PULL.", + "type": "string", + "format": "uri" + }, + "file_id": { + "description": "File identifier returned by the file upload endpoint after file is uploaded.\nThis field is optional and it is only relevant when the value of Offline.Summary.source-type is PUSH.", + "type": "string" + }, + "owner": { + "description": "Name of the user creating the depot.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "ownerdata": { + "description": "Private data saved by the Offline.Summary.owner of depot. It is opaque to vLCM.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + } + }, + "required": [ + "description", + "source_type" + ] + }, + "EsxSettingsDepotsOnlineContentInfo": { + "type": "object", + "properties": { + "metadata_bundles": { + "description": "A list of metadata bundles contained in the depot. The key is vendor of metadata bundle.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.depots.vendor. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.depots.vendor.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsMetadataInfo" + } + } + } + }, + "required": [ + "metadata_bundles" + ] + }, + "EsxSettingsDepotsOnlineCreate": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineCreateSpec", + "description": "Depot information." + }, + "EsxSettingsDepotsOnlineCreateSpec": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot.\nIf unset, the description will be empty.", + "type": "string" + }, + "location": { + "description": "Location of the depot. It should be the location to the index.xml for the depot.", + "type": "string", + "format": "uri" + }, + "enabled": { + "description": "Flag indicating whether this depot is enabled or not. Disabling the depot doesn't delete its cached metadata and payloads. It will not be refreshed next time depots are re-synced.\nIf unset, the depot will be enabled.", + "type": "boolean" + }, + "ownerdata": { + "description": "Private data saved by the Online.Info.owner of the depot. It is opaque to vLCM.\nIf unset, no ownerdata will be saved.", + "type": "string" + } + }, + "required": [ + "location" + ] + }, + "EsxSettingsDepotsOnlineInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot. It will be an empty string if no description was provided during create.", + "type": "string" + }, + "location": { + "description": "Location of the depot.", + "type": "string", + "format": "uri" + }, + "enabled": { + "description": "Flag indicating whether this depot is enabled or not.", + "type": "boolean" + }, + "system_defined": { + "description": "Flag to indicate if the depot is system defined. System defined depot can not be deleted.", + "type": "boolean" + }, + "owner": { + "description": "Name of the user creating the depot.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "ownerdata": { + "description": "Private data saved by the Online.Info.owner of depot. It is opaque to vLCM.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + } + }, + "required": [ + "description", + "location", + "enabled", + "system_defined" + ] + }, + "EsxSettingsDepotsOnlineSummary": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot. It will be an empty string if no description was provided during create.", + "type": "string" + }, + "location": { + "description": "Location of the depot.", + "type": "string", + "format": "uri" + }, + "enabled": { + "description": "Flag indicating whether this depot is enabled or not.", + "type": "boolean" + }, + "system_defined": { + "description": "Flag to indicate if the depot is system defined. System defined depot can not be deleted.", + "type": "boolean" + }, + "owner": { + "description": "Name of the user creating the depot.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "ownerdata": { + "description": "Private data saved by the Online.Summary.owner of depot. It is opaque to vLCM.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + } + }, + "required": [ + "description", + "location", + "enabled", + "system_defined" + ] + }, + "EsxSettingsDepotsOnlineUpdate": { + "$ref": "#/definitions/EsxSettingsDepotsOnlineUpdateSpec", + "description": "Update specification." + }, + "EsxSettingsDepotsOnlineUpdateSpec": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether this depot is enabled or not. Disabling the depot doesn't delete its cached metadata and payloads. It will not be refreshed next time depots are re-synced.\nIf unset, enabled flag is not updated.", + "type": "boolean" + }, + "description": { + "description": "Description of the depot.\nIf unset, description is not updated.", + "type": "string" + } + } + }, + "EsxSettingsDepotsSolutionSummary": { + "type": "object", + "properties": { + "display_name": { + "description": "Human readable name of the solution.", + "type": "string" + }, + "versions": { + "description": "Different versions of the solution.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsSolutionVersion" + } + } + }, + "required": [ + "display_name", + "versions" + ] + }, + "EsxSettingsDepotsSolutionVersion": { + "type": "object", + "properties": { + "version": { + "description": "Version of the solution.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the solution.", + "type": "string" + } + }, + "required": [ + "version", + "display_version" + ] + }, + "EsxSettingsDepotsSyncScheduleDayOfWeek": { + "type": "string", + "description": "The SyncSchedule.DayOfWeek enumerated type contains the supported days of the week.", + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ] + }, + "EsxSettingsDepotsSyncScheduleRecurrence": { + "type": "string", + "description": "The SyncSchedule.Recurrence enumerated type contains the supported values for how often to sync from online or UMDS depots.", + "enum": [ + "HOURLY", + "DAILY", + "WEEKLY", + "MONTHLY_BY_DAY" + ] + }, + "EsxSettingsDepotsSyncScheduleSchedule": { + "type": "object", + "properties": { + "type": { + "description": "Frequency of the schedule.", + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleRecurrence" + }, + "skip": { + "description": "This determines the units of SyncSchedule.Recurrence to skip before the scheduled task runs again. For example, value of 1 for HOURLY type means the scheduled task runs every 2 hours. The value must be within the range 0 to 998.\nIf unset, no unit is skipped.", + "type": "integer", + "format": "int64" + }, + "minute": { + "description": "Minute at which schedule should be run. The value must be within the range 0 to 59.\nThis field is optional and it is only relevant when the value of SyncSchedule.Schedule.type is one of HOURLY, DAILY, WEEKLY, or MONTHLY_BY_DAY.", + "type": "integer", + "format": "int64" + }, + "hour": { + "description": "Hour at which schedule should be run. The value must be within the range 0 to 23.\nThis field is optional and it is only relevant when the value of SyncSchedule.Schedule.type is one of DAILY, WEEKLY, or MONTHLY_BY_DAY.", + "type": "integer", + "format": "int64" + }, + "day_of_month": { + "description": "Day at which schedule should be run. The value must be within the range 1 to 31. If the value exceeds the total number of days in the month, the schedule will run on the last day of the month.\nThis field is optional and it is only relevant when the value of SyncSchedule.Schedule.type is MONTHLY_BY_DAY.", + "type": "integer", + "format": "int64" + }, + "day_of_week": { + "description": "Day of the week when schedule should be run\nThis field is optional and it is only relevant when the value of SyncSchedule.Schedule.type is WEEKLY.", + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleDayOfWeek" + } + }, + "required": [ + "type" + ] + }, + "EsxSettingsDepotsSyncScheduleSet": { + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleSpec", + "description": "Information of the software depot sync schedule.\nIf unset, it will be reset to the default schedule, which is daily at a random hour chosen when this API is called." + }, + "EsxSettingsDepotsSyncScheduleSpec": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether automatic sync is enabled or not", + "type": "boolean" + }, + "schedule": { + "description": "The schedule to check for new updates.\nIf unset the schedule must be disabled.", + "$ref": "#/definitions/EsxSettingsDepotsSyncScheduleSchedule" + }, + "email_addresses": { + "description": "Email addresses to which the notification will be sent. If empty, no notification is sent.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "email_addresses" + ] + }, + "EsxSettingsDepotsUmdsContentInfo": { + "type": "object", + "properties": { + "metadata_bundles": { + "description": "A list of metadata bundles contained in the depot. The key is vendor of metadata bundle.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.depots.vendor. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.depots.vendor.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsDepotsMetadataInfo" + } + } + } + }, + "required": [ + "metadata_bundles" + ] + }, + "EsxSettingsDepotsUmdsInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot. It will be an empty string if no description was provided during create.", + "type": "string" + }, + "enabled": { + "description": "Flag indicating whether or not this depot is enabled.", + "type": "boolean" + }, + "location": { + "description": "Location of the depot.", + "type": "string", + "format": "uri" + }, + "owner": { + "description": "Name of the user creating the depot.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + } + }, + "required": [ + "description", + "enabled", + "location" + ] + }, + "EsxSettingsDepotsUmdsSet": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsSetSpec", + "description": "Specification to set the UMDS depot." + }, + "EsxSettingsDepotsUmdsSetSpec": { + "type": "object", + "properties": { + "description": { + "description": "Description of the depot.\nIf unset, the description will be empty.", + "type": "string" + }, + "enabled": { + "description": "Flag indicating whether or not this depot should be enabled. Disabling the depot doesn't delete its cached metadata and payloads. It will not be refreshed next time depots are re-synced.\nIf unset, the depot will be enabled.", + "type": "boolean" + }, + "location": { + "description": "Location of the depot. It should be the location to the index.xml for the depot.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "location" + ] + }, + "EsxSettingsDepotsUmdsUpdate": { + "$ref": "#/definitions/EsxSettingsDepotsUmdsUpdateSpec", + "description": "Update specification." + }, + "EsxSettingsDepotsUmdsUpdateSpec": { + "type": "object", + "properties": { + "enabled": { + "description": "Flag indicating whether or not this depot is enabled. Disabling the depot doesn't delete its cached metadata and payloads. It will not be refreshed next time depots are re-synced.\nIf unset, the enabled flag is not updated.", + "type": "boolean" + }, + "description": { + "description": "Description of the depot.\nIf unset, the description is not updated.", + "type": "string" + } + } + }, + "EsxSettingsDepotsUpdateSummary": { + "type": "object", + "properties": { + "summary": { + "description": "Summary of the update (bulletin).", + "type": "string" + } + }, + "required": [ + "summary" + ] + }, + "EsxSettingsEffectiveComponentDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the component.", + "type": "string" + }, + "source": { + "description": "Final effective source of the component.", + "$ref": "#/definitions/EsxSettingsComponentSource" + }, + "note": { + "description": "Note assosicated with this component.\nIf unset, note is present for this component.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "overridden_components": { + "description": "List of other component versions present in base image, add-ons or solutions that this component is overriding. For example, if a component version-1 was implicitly present in the base image, but user wants it to be changed to version-2. In that case, EffectiveComponentDetails.source would be USER and there will be one entry in this list indicating base image component version-1 is being overridden.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsComponentOverrideInfo" + } + } + }, + "required": [ + "display_name", + "display_version", + "vendor", + "source", + "overridden_components" + ] + }, + "EsxSettingsEffectiveComponentInfo": { + "type": "object", + "properties": { + "version": { + "description": "Version of the component.", + "type": "string" + }, + "details": { + "description": "Details about the effective component.\nunset if component is not present in the depot.", + "$ref": "#/definitions/EsxSettingsEffectiveComponentDetails" + } + }, + "required": [ + "version" + ] + }, + "EsxSettingsHardwareModuleClass": { + "type": "string", + "description": "The HardwareModuleClass structure contains the module's source information.", + "enum": [ + "SYSTEM_BIOS", + "PCI_DEVICE", + "OTHER" + ] + }, + "EsxSettingsHardwareModuleDetails": { + "type": "object", + "properties": { + "component_class": { + "description": "Class of module (BIOS, PCI Device, non-PCI hardware, etc.)", + "$ref": "#/definitions/EsxSettingsHardwareModuleClass" + }, + "description": { + "description": "Descipription of the hardware module (e.g. \"System BIOS\" or \"Frobozz 100Gb NIC\").\nunset if description is not specified.", + "type": "string" + } + }, + "required": [ + "component_class" + ] + }, + "EsxSettingsHardwareModuleFirmwareCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the hardware module's firmware.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the hardware module's firmware. This is only relevant when the value of HardwareModuleFirmwareCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "details": { + "description": "Additional details about the hardware module itself\nunset if no further info was provided by HSM.", + "$ref": "#/definitions/EsxSettingsHardwareModuleDetails" + }, + "current": { + "description": "Current version of the firmware present on the host hardware module.\nunset if version of firmware on the hardware module on the host cannot be determined.", + "$ref": "#/definitions/EsxSettingsHardwareModuleFirmwareInfo" + }, + "target": { + "description": "Target version of the firmware present in the Hardware Support Package (HSP).\nunset if component is not present in the software specification.", + "$ref": "#/definitions/EsxSettingsHardwareModuleFirmwareInfo" + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "notifications" + ] + }, + "EsxSettingsHardwareModuleFirmwareInfo": { + "type": "object", + "properties": { + "version": { + "description": "Version of the hardware module firmware.", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "EsxSettingsHardwareSupportInfo": { + "type": "object", + "properties": { + "packages": { + "description": "Map of Hardware Support Packages (HSPs) for the cluster. The key is the Hardware Support Manager (HSM) identifier and the value is the specification detailing the HSP configured for that HSM.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageInfo" + } + } + }, + "required": [ + "packages" + ] + }, + "EsxSettingsHardwareSupportManagersHardwareSupportManagerInfo": { + "type": "object", + "properties": { + "manager": { + "description": "Name of the Hardware Support Manager (HSM) (e.g. \"Frobozz Hardware Support Manager\")\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "string" + }, + "description": { + "description": "User-intelligible description of the HSM (e.g. \"Front end for Frobozz so-and-so management system\")", + "type": "string" + }, + "display_name": { + "description": "UI label for HSM, derived from HSM extension's description's 'label' field. (e.g. \"Frobozz Free Management System\")", + "type": "string" + }, + "vendor": { + "description": "Company providing the Hardware Support Manager (HSM) (e.g. \"Frobozz Magic Software Company\")", + "type": "string" + } + }, + "required": [ + "manager", + "description", + "display_name", + "vendor" + ] + }, + "EsxSettingsHardwareSupportManagersPackagesFilterSpec": { + "type": "object", + "properties": { + "base_image_version": { + "description": "vSphere release version the Hardware Support Package (HSP) must support to match the filter. Only Hardware Support Packages (HSPs) compatible with the vSphere release version specified in 'baseImageVersion' will be returned. The 'baseImageVersion' parameter should be a full numeric base image version string (e.g. \"7.1.0-2.3.436234\"). Future implementations may support version specification by prefix (e.g. \"7.1\" to specify all updates and builds of 7.1) or other forms of specification (e.g. \">=7.0\"). Hardware Support Pacakges (HSPs) may be advertised as supporting truncated version strings to indicate the remainder is wildcarded. Matching is on the specified substring only, so a bundle supporting \"7.1.0-2\" would match a 'release' parameter of \"7.1.0-2.3.436234\" as well as \"7.1.0-2.1.4133564\" and \"7.1.0-1.0.355667\" but not \"7.1.0-3.0.63445\" or any base image version starting with \"7.2\". Note that we require compatible base image versions be specified at least down to the update version (i.e. \"7.0\" is insufficiently constrained)\nIf unset, all packages will be returned, regardless of base image version.", + "type": "string" + } + } + }, + "EsxSettingsHardwareSupportManagersPackagesHardwareSupportPackageInfo": { + "type": "object", + "properties": { + "pkg": { + "description": "Name of the Hardware Support Package (e.g. \"Jan. 2018 Release\" or \"Latest Hardware Support Package for Frobozz GenX hardware\") selected\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.setting.hardware_support.package. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.setting.hardware_support.package.", + "type": "string" + }, + "version": { + "description": "Version of the Hardware Support Package (e.g. \"20180128.1\" or \"v42\") selected", + "type": "string" + }, + "description": { + "description": "Description of the Hardware Support Package (HSP) (e.g. for use in help bubble)", + "type": "string" + }, + "supported_releases": { + "description": "Supported vSphere releases", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "pkg", + "version", + "description", + "supported_releases" + ] + }, + "EsxSettingsHardwareSupportManagersPackagesVersionsComponentInfo": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "version": { + "description": "Version of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the HSP manifest.", + "type": "string" + } + }, + "required": [ + "name", + "display_name", + "version", + "display_version" + ] + }, + "EsxSettingsHardwareSupportManagersPackagesVersionsFilterSpec": { + "type": "object", + "properties": { + "base_image_version": { + "description": "vSphere release version for the component information in the Hardware Support Package (HSP). Only Hardware Support Packages (HSPs) compatible with the vSphere release version specified in 'baseImageVersion' will be returned. The 'baseImageVersion' parameter should be a full numeric base image version string (e.g. \"7.1.0-2.3.436234\"). Future implementations may support version specification by prefix (e.g. \"7.1\" to specify all updates and builds of 7.1) or other forms of specification (e.g. \">=7.0\"). Hardware Support Pacakges (HSPs) may be advertised as supporting truncated version strings to indicate the remainder is wildcarded. Matching is on the specified substring only, so a bundle supporting \"7.1.0-2\" would match a 'release' parameter of \"7.1.0-2.3.436234\" as well as \"7.1.0-2.1.4133564\" and \"7.1.0-2.0.355667\" but not \"7.1.0-3.0.63445\" or any base image version starting with \"7.2\". Note that we require compatible base image versions be specified at least down to the update version (i.e. \"7.0\" is insufficiently constrained)\nIf unset, all supported releases will be returned but no specific component information (added or deleted) will be included.", + "type": "string" + } + } + }, + "EsxSettingsHardwareSupportManagersPackagesVersionsPackageInfo": { + "type": "object", + "properties": { + "pkg": { + "description": "Name of the Hardware Support Package (e.g. \"Jan. 2018 Release\" or \"Latest Hardware Support Package for Frobozz GenX hardware\") selected\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.setting.hardware_support.package. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.setting.hardware_support.package.", + "type": "string" + }, + "version": { + "description": "Version of the Hardware Support Package (e.g. \"20180128.1\" or \"v42\") selected", + "type": "string" + }, + "description": { + "description": "Description of the Hardware Support Package (HSP) (e.g. for use in help bubble)", + "type": "string" + }, + "supported_releases": { + "description": "Supported vSphere releases", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "components": { + "description": "List of components in this HSP manifest.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHardwareSupportManagersPackagesVersionsComponentInfo" + } + }, + "removed_components": { + "description": "List of components removed by this HSP manifest.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHardwareSupportManagersPackagesVersionsRemovedComponentInfo" + } + } + }, + "required": [ + "pkg", + "version", + "description", + "supported_releases", + "components", + "removed_components" + ] + }, + "EsxSettingsHardwareSupportManagersPackagesVersionsRemovedComponentInfo": { + "type": "object", + "properties": { + "name": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + } + }, + "required": [ + "name", + "display_name" + ] + }, + "EsxSettingsHardwareSupportPackageCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the Hardware Support Package (HSP).", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the Hardware Support Package (HSP). This is only relevant when the value of HardwareSupportPackageCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "current": { + "description": "Current version of the Hardware Support Package present on the host.\nunset if there is no known Hardware Support Package on the host.", + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageInfo" + }, + "target": { + "description": "Target version of the Hardware Support Package present in the software specification.\nunset if current desired image includes a Hardware Support Manager (HSM) but no target Hardware Support Package (HSP).", + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageInfo" + }, + "hardware_modules": { + "description": "Compliance result for individual hardware module on the host. The key is the module identifier and value is the HardwareModuleFirmwareCompliance for the device. NOTE: if no individual hardware module compliance is returned by the, Hardware Support Manager (HSM), this map may have no entries even if ComplianceStatus = NON_COMPLIANT\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_module. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_module.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHardwareModuleFirmwareCompliance" + } + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "hardware_modules", + "notifications" + ] + }, + "EsxSettingsHardwareSupportPackageInfo": { + "type": "object", + "properties": { + "pkg": { + "description": "Identifier of Hardware Support Package (HSP) selected\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.setting.hardware_support.package. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.setting.hardware_support.package.", + "type": "string" + }, + "version": { + "description": "Version of the Hardware Support Package (HSP) selected (e.g. \"20180128.1\" or \"v42\")", + "type": "string" + } + }, + "required": [ + "pkg", + "version" + ] + }, + "EsxSettingsHardwareSupportPackageSpec": { + "type": "object", + "properties": { + "pkg": { + "description": "Hardware Support Package (HSP) selected\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.setting.hardware_support.package. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.setting.hardware_support.package.", + "type": "string" + }, + "version": { + "description": "Version of the Hardware Support Package (HSP) selected (e.g. \"20180128.1\" or \"v42\")\nIf unset, the system will use an empty string as the version.", + "type": "string" + } + } + }, + "EsxSettingsHardwareSupportSpec": { + "type": "object", + "properties": { + "packages": { + "description": "Map of Hardware Support Packages (HSPs) for the cluster. The key is the Hardware Support Manager (HSM) name and the value is the specification detailing the HSP configured for that HSM.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageSpec" + } + } + }, + "required": [ + "packages" + ] + }, + "EsxSettingsHostCompliance": { + "type": "object", + "properties": { + "impact": { + "description": "Overall impact.", + "$ref": "#/definitions/EsxSettingsComplianceImpact" + }, + "status": { + "description": "Overall compliance status of the host.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Overall stage status of the host. This is only relevant when the value of HostCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "notifications": { + "description": "Notifications returned by the scan operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + }, + "scan_time": { + "description": "Scan completion time.", + "type": "string", + "format": "date-time" + }, + "commit": { + "description": "Identifier of the commit on which the scan is run to generate this result.\nunset if operation is performed on a working copy document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "base_image": { + "description": "Compliance result for the base image.", + "$ref": "#/definitions/EsxSettingsBaseImageCompliance" + }, + "add_on": { + "description": "Compliance result for the OEM add-on.", + "$ref": "#/definitions/EsxSettingsAddOnCompliance" + }, + "hardware_support": { + "description": "Compliance result for hardware support (both Hardware Support Package or HSP and individual hardware module firmware) for every HSP configured, keyed by Hardware Support Manager (HSM).\nThis field will be unset or contain an empty map if operation is performed on an image whose SoftwareSpec does not have a value for its hardwareSupport field.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.setting.hardware_support.manager. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.setting.hardware_support.manager.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsHardwareSupportPackageCompliance" + } + }, + "components": { + "description": "Compliance result for all the effective components and all the components present on the host. The key is the component name and value is the ComponentCompliance.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentCompliance" + } + }, + "solutions": { + "description": "Compliance result for solutions. The key is the solution name and value is the SolutionCompliance.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.solution. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.solution.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsSolutionCompliance" + } + }, + "data_processing_units_compliance": { + "description": "Compliance results of all data processing units on the host.\nThis field will be unset if host doesn't have any data processing units.", + "$ref": "#/definitions/EsxSettingsDataProcessingUnitsCompliance" + } + }, + "required": [ + "impact", + "status", + "notifications", + "scan_time", + "base_image", + "add_on", + "components", + "solutions" + ] + }, + "EsxSettingsHostInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the host.", + "type": "string" + }, + "is_vsan_witness": { + "description": "Indicates if the host is associated with a cluster as a vSAN witness.\nThis field is set only when the host is associated with a vSAN cluster as a witness.", + "type": "boolean" + } + }, + "required": [ + "name" + ] + }, + "EsxSettingsHostsConfigurationExtractResult": { + "type": "object", + "properties": { + "config": { + "description": "ESXi host configuration encoded as JSON.", + "type": "string" + } + }, + "required": [ + "config" + ] + }, + "EsxSettingsHostsDepotOverridesAdd": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesDepot", + "description": "Information of a depot override." + }, + "EsxSettingsHostsDepotOverridesDepot": { + "type": "object", + "properties": { + "location": { + "description": "Location of the depot override. This could be a location of zip file or location to an index.xml file.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "location" + ] + }, + "EsxSettingsHostsDepotOverridesInfo": { + "type": "object", + "properties": { + "depots": { + "description": "List of the depot overrides.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesDepot" + } + } + }, + "required": [ + "depots" + ] + }, + "EsxSettingsHostsDepotOverridesRemove": { + "$ref": "#/definitions/EsxSettingsHostsDepotOverridesDepot", + "description": "Information of the depot override to be removed." + }, + "EsxSettingsHostsEnablementSoftwareCheckSpec": { + "type": "object", + "properties": { + "checks_to_skip": { + "description": "Specifies the checks that should be skipped. If the set is empty, all checks will be performed.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareCheckType" + } + } + }, + "required": [ + "checks_to_skip" + ] + }, + "EsxSettingsHostsEnablementSoftwareCheckTask": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareCheckSpec", + "description": "Check specification.\nIf unset, all checks are performed." + }, + "EsxSettingsHostsEnablementSoftwareCheckType": { + "type": "string", + "description": "The Software.CheckType enumerated type contains various checks to identify the possibility to enable the feature that manages the host with a single software specification.", + "enum": [ + "SOFTWARE", + "VERSION", + "STATELESSNESS", + "VUM_REMEDIATION", + "SOFTWARE_SPECIFICATION_EXISTENCE", + "VSAN_WITNESS_ELIGIBILITY" + ] + }, + "EsxSettingsHostsEnablementSoftwareEnableSpec": { + "type": "object", + "properties": { + "skip_software_check": { + "description": "Skip SOFTWARE check during feature enablement.", + "type": "boolean" + } + }, + "required": [ + "skip_software_check" + ] + }, + "EsxSettingsHostsEnablementSoftwareEnableTask": { + "$ref": "#/definitions/EsxSettingsHostsEnablementSoftwareEnableSpec", + "description": "Enablement specification.\nIf unset, all checks are performed." + }, + "EsxSettingsHostsEnablementSoftwareInfo": { + "type": "object", + "properties": { + "enabled": { + "description": "Status of the feature enablement True if feature is enabled, false otherwise", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "EsxSettingsHostsPoliciesApplyConfiguredPolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on an ESXi host.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.\nIf unset, configured value would be unset.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation of the host.\nIf unset, configured value would be unset.", + "type": "boolean" + } + } + }, + "EsxSettingsHostsPoliciesApplyConfiguredPolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Apply.ConfiguredPolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to take, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsHostsPoliciesApplyEffectiveEffectivePolicySpec": { + "type": "object", + "properties": { + "failure_action": { + "description": "What action is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyEffectiveFailureAction" + }, + "pre_remediation_power_action": { + "description": "Specifies what should be done to the power state of the VM before entering maintenance mode.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction" + }, + "enable_quick_boot": { + "description": "Enable Quick Boot during remediation of an ESXi host.", + "type": "boolean" + } + }, + "required": [ + "failure_action", + "pre_remediation_power_action", + "enable_quick_boot" + ] + }, + "EsxSettingsHostsPoliciesApplyEffectiveEffectivePolicySpecPreRemediationPowerAction": { + "type": "string", + "description": "The Effective.EffectivePolicySpec.PreRemediationPowerAction enumerated type defines the possible actions to take, before entering maintenance mode.", + "enum": [ + "POWER_OFF_VMS", + "SUSPEND_VMS", + "DO_NOT_CHANGE_VMS_POWER_STATE", + "SUSPEND_VMS_TO_MEMORY" + ] + }, + "EsxSettingsHostsPoliciesApplyEffectiveFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyEffectiveFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Effective.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsHostsPoliciesApplyEffectiveFailureActionAction": { + "type": "string", + "description": "The Effective.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on an ESXi host.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsHostsPoliciesApplyFailureAction": { + "type": "object", + "properties": { + "action": { + "description": "What action (Action) is to be taken if entering maintenance mode fails on an ESXi host.", + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyFailureActionAction" + }, + "retry_delay": { + "description": "Time to wait to retry the failed operation in seconds.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + }, + "retry_count": { + "description": "Number of times to retry the failed operation.\nThis field is optional and it is only relevant when the value of Apply.FailureAction.action is RETRY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "action" + ] + }, + "EsxSettingsHostsPoliciesApplyFailureActionAction": { + "type": "string", + "description": "The Apply.FailureAction.Action enumerated type defines the actions to be taken when entering maintenance mode fails on an ESXi host.", + "enum": [ + "FAIL", + "RETRY" + ] + }, + "EsxSettingsHostsPoliciesApplySet": { + "$ref": "#/definitions/EsxSettingsHostsPoliciesApplyConfiguredPolicySpec", + "description": "The policy specification." + }, + "EsxSettingsHostsSoftwareApplySpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the Software.apply operation.\nif unset or empty the apply operation will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "accept_eula": { + "description": "Accept the VMware End User License Agreement (EULA) before starting the Software.apply operation. The VMware EULA is available for download at, https://www.vmware.com/download/eula.html\nif unset the Software.apply operation could fail due to the EULA not being accepted.", + "type": "boolean" + } + } + }, + "EsxSettingsHostsSoftwareApplyTask": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareApplySpec", + "description": "Apply specification." + }, + "EsxSettingsHostsSoftwareCheckSpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the check operation.\nif unset or empty the check opertion will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + } + } + }, + "EsxSettingsHostsSoftwareCheckTask": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareCheckSpec", + "description": "Check specification." + }, + "EsxSettingsHostsSoftwareCommitsApplyStatusType": { + "type": "string", + "description": "The Commits.ApplyStatusType enumerated type defines possible values regarding the application of this commit.", + "enum": [ + "APPLIED", + "NOT_APPLIED" + ] + }, + "EsxSettingsHostsSoftwareCommitsInfo": { + "type": "object", + "properties": { + "author": { + "description": "Author of the commit.", + "type": "string" + }, + "commit_time": { + "description": "Creation time of the commit.", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "Description accompanying this commit.", + "type": "string" + }, + "apply_status": { + "description": "Apply status of the commit.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareCommitsApplyStatusType" + } + }, + "required": [ + "author", + "commit_time", + "description", + "apply_status" + ] + }, + "EsxSettingsHostsSoftwareDraftsCommitSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message to include with the commit.\nIf unset, message is set to empty string.", + "type": "string" + } + } + }, + "EsxSettingsHostsSoftwareDraftsCommitTask": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsCommitSpec", + "description": "The spec to be used to create the commit." + }, + "EsxSettingsHostsSoftwareDraftsFilterSpec": { + "type": "object", + "properties": { + "owners": { + "description": "Owners of the drafts.\nIf unset or empty, drafts from all owners will be returned.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsHostsSoftwareDraftsImportSoftwareSpec": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsImportSpec", + "description": "Specification to import desired software specification." + }, + "EsxSettingsHostsSoftwareDraftsImportSpec": { + "type": "object", + "properties": { + "source_type": { + "description": "Type of the source to import the desired software specification", + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSourceType" + }, + "location": { + "description": "Location of the software specification file to be imported.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is PULL.", + "type": "string", + "format": "uri" + }, + "file_id": { + "description": "File identifier returned by the file upload endpoint after file is uploaded.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is PUSH.", + "type": "string" + }, + "software_spec": { + "description": "The JSON string representing the desired software specification.\nThis field is optional and it is only relevant when the value of Drafts.ImportSpec.source-type is JSON_STRING.", + "type": "string" + } + }, + "required": [ + "source_type" + ] + }, + "EsxSettingsHostsSoftwareDraftsInfo": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the software draft.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsMetadata" + }, + "software": { + "description": "Software specification associated with the draft.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + } + }, + "required": [ + "metadata", + "software" + ] + }, + "EsxSettingsHostsSoftwareDraftsMetadata": { + "type": "object", + "properties": { + "owner": { + "description": "Owner of the software draft.", + "type": "string" + }, + "status": { + "description": "Status of the software draft.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsStatusType" + }, + "creation_time": { + "description": "Creation time of the software draft.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "owner", + "status", + "creation_time" + ] + }, + "EsxSettingsHostsSoftwareDraftsSoftwareAddOnSet": { + "$ref": "#/definitions/EsxSettingsAddOnSpec", + "description": "AddOn specification." + }, + "EsxSettingsHostsSoftwareDraftsSoftwareBaseImageSet": { + "$ref": "#/definitions/EsxSettingsBaseImageSpec", + "description": "Base-image specification." + }, + "EsxSettingsHostsSoftwareDraftsSoftwareComponentsSet": { + "type": "string", + "description": "Component version.\nThis field is currently required. In the future,if this field is unset then version is chosen based on the constraints in the system." + }, + "EsxSettingsHostsSoftwareDraftsSoftwareComponentsUpdate": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsSoftwareComponentsUpdateSpec", + "description": "Update specification containing list of components to add and/or delete." + }, + "EsxSettingsHostsSoftwareDraftsSoftwareComponentsUpdateSpec": { + "type": "object", + "properties": { + "components_to_set": { + "description": "List of components to be updated. If the component already exists in the draft, the version is updated, else it is added. If a component is provided without version, then its version will be chosen based on constraints in the system.\nIf unset, no components will be added or updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "components_to_delete": { + "description": "List of components to be removed.\nIf unset, no components will be removed.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.settings.component.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "EsxSettingsHostsSoftwareDraftsSourceType": { + "type": "string", + "description": "The Drafts.SourceType enumerated type defines possible values of sources to import software specification.", + "enum": [ + "PULL", + "PUSH", + "JSON_STRING", + "LATEST_RECOMMENDATION", + "CURRENT_SERIES_RECOMMENDATION" + ] + }, + "EsxSettingsHostsSoftwareDraftsStatusType": { + "type": "string", + "description": "The Drafts.StatusType enumerated type defines possible values of status of a software draft.", + "enum": [ + "VALID", + "INVALID" + ] + }, + "EsxSettingsHostsSoftwareDraftsSummary": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the software draft.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareDraftsMetadata" + } + }, + "required": [ + "metadata" + ] + }, + "EsxSettingsHostsSoftwareExport": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareExportSpec", + "description": "" + }, + "EsxSettingsHostsSoftwareExportSpec": { + "type": "object", + "properties": { + "export_software_spec": { + "description": "Whether to export software specification document.", + "type": "boolean" + }, + "export_iso_image": { + "description": "Whether to export ISO image.", + "type": "boolean" + }, + "export_offline_bundle": { + "description": "Whether to export offline bundle.", + "type": "boolean" + } + }, + "required": [ + "export_software_spec", + "export_iso_image", + "export_offline_bundle" + ] + }, + "EsxSettingsHostsSoftwareRecommendationsExplanationDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of an excluded image entity (base image, add-on etc.).", + "type": "string" + }, + "display_version": { + "description": "Display version of an excluded image entity (base image, add-on etc.).", + "type": "string" + }, + "explanation": { + "description": "List of explanations on why the image entity is excluded.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "display_name", + "display_version", + "explanation" + ] + }, + "EsxSettingsHostsSoftwareRecommendationsInfo": { + "type": "object", + "properties": { + "latest_recommendation": { + "description": "Recommended image specification based on latest base image version.\nunset if no recommended image based on latest base image version is available.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + }, + "current_series_recommendation": { + "description": "Recommended image specification based on latest base image patch or update of the current series.\nunset if no recommended image based on latest base image patch or update of the current series is available.", + "$ref": "#/definitions/EsxSettingsSoftwareInfo" + }, + "base_image_explanation_details": { + "description": "Details about why some base images are excluded in latest and current series recommendations. This is not applicable for specified base image recommendations.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareRecommendationsExplanationDetails" + } + }, + "check_time": { + "description": "The most recent timestamp when check for recommended image is launched.\nunset if no recommendation check has ever been launched.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "base_image_explanation_details" + ] + }, + "EsxSettingsHostsSoftwareReportsApplyImpactHostImpact": { + "type": "object", + "properties": { + "impact": { + "description": "Impact of steps performed during the apply operation.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsApplyImpactImpact" + } + }, + "commit": { + "description": "Identifier of the commit on which the impact is generated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information of the host.", + "$ref": "#/definitions/EsxSettingsHostInfo" + } + }, + "required": [ + "impact", + "commit", + "host_info" + ] + }, + "EsxSettingsHostsSoftwareReportsApplyImpactImpact": { + "type": "object", + "properties": { + "message": { + "description": "Description of the impact.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "message" + ] + }, + "EsxSettingsHostsSoftwareReportsLastApplyResultApplyResult": { + "type": "object", + "properties": { + "status": { + "description": "Specifies the status of the apply operation.\nunset if the apply operation is in progress.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastApplyResultApplyStatus" + }, + "commit": { + "description": "The identifier of the commit used to fetch the desired software document to be applied to the standalone host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information of the host to which the desired software document specified by the LastApplyResult.ApplyResult.commit needs to be applied to.", + "$ref": "#/definitions/EsxSettingsHostInfo" + }, + "notifications": { + "description": "Notifications providing additional information for Software.apply operation. These notifications are mutually exclusive with the notifications in LastApplyResult.ApplyStatus.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "commit", + "host_info" + ] + }, + "EsxSettingsHostsSoftwareReportsLastApplyResultApplyStatus": { + "type": "object", + "properties": { + "status": { + "description": "The status of the operation.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastApplyResultApplyStatusStatus" + }, + "start_time": { + "description": "Time when the operation started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation completed.", + "type": "string", + "format": "date-time" + }, + "notifications": { + "description": "Notifications providing additional information about the status of the operation.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "start_time", + "end_time", + "notifications" + ] + }, + "EsxSettingsHostsSoftwareReportsLastApplyResultApplyStatusStatus": { + "type": "string", + "description": "The LastApplyResult.ApplyStatus.Status enumerated type contains the possible different status codes that can be returned while trying to apply the desired software specification to a standalone host.", + "enum": [ + "OK", + "SKIPPED", + "TIMED_OUT", + "ERROR" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultCheckInfo": { + "type": "object", + "properties": { + "check": { + "description": "The check identifier.", + "type": "string" + }, + "name": { + "description": "The check name.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "description": { + "description": "Human-readable check description.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "originator": { + "description": "The service that performed the check.\nOnly set if there is an originator available for this check.", + "type": "string" + } + }, + "required": [ + "check", + "name", + "description" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultCheckIssue": { + "type": "object", + "properties": { + "description": { + "description": "Description of the issue encountered.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "Possible resolution for the issue.\nCan be left unset if no meaningful resolution exists.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "description" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultCheckResult": { + "type": "object", + "properties": { + "status": { + "description": "Aggregated status from all checks performed.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultStatus" + }, + "start_time": { + "description": "Time when the operation started.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation completed.", + "type": "string", + "format": "date-time" + }, + "commit": { + "description": "The identifier of the commit on which checks have been run.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + }, + "host_info": { + "description": "Information about the host for which checks have been requested to be run.", + "$ref": "#/definitions/EsxSettingsHostInfo" + }, + "entity_result": { + "description": "List of LastCheckResult.EntityCheckResult for all entities for which checks have been run.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultEntityCheckResult" + } + }, + "required": [ + "status", + "start_time", + "end_time", + "commit", + "host_info", + "entity_result" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultCheckStatus": { + "type": "object", + "properties": { + "check": { + "description": "Information about this check.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultCheckInfo" + }, + "status": { + "description": "The status of this check.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultStatus" + }, + "check_issues": { + "description": "The issues encountered while running this check.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultCheckIssue" + } + } + }, + "required": [ + "check", + "status" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultEntityCheckResult": { + "type": "object", + "properties": { + "type": { + "description": "The entity type for which these checks are being run.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultEntityCheckResultEntityType" + }, + "host": { + "description": "If the entity type is HOST then the host identifier for which the checks have been run.\nThis field is optional and it is only relevant when the value of LastCheckResult.EntityCheckResult.type is HOST.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "status": { + "description": "Aggregated status from all checks performed on this entity.", + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultStatus" + }, + "check_statuses": { + "description": "List of LastCheckResult.CheckStatus for all checks performed.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareReportsLastCheckResultCheckStatus" + } + } + }, + "required": [ + "type", + "status", + "check_statuses" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultEntityCheckResultEntityType": { + "type": "string", + "description": "The LastCheckResult.EntityCheckResult.EntityType enumerated type contains the entities on which checks can be performed.", + "enum": [ + "HOST" + ] + }, + "EsxSettingsHostsSoftwareReportsLastCheckResultStatus": { + "type": "string", + "description": "The LastCheckResult.Status enumerated type defines the status result for a particular check.", + "enum": [ + "OK", + "WARNING", + "TIMEOUT", + "ERROR" + ] + }, + "EsxSettingsHostsSoftwareSolutionsSetTask": { + "$ref": "#/definitions/EsxSettingsSolutionSpec", + "description": "Registered solution specification." + }, + "EsxSettingsHostsSoftwareStageSpec": { + "type": "object", + "properties": { + "commit": { + "description": "The minimum commit identifier of the desired software document to be used during the Software.stage operation.\nif unset or empty the stage operation will use the latest commit to fetch the desired state document.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.commit. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.commit.", + "type": "string" + } + } + }, + "EsxSettingsHostsSoftwareStageTask": { + "$ref": "#/definitions/EsxSettingsHostsSoftwareStageSpec", + "description": "stage specification." + }, + "EsxSettingsNotification": { + "type": "object", + "properties": { + "type": { + "description": "Type of the notification.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/EsxSettingsNotificationType" + }, + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set if there is a resolution available for this notification.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "originator": { + "description": "The originator of the notification.\nOnly set if there is an originator available for this notification.", + "type": "string" + }, + "retriable": { + "description": "Indicates whether the error is retriable.\nOnly set for the notification when a retriable error was reported by the task.", + "type": "boolean" + } + }, + "required": [ + "id", + "time", + "message" + ] + }, + "EsxSettingsNotificationType": { + "type": "string", + "description": "The (@name Type} enumerated type contains the possible different types of notification.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "EsxSettingsNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsNotification" + } + } + } + }, + "EsxSettingsSoftwareInfo": { + "type": "object", + "properties": { + "base_image": { + "description": "Base image of the ESX.", + "$ref": "#/definitions/EsxSettingsBaseImageInfo" + }, + "add_on": { + "description": "OEM customization on top of given base image. The components in this customization override the components in the base base image.\nIf unset, no OEM customization will be applied.", + "$ref": "#/definitions/EsxSettingsAddOnInfo" + }, + "components": { + "description": "Information about the components in the software specification.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.component.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsComponentInfo" + } + }, + "solutions": { + "description": "Information about the solutions in the software specification.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: esx.settings.solution. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: esx.settings.solution.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EsxSettingsSolutionInfo" + } + }, + "hardware_support": { + "description": "Information about the Hardware Support Packages (HSP) configured.\nIf unset, no Hardware Support Package (HSP) is specified for the cluster.", + "$ref": "#/definitions/EsxSettingsHardwareSupportInfo" + } + }, + "required": [ + "base_image", + "components", + "solutions" + ] + }, + "EsxSettingsSolutionCompliance": { + "type": "object", + "properties": { + "status": { + "description": "Compliance status of the solution.", + "$ref": "#/definitions/EsxSettingsComplianceStatus" + }, + "stage_status": { + "description": "Stage status of the solution. This is only relevant when the value of SolutionCompliance.status is NON_COMPLIANT.\nIf unset the staging status is unknown - the contents may or may not be staged. This can happen, for instance, if the stage check failed, has not been done yet, or the target uses an older interface that does not include support for returning the staged status.", + "$ref": "#/definitions/EsxSettingsStageStatus" + }, + "current": { + "description": "Current solution present on the host.\nunset if the solution is not present on the host.", + "$ref": "#/definitions/EsxSettingsSolutionInfo" + }, + "target": { + "description": "Target solution present in the software specification.\nunset if solution is not present in the software specification.", + "$ref": "#/definitions/EsxSettingsSolutionInfo" + }, + "notifications": { + "description": "Notifications describing the compliance result.", + "$ref": "#/definitions/EsxSettingsNotifications" + } + }, + "required": [ + "status", + "notifications" + ] + }, + "EsxSettingsSolutionComponentDetails": { + "type": "object", + "properties": { + "component": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + }, + "display_name": { + "description": "Display name of the component.", + "type": "string" + }, + "display_version": { + "description": "Human readable version of the component.\nunset if no version is provided for the component.", + "type": "string" + }, + "vendor": { + "description": "Vendor of the component.", + "type": "string" + } + }, + "required": [ + "component", + "display_name", + "vendor" + ] + }, + "EsxSettingsSolutionComponentSpec": { + "type": "object", + "properties": { + "component": { + "description": "Identifier of the component.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.settings.component. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.settings.component.", + "type": "string" + } + }, + "required": [ + "component" + ] + }, + "EsxSettingsSolutionDetails": { + "type": "object", + "properties": { + "display_name": { + "description": "Display name of the solution.", + "type": "string" + }, + "display_version": { + "description": "Display version of the solution.", + "type": "string" + }, + "components": { + "description": "Components registered by the solution. If the component is not present in the depot, then corresponding details are absent from the list.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsSolutionComponentDetails" + } + } + }, + "required": [ + "display_name", + "display_version", + "components" + ] + }, + "EsxSettingsSolutionInfo": { + "type": "object", + "properties": { + "details": { + "description": "Details about the solution from the depot.\nunset if solution is not present in the depot.", + "$ref": "#/definitions/EsxSettingsSolutionDetails" + }, + "version": { + "description": "Version of the solution.", + "type": "string" + }, + "components": { + "description": "Components registered by the solution.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsSolutionComponentSpec" + } + } + }, + "required": [ + "version", + "components" + ] + }, + "EsxSettingsSolutionSpec": { + "type": "object", + "properties": { + "version": { + "description": "Version of the solution.", + "type": "string" + }, + "components": { + "description": "Components registered by the solution.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsSolutionComponentSpec" + } + } + }, + "required": [ + "version", + "components" + ] + }, + "EsxSettingsStageStatus": { + "type": "string", + "description": "The StageStatus enumerated type contains the possible different staged statuses with respect to target version. This is only relevant when the value of ComplianceStatus is NON_COMPLIANT.", + "enum": [ + "STAGED", + "NOT_STAGED" + ] + }, + "EsxSettingsStatus": { + "type": "string", + "description": "The Status enumerated type defines the status result for a particular check.", + "enum": [ + "OK", + "WARNING", + "TIMEOUT", + "ERROR", + "RETRY" + ] + }, + "EsxSettingsStatusInfo": { + "type": "object", + "properties": { + "status": { + "description": "Aggregated status from all checks performed on this entity.", + "$ref": "#/definitions/EsxSettingsStatus" + }, + "check_statuses": { + "description": "List of CheckStatus for all checks performed.", + "type": "array", + "items": { + "$ref": "#/definitions/EsxSettingsCheckStatus" + } + } + }, + "required": [ + "status", + "check_statuses" + ] + }, + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsAlreadyInDesiredState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsConcurrentChange": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInternalServerError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInUse": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsTimedOut": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnverifiedPeer": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/hvc.json b/config/api_specifications/8.0.2/hvc.json new file mode 100644 index 000000000..e34f957a6 --- /dev/null +++ b/config/api_specifications/8.0.2/hvc.json @@ -0,0 +1,867 @@ +{ + "swagger": "2.0", + "info": { + "description": "", + "title": "hvc", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/hvc/links": { + "post": { + "tags": [ + "hvc/links" + ], + "summary": "Creates a new hybrid link between the local and foreign PSC. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterHvcLinksCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the newly linked domain.\nThe result will be an identifier for the resource type: vcenter.hvc.Links.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the foreign PSC cannot be validated by comparing with the thumbprint provided in Links.CreateSpec.ssl-thumbprint or if Links.CreateSpec.ssl-thumbprint is unset. The value of the {@link UnverifiedPeer#data) field will be a structure that contains all the fields defined in Links.CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create" + }, + "get": { + "tags": [ + "hvc/links" + ], + "summary": "Enumerates the list of registered hybrid links. Usage beyond VMware Cloud on AWS is not supported.", + "parameters": [], + "responses": { + "200": { + "description": "The list of hybrid link information.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterHvcLinksSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list" + } + }, + "/api/hvc/links/{link}": { + "get": { + "tags": [ + "hvc/links" + ], + "summary": "Gets information for a link. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Unique identifier of the link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + } + ], + "responses": { + "200": { + "description": "Information about the link.", + "schema": { + "$ref": "#/definitions/VcenterHvcLinksInfo" + } + }, + "500": { + "description": "if the service is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user is not authorized to perform this operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get" + }, + "delete": { + "tags": [ + "hvc/links" + ], + "summary": "Deletes an existing hybrid link. This API should be used when unlink is initiated from Cloud Gateway.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Identifier of the hybrid link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete" + } + }, + "/api/hvc/links/{link}?action=delete": { + "post": { + "tags": [ + "hvc/links" + ], + "summary": "Deletes an existing hybrid link. This API should be used when unlink is initiated from cloud vCenter. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Identifier of the hybrid link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterHvcLinksDeleteWithCredentials" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete_with_credentials" + } + }, + "/api/hvc/management/administrators": { + "put": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Sets the groups in the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterHvcManagementAdministratorsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Enumerates the set of all the groups in the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The set of all the groups.", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/hvc/management/administrators?action=add": { + "post": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Add the local sso group with the new group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterHvcManagementAdministratorsAdd" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/hvc/management/administrators?action=remove": { + "post": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Remove the group from the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterHvcManagementAdministratorsRemove" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ] + } + } + }, + "definitions": { + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceBusy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnverifiedPeer": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "VcenterHvcLinksCreate": { + "$ref": "#/definitions/VcenterHvcLinksCreateSpec", + "description": "Specification for the new link to be created." + }, + "VcenterHvcLinksCreateSpec": { + "type": "object", + "properties": { + "psc_hostname": { + "description": "The PSC hostname for the domain to be linked.", + "type": "string" + }, + "port": { + "description": "The HTTPS port of the PSC to be linked.\nIf unset 443 will be used as default.", + "type": "string" + }, + "domain_name": { + "description": "The domain to which the PSC belongs.", + "type": "string" + }, + "username": { + "description": "The administrator username of the PSC.", + "type": "string" + }, + "password": { + "description": "The administrator password of the PSC.", + "type": "string", + "format": "password" + }, + "ssl_thumbprint": { + "description": "The ssl thumbprint of the server.\nif unset no thumbprint is passed.", + "type": "string" + }, + "admin_groups": { + "description": "List of groups to be added to enable administrator access to.\nif unset administrator access will not be set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "psc_hostname", + "domain_name", + "username", + "password" + ] + }, + "VcenterHvcLinksCredentials": { + "type": "object", + "properties": { + "user_name": { + "description": "Name of the user to authenticate", + "type": "string" + }, + "password": { + "description": "Password for the user.", + "type": "string", + "format": "password" + } + }, + "required": [ + "user_name", + "password" + ] + }, + "VcenterHvcLinksDeleteWithCredentials": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterHvcLinksCredentials", + "description": "Credentials to use for authentication to the remote system.\nThis parameter is currently required. In the future, it may become optional." + } + } + }, + "VcenterHvcLinksInfo": { + "type": "object", + "properties": { + "connection_health_status": { + "description": "Health status of the connection", + "$ref": "#/definitions/VcenterHvcLinksInfoHealthStatus" + }, + "health_status_message": { + "description": "Localizable messages associated with health status\nThis field is optional and it is only relevant when the value of Links.Info.connection-health-status is UNHEALTHY.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "VcenterHvcLinksInfoHealthStatus": { + "type": "string", + "description": "The Links.Info.HealthStatus enumerated type defines the possible states for health of a link.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ] + }, + "VcenterHvcLinksSummary": { + "type": "object", + "properties": { + "link": { + "description": "Unique identifier for the link.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.hvc.Links. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.hvc.Links.", + "type": "string" + }, + "display_name": { + "description": "The display name is set to the domain name which was set during create.", + "type": "string" + } + }, + "required": [ + "link", + "display_name" + ] + }, + "VcenterHvcManagementAdministratorsAdd": { + "type": "object", + "properties": { + "group_name": { + "type": "string", + "description": "Name of the new group to be added. Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_name" + ] + }, + "VcenterHvcManagementAdministratorsRemove": { + "type": "object", + "properties": { + "group_name": { + "type": "string", + "description": "Name of the group to be removed. Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_name" + ] + }, + "VcenterHvcManagementAdministratorsSet": { + "type": "object", + "properties": { + "group_names": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Names the groups to be in the CloudAdminGroup Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_names" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/session.json b/config/api_specifications/8.0.2/session.json new file mode 100644 index 000000000..f84b447d6 --- /dev/null +++ b/config/api_specifications/8.0.2/session.json @@ -0,0 +1,334 @@ +{ + "swagger": "2.0", + "info": { + "description": "", + "title": "session", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/session": { + "get": { + "tags": [ + "session" + ], + "summary": "Returns information about the current session. This operation expects a valid session token to be supplied. \n A side effect of invoking this operation may be a change to the session's last accessed time to the current time if this is supported by the session implementation. Invoking any other operation in the API will also update the session's last accessed time. \n\n This API is meant to serve the needs of various front end projects that may want to display the name of the user. Examples of this include various web based user interfaces and logging facilities.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the session.", + "schema": { + "$ref": "#/definitions/CisSessionInfo" + } + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if session retrieval fails due to server specific issues e.g. connection to back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get" + }, + "post": { + "tags": [ + "session" + ], + "summary": "Creates a session with the API. This is the equivalent of login. This operation exchanges user credentials supplied in the security context for a session token that is to be used for authenticating subsequent calls. \nTo authenticate subsequent calls clients are expected to include the session token. For REST API calls the HTTP vmware-api-session-id header field should be used for this.", + "parameters": [], + "responses": { + "201": { + "description": "Newly created session token to be used for authenticating further requests.", + "schema": { + "type": "string", + "format": "password" + } + }, + "401": { + "description": "if the session creation fails due to request specific issues. Due to the security nature of the API the details of the error are not disclosed. \n Please check the following preconditions if using a SAML token to authenticate: \n\n - the supplied token is delegate-able.\n - the time of client and server system are synchronized.\n - the token supplied is valid.\n - if bearer tokens are used check that system configuration allows the API endpoint to accept such tokens.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if session creation fails due to server specific issues, for example connection to a back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "create" + }, + "delete": { + "tags": [ + "session" + ], + "summary": "Terminates the validity of a session token. This is the equivalent of log out. \n A session token is expected as part of the request.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if session deletion fails due to server specific issues, for example connection to a back end component is failing. Due to the security nature of this API further details will not be disclosed in the error. Please refer to component health information, administrative logs and product specific documentation for possible causes.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "delete" + } + } + }, + "definitions": { + "CisSessionInfo": { + "type": "object", + "properties": { + "user": { + "description": "Fully qualified name of the end user that created the session, for example Administrator@vsphere.local. A typical use case for this information is in Graphical User Interfaces (GUI) or logging systems to visualize the identity of the current user.", + "type": "string" + }, + "created_time": { + "description": "Time when the session was created.", + "type": "string", + "format": "date-time" + }, + "last_accessed_time": { + "description": "Last time this session was used by passing the session token for invoking an API.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "user", + "created_time", + "last_accessed_time" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/stats.json b/config/api_specifications/8.0.2/stats.json new file mode 100644 index 000000000..27949dc1e --- /dev/null +++ b/config/api_specifications/8.0.2/stats.json @@ -0,0 +1,2172 @@ +{ + "swagger": "2.0", + "info": { + "description": "", + "title": "stats", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/stats/acq-specs": { + "post": { + "tags": [ + "acq_specs" + ], + "summary": "Create a new acquisition specification record. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.CollectAny.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VstatsAcqSpecsCreate" + } + } + ], + "responses": { + "201": { + "description": "Identifier of the newly created acquisition specification.\nThe result will be an identifier for the resource type: vstats.model.AcqSpec.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if acqSpec contain any errors.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "acq_specs" + ], + "summary": "Returns information about all acquisition specifications. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "in": "query", + "name": "page", + "type": "string", + "description": "Used to retrieve paged data for larger result sets. The value of this token is generated by server and returned as next field in the result of AcqSpecs.list operations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nunset the first page of results will be returned." + } + ], + "responses": { + "200": { + "description": "List of acquisition specification records.", + "schema": { + "$ref": "#/definitions/VstatsAcqSpecsListResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/acq-specs/{id}": { + "get": { + "tags": [ + "acq_specs" + ], + "summary": "Returns information about a specific acquisition specification. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Acquisition specification ID.\nThe parameter must be an identifier for the resource type: vstats.model.AcqSpec." + } + ], + "responses": { + "200": { + "description": "Information about the desired acquisition specification.", + "schema": { + "$ref": "#/definitions/VstatsAcqSpecsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if id is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "acquisition specification could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "acq_specs" + ], + "summary": "Update an existing acquisition specification. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.CollectAny.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Acquisition specification ID.\nThe parameter must be an identifier for the resource type: vstats.model.AcqSpec." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VstatsAcqSpecsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "acquisition specification could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "acq_specs" + ], + "summary": "Delete an acquisition specification. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.CollectAny.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Acquisition specification ID.\nThe parameter must be an identifier for the resource type: vstats.model.AcqSpec." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if id is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if acquisition specification could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counter-sets": { + "get": { + "tags": [ + "counter_sets" + ], + "summary": "Returns information about all the counter sets. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of counter sets.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsCounterSetsInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counter-sets/{counter_set}": { + "get": { + "tags": [ + "counter_sets" + ], + "summary": "Returns information about a specific counter set. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "counter_set", + "description": "identifier of the counter set to retrieve.\nThe parameter must be an identifier for the resource type: vstats.model.CounterSet." + } + ], + "responses": { + "200": { + "description": "Information about the desired CounterSet.", + "schema": { + "$ref": "#/definitions/VstatsCounterSetsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if counterSet is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the requested counter set could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counters": { + "get": { + "tags": [ + "counters" + ], + "summary": "Returns information about all counters matching the filter parameters. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "in": "query", + "name": "cid", + "type": "string", + "description": "Counter identifier that will be listed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset counter filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resource type filter. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset resource type filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType." + }, + { + "in": "query", + "name": "metric", + "type": "string", + "description": "Metric for which counters will be listed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset metric filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric." + } + ], + "responses": { + "200": { + "description": "List of Counters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsCountersInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counters/{cid}": { + "get": { + "tags": [ + "counters" + ], + "summary": "Returns information about a specific Counter. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cid", + "description": "Counter ID.\nThe parameter must be an identifier for the resource type: vstats.model.Counter." + } + ], + "responses": { + "200": { + "description": "Information about the requested counter.", + "schema": { + "$ref": "#/definitions/VstatsCountersInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if cid is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Counter could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counters/{cid}/metadata": { + "get": { + "tags": [ + "counter_metadata" + ], + "summary": "Returns information about all counter metadata records for a specific Counter. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cid", + "description": "Counter ID.\nThe parameter must be an identifier for the resource type: vstats.model.Counter." + }, + { + "in": "query", + "name": "status", + "type": "string", + "enum": [ + "DEFAULT", + "CURRENT", + "DEPRECATED", + "EXPERIMENTAL", + "REMOVED" + ], + "description": "Counter metadata status. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments." + } + ], + "responses": { + "200": { + "description": "List of counter metadata for the specified counter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsCounterMetadataInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Counter could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counters/{cid}/metadata/default": { + "get": { + "tags": [ + "counter_metadata" + ], + "summary": "This operation returns the \"default\" CounterMetadata. A Counter has at least one related metadata object. Usually, stats providers (for example hosts) are in agreement about the default metadata. In this case the returned list has a single metadata object. \n Sometimes, when providers are in \"disagreement\" about the default, then the returned list would include all the possible \"defaults\". This potential ambiguity isn't a real issue because consumers of the vStats API rarely need to specify the \"mid\" of metadata. Therefore, this API is used primarily for informational purposes.\n. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cid", + "description": "Counter ID.\nThe parameter must be an identifier for the resource type: vstats.model.Counter." + } + ], + "responses": { + "200": { + "description": "List of counter metadata records.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsCounterMetadataInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if cid is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Counter could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get_default", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/counters/{cid}/metadata/{mid}": { + "get": { + "tags": [ + "counter_metadata" + ], + "summary": "Returns information about a specific CounterMetadata. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cid", + "description": "Counter ID.\nThe parameter must be an identifier for the resource type: vstats.model.Counter." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "mid", + "description": "CounterMetadata ID.\nThe parameter must be an identifier for the resource type: vstats.model.CounterMetadata." + } + ], + "responses": { + "200": { + "description": "Information about the desired CounterMetadata.", + "schema": { + "$ref": "#/definitions/VstatsCounterMetadataInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Counter or CounterMetadata could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/data/dp": { + "get": { + "tags": [ + "data" + ], + "summary": "Returns Data.DataPointsResult matching the filter parameters. \n \"/stats/data/dp?types=VM&types=VCPU\" \n\n \"/stats/data/dp?rsrcs=type.HOST=host-16&rsrcs=type.VM=vm-31\"\n. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.QueryAny.", + "parameters": [ + { + "in": "query", + "name": "start", + "type": "integer", + "description": "Start of a time window (included), timestamp in seconds UTC. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be limited by start time." + }, + { + "in": "query", + "name": "end", + "type": "integer", + "description": "End of a time window (excluded), timestamp in seconds UTC. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be limited by end time." + }, + { + "in": "query", + "name": "cid", + "type": "string", + "description": "Counter ID. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by counter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter." + }, + { + "in": "query", + "name": "metric", + "type": "string", + "description": "Metric name. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by metric name.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "List of Resource types. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by resource types.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType." + }, + { + "in": "query", + "name": "resources", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resources to include in the query. Each resource is specified through a composite string that follows the following format. \n type.[.]= \n\n resource type specifies the type of resource for example VM, VCPU etc. \n\n scheme is an optional element to disambiguate the resource as needed for example to differentiate managed object id from uuid. \n\n resource id is the unique resource identifier value for example: vm-41 \n\n Example values include: type.VM=vm-41, type.VCPU=1, type.VM.moid=vm-41\n. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen left unset the result will not be filtered for specific resources." + }, + { + "in": "query", + "name": "order", + "type": "string", + "description": "Directs the server to order the returned data. Passing a value of DEFAULT will apply default ordering of the results that makes them easier for consumption. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this parameter is unset the server will not order the result, save computational time and therefore the API will operate faster." + }, + { + "in": "query", + "name": "page", + "type": "string", + "description": "Used to retrieve paged data for larger result sets. The value of this token is generated by server and returned as next field in the result of Data.query-data-points operations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the first page of results will be returned." + } + ], + "responses": { + "200": { + "description": "Data points matching the filter.", + "schema": { + "$ref": "#/definitions/VstatsDataDataPointsResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "query_data_points", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/metrics": { + "get": { + "tags": [ + "metrics" + ], + "summary": "Returns list of available Metrics as supplied by the discovered providers. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of Metrics.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsMetricsSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/providers": { + "get": { + "tags": [ + "providers" + ], + "summary": "Returns a list of stats providers. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of stats providers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsProvidersSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/rsrc-addr-schemas/{id}": { + "get": { + "tags": [ + "resource_address_schemas" + ], + "summary": "Returns information about a specific resource address schema. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Resource address schema identifier." + } + ], + "responses": { + "200": { + "description": "Information about the desired resource address schema.", + "schema": { + "$ref": "#/definitions/VstatsResourceAddressSchemasInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if id is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if RsrcAddrSchema could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/rsrc-addrs": { + "get": { + "tags": [ + "resource_addresses" + ], + "summary": "Returns the list of Resource Addresses matching the filter parameters. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.QueryAny.", + "parameters": [ + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "List of Resource types. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by resource types.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType." + }, + { + "in": "query", + "name": "resources", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resources to include in the query. Each resource is specified through a composite string that follows the following format. \n type.[.]= \n\n resource type specifies the type of resource for example VM, VCPU etc. \n\n scheme is an optional element to disambiguate the resource as needed for example to differentiate managed object id from uuid. \n\n resource id is the unique resource identifier value for example: vm-41 \n\n Example values include: type.VM=vm-41, type.VCPU=1, type.VM.moid=vm-41\n. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen left unset the result will not be filtered for specific resources." + }, + { + "in": "query", + "name": "page", + "type": "string", + "description": "The ResourceAddresses.FilterSpec.page field is used to retrieve paged data for large result sets. It is an opaque paging token obtained from a prior call to the ResourceAddresses.list API. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nwhen set a follow up page in a paged result set will be delivered." + } + ], + "responses": { + "200": { + "description": "Matching resource addresses.", + "schema": { + "$ref": "#/definitions/VstatsResourceAddressesListResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/rsrc-addrs/{id}": { + "get": { + "tags": [ + "resource_addresses" + ], + "summary": "Returns information about a specific Resource Address. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires vStats.QueryAny.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Resource Address ID.\nThe parameter must be an identifier for the resource type: vstats.model.RsrcAddr." + } + ], + "responses": { + "200": { + "description": "Information about the desired Resource Address.", + "schema": { + "$ref": "#/definitions/VstatsResourceAddressesInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if id is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Resource Address could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/stats/rsrc-types": { + "get": { + "tags": [ + "resource_types" + ], + "summary": "Returns a list of available resource types. Warning: This operation is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of resource types.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VstatsResourceTypesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have sufficient privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + } + }, + "definitions": { + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "VstatsAcqSpecsCounterSpec": { + "type": "object", + "properties": { + "cid_mid": { + "description": "Counter and optional meatadata identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the AcqSpecs.CounterSpec.set-id field will be used.", + "$ref": "#/definitions/VstatsCidMid" + }, + "set_id": { + "description": "Counter set identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the AcqSpecs.CounterSpec.cid-mid field will be used.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.CounterSet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.CounterSet.", + "type": "string" + } + } + }, + "VstatsAcqSpecsCreate": { + "$ref": "#/definitions/VstatsAcqSpecsCreateSpec", + "description": "Specification for the acquisition of stats data." + }, + "VstatsAcqSpecsCreateSpec": { + "type": "object", + "properties": { + "counters": { + "description": "Designates the counter(s) to be sampled. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsAcqSpecsCounterSpec" + }, + "resources": { + "description": "A set of resource identifiers representing a single resource to be monitored. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsRsrcId" + } + }, + "interval": { + "description": "Desired sampling rate in seconds. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset default of 10s will be used.", + "type": "integer", + "format": "int64" + }, + "expiration": { + "description": "Expiration time for this acquisition specification in Unix UTC number of seconds (since epoch). Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset or 0, default expiration duration is 100 minutes.", + "type": "integer", + "format": "int64" + }, + "memo_": { + "description": "Consumer provided text about this acquisition specification. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset default empty string will be used.", + "type": "string" + } + }, + "required": [ + "counters", + "resources" + ] + }, + "VstatsAcqSpecsFilterSpec": { + "type": "object", + "properties": { + "page": { + "description": "Used to retrieve paged data for larger result sets. The value of this token is generated by server and returned as next field in the result of AcqSpecs.list operations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nunset the first page of results will be returned.", + "type": "string" + } + } + }, + "VstatsAcqSpecsInfo": { + "type": "object", + "properties": { + "id": { + "description": "Acquisition specification identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.AcqSpec. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.AcqSpec.", + "type": "string" + }, + "counters": { + "description": "Designates the counter(s) to be sampled. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsAcqSpecsCounterSpec" + }, + "resources": { + "description": "A set of resource identifiers representing a single resource to be monitored. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsRsrcId" + } + }, + "interval": { + "description": "Desired sampling rate in seconds. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset, default interval is 10 seconds.", + "type": "integer", + "format": "int64" + }, + "expiration": { + "description": "Expiration time for this acquisition specification represented as Unix UTC number of seconds (since epoch). Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset or 0, default expiration duration is 100 minutes.", + "type": "integer", + "format": "int64" + }, + "memo_": { + "description": "Consumer provided text about this Acquisition Specification. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "status": { + "description": "Acquisition Specification status. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsAcqSpecsStatus" + } + }, + "required": [ + "id", + "counters", + "resources", + "memo_", + "status" + ] + }, + "VstatsAcqSpecsListResult": { + "type": "object", + "properties": { + "acq_specs": { + "description": "List of acquisition specifications received. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsAcqSpecsInfo" + } + }, + "next": { + "description": "The AcqSpecs.ListResult.next field is a token used to retrieve paged data for larger result sets. This is opaque token generated by the server. It is to be sent in the AcqSpecs.FilterSpec.page field to issue a subsequent call to the list operation for retrieving results that did not fit the current page. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nset when there are more results to retrieve.", + "type": "string" + } + }, + "required": [ + "acq_specs" + ] + }, + "VstatsAcqSpecsStatus": { + "type": "string", + "description": "Describes the status of an Acquisition Specification. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "ENABLED", + "DISABLED", + "EXPIRED" + ] + }, + "VstatsAcqSpecsUpdate": { + "$ref": "#/definitions/VstatsAcqSpecsUpdateSpec", + "description": "Updated acquisition specification." + }, + "VstatsAcqSpecsUpdateSpec": { + "type": "object", + "properties": { + "counters": { + "description": "Designates the counter(s) to be sampled. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VstatsAcqSpecsCounterSpec" + }, + "resources": { + "description": "A set of resource identifiers representing a single resource to be monitored. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the value is unchanged.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsRsrcId" + } + }, + "interval": { + "description": "Desired sampling rate in seconds. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "expiration": { + "description": "Expiration time for this acquisition specification in Unix UTC number of seconds (since epoch). When this field is 0, the default expiration duration is 100 minutes. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "memo_": { + "description": "Consumer provided text about this Acquisition Specification. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset, the value is unchanged.", + "type": "string" + } + } + }, + "VstatsCidMid": { + "type": "object", + "properties": { + "cid": { + "description": "Counter Id. CID is a string with rather strong semantic consistency across deployments and versions. If two CIDs are identical it implies the corresponding counters are the same. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "mid": { + "description": "MID is a 64-bit integer with strong consistency. Given a particular CID=cid, if two MIDs are the same, then the corresponding counter-metadata objects are same. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset vStats will use default for the counter metadata as obtained from the provider.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.CounterMetadata. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.CounterMetadata.", + "type": "string" + } + }, + "required": [ + "cid" + ] + }, + "VstatsCounterMetadataCounterEditionStatus": { + "type": "string", + "description": "Counter metadata status. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "DEFAULT", + "CURRENT", + "DEPRECATED", + "EXPERIMENTAL", + "REMOVED" + ] + }, + "VstatsCounterMetadataFilterSpec": { + "type": "object", + "properties": { + "status": { + "description": "Counter edition status. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset no filtering on counter metadata status will be made.", + "$ref": "#/definitions/VstatsCounterMetadataCounterEditionStatus" + } + } + }, + "VstatsCounterMetadataInfo": { + "type": "object", + "properties": { + "cid": { + "description": "Counter Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "mid": { + "description": "Metadata Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.CounterMetadata. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.CounterMetadata.", + "type": "string" + }, + "status": { + "description": "Counter Edition status. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsCounterMetadataCounterEditionStatus" + }, + "type": { + "description": "Numeric properties of the sampled data. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsCounterMetadataSampleType" + }, + "units": { + "description": "The units of the measurement. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsCounterMetadataMetricUnits" + }, + "scale": { + "description": "Additional multiplier factors to be used with units. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset default of ONE is used.", + "$ref": "#/definitions/VstatsCounterMetadataUnitsFactor" + }, + "user_info": { + "description": "Human legible localizable text about the counter. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nThis field is unset in the current version.", + "$ref": "#/definitions/VstatsUserInfo" + }, + "pid": { + "description": "ID of the respective provider. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nThis field is unset in the current version.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Provider.", + "type": "string" + } + }, + "required": [ + "cid", + "mid", + "status", + "type", + "units" + ] + }, + "VstatsCounterMetadataMetricUnits": { + "type": "string", + "description": "Unit used by a metric. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "PERCENT", + "NUMBER", + "SECOND", + "HERTZ", + "METER", + "METERSPERSECOND", + "METERSPERSECONDSQUARED", + "BYTE", + "BIT", + "BYTESPERSECOND", + "BITSPERSECOND", + "KILOGRAM", + "GRAM", + "CELSIUS", + "KELVIN", + "JOULE", + "WATT", + "VOLT", + "AMPERE", + "VOLTAMPERE", + "CANDELA", + "MOLE" + ] + }, + "VstatsCounterMetadataSampleType": { + "type": "string", + "description": "Type of the sampled data. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "RAW", + "ABSOLUTE", + "FRACTION", + "RATE", + "DELTA", + "LOGN" + ] + }, + "VstatsCounterMetadataUnitsFactor": { + "type": "string", + "description": "Unit factor of measurement. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "YOTTA", + "ZETTA", + "EXA", + "PETA", + "TERA", + "GIGA", + "MEGA", + "KILO", + "HECTO", + "DECA", + "ONE", + "DECI", + "CENTI", + "MILLI", + "MICRO", + "NANO", + "PIKO", + "FEMTO", + "ATTO", + "ZEPTO", + "YOCTO", + "YOBI", + "ZEBI", + "EXBI", + "PEBI", + "TEBI", + "GIBI", + "MEBI", + "KIBI" + ] + }, + "VstatsCounterSetsInfo": { + "type": "object", + "properties": { + "id": { + "description": "Counter set identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "counters": { + "description": "List of Counter CidMids. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsCidMid" + } + }, + "user_info": { + "description": "Human legible localizable conter set description. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIn future versions it may be possible to have custom counter sets that lack localizable descriptions.", + "$ref": "#/definitions/VstatsUserInfo" + } + }, + "required": [ + "id", + "counters" + ] + }, + "VstatsCountersFilterSpec": { + "type": "object", + "properties": { + "cid": { + "description": "Counter identifier that will be listed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset counter filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "types": { + "description": "Resource type filter. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset resource type filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType.", + "type": "array", + "items": { + "type": "string" + } + }, + "metric": { + "description": "Metric for which counters will be listed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nIf unset metric filter will not be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric.", + "type": "string" + } + } + }, + "VstatsCountersInfo": { + "type": "object", + "properties": { + "cid": { + "description": "Counter Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "metric": { + "description": "A metric is typically human-legible ASCII/English name of a measurable aspect, for example \"length\" and \"temperature\". It is not internationalizable. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric.", + "type": "string" + }, + "resource_address_schema": { + "description": "Describes formally how to address (or identify) the resources the counter could be bound to (or instantiated for). Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.RsrcAddrSchema. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.RsrcAddrSchema.", + "type": "string" + } + }, + "required": [ + "cid", + "metric", + "resource_address_schema" + ] + }, + "VstatsDataDataPoint": { + "type": "object", + "properties": { + "cid": { + "description": "Counter Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "mid": { + "description": "CounterMetadata Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.CounterMetadata. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.CounterMetadata.", + "type": "string" + }, + "rid": { + "description": "Resource Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "ts": { + "description": "Timestamp for the data point. format: 64-bit integer. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "integer", + "format": "int64" + }, + "val": { + "description": "Stat value. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "number", + "format": "double" + } + }, + "required": [ + "cid", + "mid", + "rid", + "ts", + "val" + ] + }, + "VstatsDataDataPointsResult": { + "type": "object", + "properties": { + "data_points": { + "description": "List of DataPoints received. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsDataDataPoint" + } + }, + "next": { + "description": "The Data.DataPointsResult.next field is a token used to retrieve paged data for larger result sets. This is opaque token generated by the server. It is to be sent in the Data.FilterSpec.page field to issue a subsequent call to the query operation for retrieving results that did not fit the current page. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nset when there are more results to retrieve.", + "type": "string" + } + }, + "required": [ + "data_points" + ] + }, + "VstatsDataFilterSpec": { + "type": "object", + "properties": { + "start": { + "description": "Start of a time window (included), timestamp in seconds UTC. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be limited by start time.", + "type": "integer", + "format": "int64" + }, + "end": { + "description": "End of a time window (excluded), timestamp in seconds UTC. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be limited by end time.", + "type": "integer", + "format": "int64" + }, + "cid": { + "description": "Counter ID. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by counter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Counter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Counter.", + "type": "string" + }, + "metric": { + "description": "Metric name. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by metric name.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric.", + "type": "string" + }, + "types": { + "description": "List of Resource types. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by resource types.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources to include in the query. Each resource is specified through a composite string that follows the following format. \n type.[.]= \n\n resource type specifies the type of resource for example VM, VCPU etc. \n\n scheme is an optional element to disambiguate the resource as needed for example to differentiate managed object id from uuid. \n\n resource id is the unique resource identifier value for example: vm-41 \n\n Example values include: type.VM=vm-41, type.VCPU=1, type.VM.moid=vm-41\n. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen left unset the result will not be filtered for specific resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "order": { + "description": "Directs the server to order the returned data. Passing a value of DEFAULT will apply default ordering of the results that makes them easier for consumption. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this parameter is unset the server will not order the result, save computational time and therefore the API will operate faster.", + "type": "string" + }, + "page": { + "description": "Used to retrieve paged data for larger result sets. The value of this token is generated by server and returned as next field in the result of Data.query-data-points operations. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the first page of results will be returned.", + "type": "string" + } + } + }, + "VstatsMetricsSummary": { + "type": "object", + "properties": { + "metric": { + "description": "Metric name. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Metric. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Metric.", + "type": "string" + } + }, + "required": [ + "metric" + ] + }, + "VstatsProvidersSummary": { + "type": "object", + "properties": { + "id": { + "description": "Provider identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.Provider.", + "type": "string" + }, + "id_value": { + "description": "The ID given to the provider by its respective inventory. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "type": { + "description": "Provider type. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "scheme": { + "description": "An optional designation of the scheme. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the provider is not designating a specific scheme.", + "type": "string" + }, + "metadata": { + "description": "Schema-less metadata with extra information for the provider. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nAs supplied by the provider.", + "type": "string" + }, + "tracking_sn": { + "description": "Timestamp which is obtained when querying counters from a provider and is used as since parameter when new counter listing is needed. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\n{term unset} if no timestamp has been obtained yet.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "id", + "id_value", + "type" + ] + }, + "VstatsQueryPredicate": { + "type": "string", + "description": "The QueryPredicate enum describes how to query an id present in a RsrcId. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "EQUAL", + "ALL" + ] + }, + "VstatsResourceAddressSchemasInfo": { + "type": "object", + "properties": { + "id": { + "description": "Identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.RsrcAddrSchema. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.RsrcAddrSchema.", + "type": "string" + }, + "schema": { + "description": "List of ResourceAddressSchemas.ResourceIdDefinitions. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsResourceAddressSchemasResourceIdDefinition" + } + } + }, + "required": [ + "id", + "schema" + ] + }, + "VstatsResourceAddressSchemasQueryCapabilities": { + "type": "string", + "description": "Declares which predicates are supported by the ResourceAddressSchemas.ResourceIdDefinition. Warning: This enumeration is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "enum": [ + "EQUAL", + "EQUAL_ALL" + ] + }, + "VstatsResourceAddressSchemasResourceIdDefinition": { + "type": "object", + "properties": { + "key": { + "description": "Designates a semantic key for the resource identifier. This could be \"vm\" for virtual machine whose CPU usage is metered or \"source\" to identify the virtual machine that is origin of measured network traffic. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "type": { + "description": "Type of the resource. This represents various entities for which statistical data is gathered such as virtual machines, containers, servers, disks etc. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.RsrcType.", + "type": "string" + }, + "query_options": { + "description": "Designates the supported query-options. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VstatsResourceAddressSchemasQueryCapabilities" + } + }, + "required": [ + "key", + "type", + "query_options" + ] + }, + "VstatsResourceAddressesFilterSpec": { + "type": "object", + "properties": { + "types": { + "description": "List of Resource types. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen unset the result will not be filtered by resource types.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vstats.model.RsrcType.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources to include in the query. Each resource is specified through a composite string that follows the following format. \n type.[.]= \n\n resource type specifies the type of resource for example VM, VCPU etc. \n\n scheme is an optional element to disambiguate the resource as needed for example to differentiate managed object id from uuid. \n\n resource id is the unique resource identifier value for example: vm-41 \n\n Example values include: type.VM=vm-41, type.VCPU=1, type.VM.moid=vm-41\n. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen left unset the result will not be filtered for specific resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "page": { + "description": "The ResourceAddresses.FilterSpec.page field is used to retrieve paged data for large result sets. It is an opaque paging token obtained from a prior call to the ResourceAddresses.list API. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nwhen set a follow up page in a paged result set will be delivered.", + "type": "string" + } + } + }, + "VstatsResourceAddressesInfo": { + "type": "object", + "properties": { + "id": { + "description": "Identifier. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.RsrcAddr. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.RsrcAddr.", + "type": "string" + }, + "resource_ids": { + "description": "List of Resource Identifiers. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsRsrcId" + } + } + }, + "required": [ + "id", + "resource_ids" + ] + }, + "VstatsResourceAddressesListResult": { + "type": "object", + "properties": { + "rsrc_addrs": { + "description": "List of Resource Addresses received. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "array", + "items": { + "$ref": "#/definitions/VstatsResourceAddressesInfo" + } + }, + "next": { + "description": "Used to retrieve paged data for larger result sets. Token is generated by server. The value of this field should be supplied in a subsequent call to ResourceAddresses.list operation. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nunset when there are no more pages of data to be retrieved.", + "type": "string" + } + }, + "required": [ + "rsrc_addrs" + ] + }, + "VstatsResourceTypesSummary": { + "type": "object", + "properties": { + "type": { + "description": "Resource type. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vstats.model.RsrcType. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vstats.model.RsrcType.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VstatsRsrcId": { + "type": "object", + "properties": { + "key": { + "description": "Key relates to the corresponding ResourceIdDefinition of the related resource address schema. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset, type field will be used.", + "type": "string" + }, + "type": { + "description": "Type of the resource identified by the Resource Id. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset, in current version the api will throw InvalidArgument error. To be made optional in future.", + "type": "string" + }, + "id_value": { + "description": "The id value binding the related resource id definition. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "type": "string" + }, + "predicate": { + "description": "Predicate to use to match resource Ids. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset, default predicate is EQUAL.", + "$ref": "#/definitions/VstatsQueryPredicate" + }, + "scheme": { + "description": "An optional designation of the scheme. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.\nWhen this field is unset, default scheme is moid (ManagedObject Identifier).", + "type": "string" + } + }, + "required": [ + "id_value" + ] + }, + "VstatsUserInfo": { + "type": "object", + "properties": { + "label": { + "description": "Short label. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "description": { + "description": "Detailed description of the object. Warning: This attribute is available as Technology Preview. These are early access APIs provided to test, automate and provide feedback on the feature. Since this can change based on feedback, VMware does not guarantee backwards compatibility and recommends against using them in production environments. Some Technology Preview APIs might only be applicable to specific environments.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "label", + "description" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/vapi.json b/config/api_specifications/8.0.2/vapi.json new file mode 100644 index 000000000..e64a8c6de --- /dev/null +++ b/config/api_specifications/8.0.2/vapi.json @@ -0,0 +1,6505 @@ +{ + "swagger": "2.0", + "info": { + "description": "vAPI is an extensible API Platform for modelling and delivering APIs/SDKs/CLIs.", + "title": "vapi", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/vapi/metadata/authentication/component": { + "get": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Returns the identifiers for the component elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/authentication/component/{component_id}": { + "get": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Retrieves authentication information about the component element corresponding to componentId. \n The ComponentData contains the authentication information about the component element and it's fingerprint. It contains information about all the package elements that belong to this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId", + "schema": { + "$ref": "#/definitions/VapiMetadataAuthenticationComponentData" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/authentication/component/{component_id}/fingerprint": { + "get": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Retrieves the fingerprint computed from the authentication metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the authentication metadata of the component.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "fingerprint" + } + }, + "/api/vapi/metadata/authentication/package": { + "get": { + "tags": [ + "metadata/authentication/package" + ], + "summary": "Returns the identifiers for the package elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/authentication/package/{package_id}": { + "get": { + "tags": [ + "metadata/authentication/package" + ], + "summary": "Retrieves authentication information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId", + "schema": { + "$ref": "#/definitions/VapiMetadataAuthenticationPackageInfo" + } + }, + "404": { + "description": "if the package element associated with packageId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/authentication/service": { + "get": { + "tags": [ + "metadata/authentication/service" + ], + "summary": "Returns the identifiers for the service elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/authentication/service/{service_id}": { + "get": { + "tags": [ + "metadata/authentication/service" + ], + "summary": "Retrieves authentication information about the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/VapiMetadataAuthenticationServiceInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/authentication/service/{service_id}/operation": { + "get": { + "tags": [ + "metadata/authentication/service/operation" + ], + "summary": "Returns the identifiers for the operation elements contained in the service element corresponding to serviceId that have authentication information.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "List of identifiers for the operation elements contained in the service element that have authentication information.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any operation elements that have authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/authentication/service/{service_id}/operation/{operation_id}": { + "get": { + "tags": [ + "metadata/authentication/service/operation" + ], + "summary": "Retrieves the authentication information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "operation_id", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId.", + "schema": { + "$ref": "#/definitions/VapiMetadataAuthenticationOperationInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist.\nif the operation element associated with operationId does not exist.\nif the operation element associated with operationId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/cli/command": { + "get": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Returns the identifiers of all commands, or commands in a specific namespace.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "path", + "description": "The dot-separated path of the namespace for which command identifiers should be returned.\nIf unset identifiers of all commands registered with the infrastructure will be returned." + } + ], + "responses": { + "200": { + "description": "Identifiers of the requested commands.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliCommandIdentity" + } + } + }, + "404": { + "description": "if a namespace corresponding to path doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/cli/command/fingerprint": { + "get": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Returns the aggregate fingerprint of all the command metadata from all the metadata sources. \n The fingerprint provides clients an efficient way to check if the metadata for commands has been modified on the server.", + "parameters": [], + "responses": { + "200": { + "description": "Fingerprint of all the command metadata present on the server.", + "schema": { + "type": "string" + } + } + }, + "operationId": "fingerprint" + } + }, + "/api/vapi/metadata/cli/command?action=get": { + "post": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Retrieves information about a command including information about how to execute that command.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VapiMetadataCliCommandGet" + } + } + ], + "responses": { + "200": { + "description": "Information about the command including information about how to execute that command.", + "schema": { + "$ref": "#/definitions/VapiMetadataCliCommandInfo" + } + }, + "404": { + "description": "if a command corresponding to identity doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/cli/namespace": { + "get": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Returns the identifiers of all namespaces registered with the infrastructure.", + "parameters": [], + "responses": { + "200": { + "description": "Identifiers of all the namespaces.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliNamespaceIdentity" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/cli/namespace/fingerprint": { + "get": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Returns the aggregate fingerprint of all the namespace metadata from all the metadata sources. \n The fingerprint provides clients an efficient way to check if the metadata for namespaces has been modified on the server.", + "parameters": [], + "responses": { + "200": { + "description": "Fingerprint of all the namespace metadata present on the server.", + "schema": { + "type": "string" + } + } + }, + "operationId": "fingerprint" + } + }, + "/api/vapi/metadata/cli/namespace?action=get": { + "post": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Retreives information about a namespace including information about children of that namespace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VapiMetadataCliNamespaceGet" + } + } + ], + "responses": { + "200": { + "description": "Information about the namespace including information about child of that namespace.", + "schema": { + "$ref": "#/definitions/VapiMetadataCliNamespaceInfo" + } + }, + "404": { + "description": "if a namespace corresponding to identity doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/component": { + "get": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Returns the identifiers for the component elements that are registered with the infrastructure.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that are registered with the infrastructure.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/component/{component_id}": { + "get": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Retrieves metamodel information about the component element corresponding to componentId. \n The ComponentData contains the metamodel information about the component and it's fingerprint. It contains information about all the package elements that are contained in this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId.", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelComponentData" + } + }, + "404": { + "description": "if the component element associated with componentId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/component/{component_id}/fingerprint": { + "get": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Retrieves the fingerprint computed from the metamodel metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component element has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the metamodel metadata of the component element.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the component element associated with componentId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "fingerprint" + } + }, + "/api/vapi/metadata/metamodel/enumeration": { + "get": { + "tags": [ + "metadata/metamodel/enumeration" + ], + "summary": "Returns the identifiers for the enumeration elements that are contained in all the package elements, service elements and structure elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the enumeration elements.\nThe result will contain identifiers for the resource type: vapi.enumeration.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/enumeration/{enumeration_id}": { + "get": { + "tags": [ + "metadata/metamodel/enumeration" + ], + "summary": "Retrieves information about the enumeration element corresponding to enumerationId. \n The EnumerationInfo contains the metamodel information about the enumeration value element contained in the enumeration element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "enumeration_id", + "description": "Identifier of the enumeration element.\nThe parameter must be an identifier for the resource type: vapi.enumeration." + } + ], + "responses": { + "200": { + "description": "The EnumerationInfo instance that corresponds to enumerationId", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelEnumerationInfo" + } + }, + "404": { + "description": "if the enumeration element associated with enumerationId is not contained in any of the package elements, service elements and structure elements.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/package": { + "get": { + "tags": [ + "metadata/metamodel/package" + ], + "summary": "Returns the identifiers for the packages elements that are contained in all the registered component elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that are contained in all the registered component elements.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/package/{package_id}": { + "get": { + "tags": [ + "metadata/metamodel/package" + ], + "summary": "Retrieves information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId.", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelPackageInfo" + } + }, + "404": { + "description": "if the package element associated with packageId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/resource": { + "get": { + "tags": [ + "metadata/metamodel/resource" + ], + "summary": "Returns the set of resource types present across all the service elements contained in all the package elements.", + "parameters": [], + "responses": { + "200": { + "description": "Set of resource types\nThe result will contain identifiers for the resource type: vapi.resource.", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/resource/{resource_id}/model": { + "get": { + "tags": [ + "metadata/metamodel/resource/model" + ], + "summary": "Returns the set of identifiers for the structure elements that are models for the resource type corresponding to resourceId. \n The Structure service provides operations to retrieve more details about the structure elements corresponding to the identifiers returned by this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_id", + "description": "Identifier of the resource type.\nThe parameter must be an identifier for the resource type: vapi.resource." + } + ], + "responses": { + "200": { + "description": "The set of identifiers for the models that are associated with the resource type in resourceId.\nThe result will contain identifiers for the resource type: vapi.structure.", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the resource type associated with resourceId does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/service": { + "get": { + "tags": [ + "metadata/metamodel/service" + ], + "summary": "Returns the identifiers for the service elements that are currently registered with the infrastructure. \n The list of service elements is an aggregate list of all the service elements contained in all the package elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that are currently registered with the infrastructure.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/service/{service_id}": { + "get": { + "tags": [ + "metadata/metamodel/service" + ], + "summary": "Retrieves information about the service element corresponding to serviceId. \n The ServiceInfo contains the metamodel information for the operation elements, structure elements and enumeration elements contained in the service element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelServiceInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/service/{service_id}/operation": { + "get": { + "tags": [ + "metadata/metamodel/service/operation" + ], + "summary": "Returns the identifiers for the operation elements that are defined in the scope of serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The list of identifiers for the operation elements that are defined in the scope of serviceId.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist in any of the package elements.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/service/{service_id}/operation/{operation_id}": { + "get": { + "tags": [ + "metadata/metamodel/service/operation" + ], + "summary": "Retrieves the metamodel information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "operation_id", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId defined in scope serviceId.", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelOperationInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist in any of the package elements.\nif the operation element associated with operationId does not exist in the service element.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/metamodel/structure": { + "get": { + "tags": [ + "metadata/metamodel/structure" + ], + "summary": "Returns the identifiers for the structure elements that are contained in all the package elements and service elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the structure elements.\nThe result will contain identifiers for the resource type: vapi.structure.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/metamodel/structure/{structure_id}": { + "get": { + "tags": [ + "metadata/metamodel/structure" + ], + "summary": "Retrieves information about the structure element corresponding to structureId. \n The StructureInfo contains the metamodel information about the structure element. It contains information about all the field elements and enumeration elements contained in this structure element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "structure_id", + "description": "Identifier of the structure element.\nThe parameter must be an identifier for the resource type: vapi.structure." + } + ], + "responses": { + "200": { + "description": "The StructureInfo instance that corresponds to structureId.", + "schema": { + "$ref": "#/definitions/VapiMetadataMetamodelStructureInfo" + } + }, + "404": { + "description": "if the structure element associated with structureId is not contained in any of the package elements or service elements.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/privilege/component": { + "get": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Returns the identifiers for the component elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/privilege/component/{component_id}": { + "get": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Retrieves privilege information about the component element corresponding to componentId. \n The ComponentData contains the privilege information about the component element and its fingerprint. It contains information about all the package elements that belong to this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId", + "schema": { + "$ref": "#/definitions/VapiMetadataPrivilegeComponentData" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/privilege/component/{component_id}/fingerprint": { + "get": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Retrieves the fingerprint computed from the privilege metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the privilege metadata of the component.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "fingerprint" + } + }, + "/api/vapi/metadata/privilege/package": { + "get": { + "tags": [ + "metadata/privilege/package" + ], + "summary": "Returns the identifiers for the package elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/privilege/package/{package_id}": { + "get": { + "tags": [ + "metadata/privilege/package" + ], + "summary": "Retrieves privilege information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId", + "schema": { + "$ref": "#/definitions/VapiMetadataPrivilegePackageInfo" + } + }, + "404": { + "description": "if the package element associated with packageId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/privilege/service": { + "get": { + "tags": [ + "metadata/privilege/service" + ], + "summary": "Returns the identifiers for the service elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/privilege/service/{service_id}": { + "get": { + "tags": [ + "metadata/privilege/service" + ], + "summary": "Retrieves privilege information about the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/VapiMetadataPrivilegeServiceInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/metadata/privilege/service/{service_id}/operation": { + "get": { + "tags": [ + "metadata/privilege/service/operation" + ], + "summary": "Returns the identifiers for the operation elements contained in the service element corresponding to serviceId that have privilege information.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "List of identifiers for the operation elements contained in the service element that have privilege information.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any operation elements that have privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list" + } + }, + "/api/vapi/metadata/privilege/service/{service_id}/operation/{operation_id}": { + "get": { + "tags": [ + "metadata/privilege/service/operation" + ], + "summary": "Retrieves the privilege information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "operation_id", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId.", + "schema": { + "$ref": "#/definitions/VapiMetadataPrivilegeOperationInfo" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist.\nif the operation element associated with operationId does not exist.\nif the operation element associated with operationId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + } + }, + "/api/vapi/vcenter/activation/{activation_id}?action=cancel": { + "post": { + "tags": [ + "vcenter/activation" + ], + "summary": "Sends a request to cancel the task associated with the provided activationId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "activation_id", + "description": "the activationId associated with a vCenter Server task to be canceled.\nThe parameter must be an identifier for the resource type: Activation." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if a vCenter Server task with the given activationId was not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the vCenter Server task associated with the given activationId is not cancelable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "403": { + "description": "if the user is not authorized to cancel the task.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the task cancelation cannot be performed due to vCenter server is unreachable or it is not properly configured.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/com/vmware/vapi/metadata/authentication/component": { + "get": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Returns the identifiers for the component elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.component.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1component/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/component/id:{component_id}": { + "get": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Retrieves authentication information about the component element corresponding to componentId. \n The ComponentData contains the authentication information about the component element and it's fingerprint. It contains information about all the package elements that belong to this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.component_resp" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1component~1{component_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/component/id:{component_id}?~action=fingerprint": { + "post": { + "tags": [ + "metadata/authentication/component" + ], + "summary": "Retrieves the fingerprint computed from the authentication metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the authentication metadata of the component.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.component.fingerprint_resp" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "fingerprint", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1component~1{component_id}~1fingerprint/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/package": { + "get": { + "tags": [ + "metadata/authentication/package" + ], + "summary": "Returns the identifiers for the package elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.package.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1package/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/package/id:{package_id}": { + "get": { + "tags": [ + "metadata/authentication/package" + ], + "summary": "Retrieves authentication information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.package_resp" + } + }, + "404": { + "description": "if the package element associated with packageId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1package~1{package_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/service": { + "get": { + "tags": [ + "metadata/authentication/service" + ], + "summary": "Returns the identifiers for the service elements that have authentication information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that have authentication information.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.service.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1service/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/service/id:{service_id}": { + "get": { + "tags": [ + "metadata/authentication/service" + ], + "summary": "Retrieves authentication information about the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.service_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1service~1{service_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/service/operation": { + "get": { + "tags": [ + "metadata/authentication/service/operation" + ], + "summary": "Returns the identifiers for the operation elements contained in the service element corresponding to serviceId that have authentication information.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service.", + "required": true + } + ], + "responses": { + "200": { + "description": "List of identifiers for the operation elements contained in the service element that have authentication information.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.service.operation.list_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any operation elements that have authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1service~1{service_id}~1operation/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/authentication/service/operation/id:{service_id}?~action=get": { + "post": { + "tags": [ + "metadata/authentication/service/operation" + ], + "summary": "Retrieves the authentication information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.service.operation_get" + } + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.authentication.service.operation_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist.\nif the operation element associated with operationId does not exist.\nif the operation element associated with operationId does not have any authentication information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1authentication~1service~1{service_id}~1operation~1{operation_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/command": { + "get": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Returns the identifiers of all commands, or commands in a specific namespace.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "path", + "description": "The dot-separated path of the namespace for which command identifiers should be returned.\nIf unset identifiers of all commands registered with the infrastructure will be returned." + } + ], + "responses": { + "200": { + "description": "Identifiers of the requested commands.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.command.list_resp" + } + }, + "404": { + "description": "if a namespace corresponding to path doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1command/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/command?~action=fingerprint": { + "post": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Returns the aggregate fingerprint of all the command metadata from all the metadata sources. \n The fingerprint provides clients an efficient way to check if the metadata for commands has been modified on the server.", + "parameters": [], + "responses": { + "200": { + "description": "Fingerprint of all the command metadata present on the server.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.command.fingerprint_resp" + } + } + }, + "operationId": "fingerprint", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1command~1fingerprint/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/command?~action=get": { + "post": { + "tags": [ + "metadata/cli/command" + ], + "summary": "Retrieves information about a command including information about how to execute that command.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.command_get" + } + } + ], + "responses": { + "200": { + "description": "Information about the command including information about how to execute that command.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.command_resp" + } + }, + "404": { + "description": "if a command corresponding to identity doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1command?action=get/post" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/namespace": { + "get": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Returns the identifiers of all namespaces registered with the infrastructure.", + "parameters": [], + "responses": { + "200": { + "description": "Identifiers of all the namespaces.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1namespace/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/namespace?~action=fingerprint": { + "post": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Returns the aggregate fingerprint of all the namespace metadata from all the metadata sources. \n The fingerprint provides clients an efficient way to check if the metadata for namespaces has been modified on the server.", + "parameters": [], + "responses": { + "200": { + "description": "Fingerprint of all the namespace metadata present on the server.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.fingerprint_resp" + } + } + }, + "operationId": "fingerprint", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1namespace~1fingerprint/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/cli/namespace?~action=get": { + "post": { + "tags": [ + "metadata/cli/namespace" + ], + "summary": "Retreives information about a namespace including information about children of that namespace.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.namespace_get" + } + } + ], + "responses": { + "200": { + "description": "Information about the namespace including information about child of that namespace.", + "schema": { + "$ref": "#/definitions/vapi.metadata.cli.namespace_resp" + } + }, + "404": { + "description": "if a namespace corresponding to identity doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1cli~1namespace?action=get/post" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/component": { + "get": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Returns the identifiers for the component elements that are registered with the infrastructure.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that are registered with the infrastructure.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.component.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1component/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/component/id:{component_id}": { + "get": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Retrieves metamodel information about the component element corresponding to componentId. \n The ComponentData contains the metamodel information about the component and it's fingerprint. It contains information about all the package elements that are contained in this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.component_resp" + } + }, + "404": { + "description": "if the component element associated with componentId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1component~1{component_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/component/id:{component_id}?~action=fingerprint": { + "post": { + "tags": [ + "metadata/metamodel/component" + ], + "summary": "Retrieves the fingerprint computed from the metamodel metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component element has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the metamodel metadata of the component element.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.component.fingerprint_resp" + } + }, + "404": { + "description": "if the component element associated with componentId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "fingerprint", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1component~1{component_id}~1fingerprint/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/enumeration": { + "get": { + "tags": [ + "metadata/metamodel/enumeration" + ], + "summary": "Returns the identifiers for the enumeration elements that are contained in all the package elements, service elements and structure elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the enumeration elements.\nThe result will contain identifiers for the resource type: vapi.enumeration.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1enumeration/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/enumeration/id:{enumeration_id}": { + "get": { + "tags": [ + "metadata/metamodel/enumeration" + ], + "summary": "Retrieves information about the enumeration element corresponding to enumerationId. \n The EnumerationInfo contains the metamodel information about the enumeration value element contained in the enumeration element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "enumeration_id", + "description": "Identifier of the enumeration element.\nThe parameter must be an identifier for the resource type: vapi.enumeration." + } + ], + "responses": { + "200": { + "description": "The EnumerationInfo instance that corresponds to enumerationId", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_resp" + } + }, + "404": { + "description": "if the enumeration element associated with enumerationId is not contained in any of the package elements, service elements and structure elements.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1enumeration~1{enumeration_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/package": { + "get": { + "tags": [ + "metadata/metamodel/package" + ], + "summary": "Returns the identifiers for the packages elements that are contained in all the registered component elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that are contained in all the registered component elements.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.package.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1package/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/package/id:{package_id}": { + "get": { + "tags": [ + "metadata/metamodel/package" + ], + "summary": "Retrieves information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.package_resp" + } + }, + "404": { + "description": "if the package element associated with packageId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1package~1{package_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/resource": { + "get": { + "tags": [ + "metadata/metamodel/resource" + ], + "summary": "Returns the set of resource types present across all the service elements contained in all the package elements.", + "parameters": [], + "responses": { + "200": { + "description": "Set of resource types\nThe result will contain identifiers for the resource type: vapi.resource.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.resource.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1resource/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/resource/model": { + "get": { + "tags": [ + "metadata/metamodel/resource/model" + ], + "summary": "Returns the set of identifiers for the structure elements that are models for the resource type corresponding to resourceId. \n The Structure service provides operations to retrieve more details about the structure elements corresponding to the identifiers returned by this operation.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "resource_id", + "description": "Identifier of the resource type.\nThe parameter must be an identifier for the resource type: vapi.resource.", + "required": true + } + ], + "responses": { + "200": { + "description": "The set of identifiers for the models that are associated with the resource type in resourceId.\nThe result will contain identifiers for the resource type: vapi.structure.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.resource.model.list_resp" + } + }, + "404": { + "description": "if the resource type associated with resourceId does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1resource~1{resource_id}~1model/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/service": { + "get": { + "tags": [ + "metadata/metamodel/service" + ], + "summary": "Returns the identifiers for the service elements that are currently registered with the infrastructure. \n The list of service elements is an aggregate list of all the service elements contained in all the package elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that are currently registered with the infrastructure.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.service.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1service/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/service/id:{service_id}": { + "get": { + "tags": [ + "metadata/metamodel/service" + ], + "summary": "Retrieves information about the service element corresponding to serviceId. \n The ServiceInfo contains the metamodel information for the operation elements, structure elements and enumeration elements contained in the service element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.service_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId is not registered with the infrastructure.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1service~1{service_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/service/operation": { + "get": { + "tags": [ + "metadata/metamodel/service/operation" + ], + "summary": "Returns the identifiers for the operation elements that are defined in the scope of serviceId.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service.", + "required": true + } + ], + "responses": { + "200": { + "description": "The list of identifiers for the operation elements that are defined in the scope of serviceId.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.service.operation.list_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist in any of the package elements.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1service~1{service_id}~1operation/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/service/operation/id:{service_id}/id:{operation_id}": { + "get": { + "tags": [ + "metadata/metamodel/service/operation" + ], + "summary": "Retrieves the metamodel information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "operation_id", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId defined in scope serviceId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.service.operation_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist in any of the package elements.\nif the operation element associated with operationId does not exist in the service element.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1service~1{service_id}~1operation~1{operation_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/structure": { + "get": { + "tags": [ + "metadata/metamodel/structure" + ], + "summary": "Returns the identifiers for the structure elements that are contained in all the package elements and service elements.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the structure elements.\nThe result will contain identifiers for the resource type: vapi.structure.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.structure.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1structure/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/metamodel/structure/id:{structure_id}": { + "get": { + "tags": [ + "metadata/metamodel/structure" + ], + "summary": "Retrieves information about the structure element corresponding to structureId. \n The StructureInfo contains the metamodel information about the structure element. It contains information about all the field elements and enumeration elements contained in this structure element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "structure_id", + "description": "Identifier of the structure element.\nThe parameter must be an identifier for the resource type: vapi.structure." + } + ], + "responses": { + "200": { + "description": "The StructureInfo instance that corresponds to structureId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.metamodel.structure_resp" + } + }, + "404": { + "description": "if the structure element associated with structureId is not contained in any of the package elements or service elements.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1metamodel~1structure~1{structure_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/component": { + "get": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Returns the identifiers for the component elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the component elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.component.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.component.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1component/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/component/id:{component_id}": { + "get": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Retrieves privilege information about the component element corresponding to componentId. \n The ComponentData contains the privilege information about the component element and its fingerprint. It contains information about all the package elements that belong to this component element.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The ComponentData instance that corresponds to componentId", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.component_resp" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1component~1{component_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/component/id:{component_id}?~action=fingerprint": { + "post": { + "tags": [ + "metadata/privilege/component" + ], + "summary": "Retrieves the fingerprint computed from the privilege metadata of the component element corresponding to componentId. \n The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of Component.get.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "component_id", + "description": "Identifier of the component element.\nThe parameter must be an identifier for the resource type: vapi.component." + } + ], + "responses": { + "200": { + "description": "The fingerprint computed from the privilege metadata of the component.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.component.fingerprint_resp" + } + }, + "404": { + "description": "if the component element associated with componentId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "fingerprint", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1component~1{component_id}~1fingerprint/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/package": { + "get": { + "tags": [ + "metadata/privilege/package" + ], + "summary": "Returns the identifiers for the package elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the package elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.package.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.package.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1package/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/package/id:{package_id}": { + "get": { + "tags": [ + "metadata/privilege/package" + ], + "summary": "Retrieves privilege information about the package element corresponding to packageId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "package_id", + "description": "Identifier of the package element.\nThe parameter must be an identifier for the resource type: vapi.package." + } + ], + "responses": { + "200": { + "description": "The PackageInfo instance that corresponds to packageId", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.package_resp" + } + }, + "404": { + "description": "if the package element associated with packageId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1package~1{package_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/service": { + "get": { + "tags": [ + "metadata/privilege/service" + ], + "summary": "Returns the identifiers for the service elements that have privilege information.", + "parameters": [], + "responses": { + "200": { + "description": "The list of identifiers for the service elements that have privilege information.\nThe result will contain identifiers for the resource type: vapi.service.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.service.list_resp" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1service/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/service/id:{service_id}": { + "get": { + "tags": [ + "metadata/privilege/service" + ], + "summary": "Retrieves privilege information about the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + } + ], + "responses": { + "200": { + "description": "The ServiceInfo instance that corresponds to serviceId", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.service_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1service~1{service_id}/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/service/operation": { + "get": { + "tags": [ + "metadata/privilege/service/operation" + ], + "summary": "Returns the identifiers for the operation elements contained in the service element corresponding to serviceId that have privilege information.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service.", + "required": true + } + ], + "responses": { + "200": { + "description": "List of identifiers for the operation elements contained in the service element that have privilege information.\nThe result will contain identifiers for the resource type: vapi.operation.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.service.operation.list_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not have any operation elements that have privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1service~1{service_id}~1operation/get" + } + } + }, + "/rest/com/vmware/vapi/metadata/privilege/service/operation/id:{service_id}?~action=get": { + "post": { + "tags": [ + "metadata/privilege/service/operation" + ], + "summary": "Retrieves the privilege information about an operation element corresponding to operationId contained in the service element corresponding to serviceId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service_id", + "description": "Identifier of the service element.\nThe parameter must be an identifier for the resource type: vapi.service." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.service.operation_get" + } + } + ], + "responses": { + "200": { + "description": "The OperationInfo instance that corresponds to operationId.", + "schema": { + "$ref": "#/definitions/vapi.metadata.privilege.service.operation_resp" + } + }, + "404": { + "description": "if the service element associated with serviceId does not exist.\nif the operation element associated with operationId does not exist.\nif the operation element associated with operationId does not have any privilege information.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1metadata~1privilege~1service~1{service_id}~1operation~1{operation_id}/get" + } + } + }, + "/rest/com/vmware/vapi/rest/navigation/component": { + "get": { + "tags": [ + "rest/navigation/component" + ], + "summary": "Gets list of all vAPI REST Components.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "base_url", + "description": "Base URL.\nThe {param.name baseUrl} parameter is used by the service to produce absolute URLs. If unset then the service will produce relative URLs." + } + ], + "responses": { + "200": { + "description": "List of Component#Infos.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.component.list_resp" + } + } + }, + "operationId": "list" + } + }, + "/rest/com/vmware/vapi/rest/navigation/options?~action=get": { + "post": { + "tags": [ + "rest/navigation/options" + ], + "summary": "Retrieves operations for specific URL.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.options_get" + } + } + ], + "responses": { + "200": { + "description": "List of Operations.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.options_resp" + } + }, + "404": { + "description": "If no service is registered for this URL.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get" + } + }, + "/rest/com/vmware/vapi/rest/navigation/resource": { + "get": { + "tags": [ + "rest/navigation/resource" + ], + "summary": "Gets list of all vAPI REST Resources.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "base_url", + "description": "Base URL.\nThe {param.name baseUrl} parameter is used by the service to produce absolute URLs. If unset then the service will produce relative URLs." + } + ], + "responses": { + "200": { + "description": "List of Resource#Infos.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.resource.list_resp" + } + } + }, + "operationId": "list" + } + }, + "/rest/com/vmware/vapi/rest/navigation/resource/id:{type_id}": { + "get": { + "tags": [ + "rest/navigation/resource" + ], + "summary": "Gets List of all Operations about a vAPI REST Resource. Information is searched for by typeId and instanceId is used only in URLs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "type_id", + "description": "Resource type id.\nThe parameter must be an identifier for the resource type: vapi.resource." + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "instance_id", + "description": "Resource instance id.\nIf you provide instanceId parameter then returned URLs will be prepopulated with it. If instanceId parameter is unset then URLs will become URI templates with id place holders as per RFC 6570.\nThe parameter must be an identifier for the resource type: vapi.resource." + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "base_url", + "description": "Base URL.\nThe {param.name baseUrl} parameter is used by the service to produce absolute URLs. If unset then the service will produce relative URLs." + } + ], + "responses": { + "200": { + "description": "List of Operations.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.resource_resp" + } + } + }, + "operationId": "get" + } + }, + "/rest/com/vmware/vapi/rest/navigation/root": { + "get": { + "tags": [ + "rest/navigation/root" + ], + "summary": "Retrieves information about a vAPI REST Root.", + "parameters": [ + { + "required": false, + "type": "string", + "in": "query", + "name": "base_url", + "description": "Base URL.\nThe {param.name baseUrl} parameter is used by the service to produce absolute URLs. If unset then the service will produce relative URLs." + } + ], + "responses": { + "200": { + "description": "vAPI REST Root#Info.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.root_resp" + } + } + }, + "operationId": "get" + } + }, + "/rest/com/vmware/vapi/rest/navigation/service": { + "get": { + "tags": [ + "rest/navigation/service" + ], + "summary": "Gets list of all vAPI REST Services for a vAPI REST Component.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "component_id", + "description": "Component identifier.\nThe parameter must be an identifier for the resource type: vapi.component.", + "required": true + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "base_url", + "description": "Base URL.\nThis parameter is used to produce absolute URLs. If the {param.name baseUrl} parameter is unset then this service will produce relative URLs." + } + ], + "responses": { + "200": { + "description": "List of Service#Infos.", + "schema": { + "$ref": "#/definitions/vapi.rest.navigation.service.list_resp" + } + }, + "404": { + "description": "If the component identifier does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list" + } + }, + "/rest/com/vmware/vapi/vcenter/activation/id:{activation_id}?~action=cancel": { + "post": { + "tags": [ + "vcenter/activation" + ], + "summary": "Sends a request to cancel the task associated with the provided activationId.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "activation_id", + "description": "the activationId associated with a vCenter Server task to be canceled.\nThe parameter must be an identifier for the resource type: Activation." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if a vCenter Server task with the given activationId was not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the vCenter Server task associated with the given activationId is not cancelable.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "403": { + "description": "if the user is not authorized to cancel the task.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if the task cancelation cannot be performed due to vCenter server is unreachable or it is not properly configured.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vapi.json#/paths/~1api~1vapi~1vcenter~1activation~1{activation_id}?action=cancel/post" + } + } + } + }, + "definitions": { + "VapiMetadataAuthenticationAuthenticationInfo": { + "type": "object", + "properties": { + "scheme_type": { + "description": "The type of the authentication scheme.", + "$ref": "#/definitions/VapiMetadataAuthenticationAuthenticationInfoSchemeType" + }, + "session_manager": { + "description": "In a session aware authentication scheme, a session manager is required that supports create, delete and keepAlive operations. The fully qualified service name of the session manager is provided in AuthenticationInfo.session-manager field. This service is responsible for handling sessions.\nThis field is optional and it is only relevant when the value of AuthenticationInfo.scheme-type is SESSION_AWARE.", + "type": "string" + }, + "scheme": { + "description": "String identifier of the authentication scheme. \n Following are the supported authentication schemes by the infrastructure: \n\n - The identifier vapi.std.security.saml_hok_token for SAML holder of key token based authentication mechanism. \n - The identifier vapi.std.security.bearer_token for SAML bearer token based authentication mechanism. \n - The identifier vapi.std.security.session_id for session based authentication mechanism. \n - The identifier vapi.std.security.user_pass for username and password based authentication mechanism.", + "type": "string" + } + }, + "required": [ + "scheme_type", + "scheme" + ] + }, + "VapiMetadataAuthenticationAuthenticationInfoSchemeType": { + "type": "string", + "description": "The AuthenticationInfo.SchemeType enumerated type provides enumeration values for the set of valid authentication scheme types.", + "enum": [ + "SESSIONLESS", + "SESSION_AWARE" + ] + }, + "VapiMetadataAuthenticationComponentData": { + "type": "object", + "properties": { + "info": { + "description": "Authentication information of the component. This includes information about all the packages in the component.", + "$ref": "#/definitions/VapiMetadataAuthenticationComponentInfo" + }, + "fingerprint": { + "description": "Fingerprint of the metadata of the component. \n Authentication information could change when there is an infrastructure update. Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the Component.get to retrieve the new authentication information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "VapiMetadataAuthenticationComponentInfo": { + "type": "object", + "properties": { + "packages": { + "description": "Authentication information of all the package elements. The key in the map is the identifier of the package element and the value in the map is the authentication information for the package element. \n For an explanation of authentication information containment within package elements, see Package.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataAuthenticationPackageInfo" + } + } + }, + "required": [ + "packages" + ] + }, + "VapiMetadataAuthenticationOperationInfo": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes used by an operation element. The authentication scheme specified on the service element corresponding to this operation element is ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataAuthenticationAuthenticationInfo" + } + } + }, + "required": [ + "schemes" + ] + }, + "VapiMetadataAuthenticationPackageInfo": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes to be used for all the operation elements contained in this package element. If a particular service or operation element has no explicit authentications defined in the authentication defintion file, these authentication schemes are used for authenticating the user.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataAuthenticationAuthenticationInfo" + } + }, + "services": { + "description": "Information about all service elements contained in this package element that contain authentication information. The key in the map is the identifier of the service element and the value in the map is the authentication information for the service element. \n For an explanation of authentication information containment within service elements, see Service.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataAuthenticationServiceInfo" + } + } + }, + "required": [ + "schemes", + "services" + ] + }, + "VapiMetadataAuthenticationServiceInfo": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes to be used for all the operation elements contained in this service element. The authentication scheme specified on the package element corresponding to this service element is ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataAuthenticationAuthenticationInfo" + } + }, + "operations": { + "description": "Information about all operation elements contained in this service element that contain authentication information. The key in the map is the identifier of the operation element and the value in the map is the authentication information for the operation element. \n For an explanation of containment of authentication information within operation elements, see Operation.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataAuthenticationOperationInfo" + } + } + }, + "required": [ + "schemes", + "operations" + ] + }, + "VapiMetadataCliCommandFormatterType": { + "type": "string", + "description": "The Command.FormatterType enumerated type defines supported CLI output formatter types. See Command.Info.formatter.", + "enum": [ + "SIMPLE", + "TABLE", + "JSON", + "XML", + "CSV", + "HTML" + ] + }, + "VapiMetadataCliCommandGenericType": { + "type": "string", + "description": "The Command.GenericType enumerated type defines generic types supported by Command service. See Command.OptionInfo.generic.", + "enum": [ + "NONE", + "OPTIONAL", + "LIST", + "OPTIONAL_LIST", + "LIST_OPTIONAL" + ] + }, + "VapiMetadataCliCommandGet": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/VapiMetadataCliCommandIdentity", + "description": "Identifier of the command for which to retreive information." + } + }, + "required": [ + "identity" + ] + }, + "VapiMetadataCliCommandIdentity": { + "type": "object", + "properties": { + "path": { + "description": "The dot-separated path of the namespace containing the command in the CLI command tree.", + "type": "string" + }, + "name": { + "description": "Name of the command.", + "type": "string" + } + }, + "required": [ + "path", + "name" + ] + }, + "VapiMetadataCliCommandInfo": { + "type": "object", + "properties": { + "identity": { + "description": "Basic command identity.", + "$ref": "#/definitions/VapiMetadataCliCommandIdentity" + }, + "description": { + "description": "The text description displayed to the user in help output.", + "type": "string" + }, + "service_id": { + "description": "The service identifier that contains the operations for this CLI command.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation_id": { + "description": "The operation identifier corresponding to this CLI command.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "options": { + "description": "The input for this command.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliCommandOptionInfo" + } + }, + "formatter": { + "description": "The formatter to use when displaying the output of this command.\nIf not present, client can choose a default output formatter.", + "$ref": "#/definitions/VapiMetadataCliCommandFormatterType" + }, + "output_field_list": { + "description": "List of output structure name and output field info.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliCommandOutputInfo" + } + } + }, + "required": [ + "identity", + "description", + "service_id", + "operation_id", + "options", + "output_field_list" + ] + }, + "VapiMetadataCliCommandOptionInfo": { + "type": "object", + "properties": { + "long_option": { + "description": "The long option name of the parameter as used by the user.", + "type": "string" + }, + "short_option": { + "description": "The single character value option name.\nIf not present, there's no single character option for the parameter.", + "type": "string" + }, + "field_name": { + "description": "The fully qualified name of the option referred to by the operation element in Command.Info.operation-id.", + "type": "string" + }, + "description": { + "description": "The description of the option to be displayed to the user when they request usage information for a CLI command.", + "type": "string" + }, + "type": { + "description": "The type of option. This is used to display information about what kind of data is expected (string, number, boolean, etc.) for the option when they request usage information for a CLI command. For enumerated type this stores the fully qualified enumerated type id.", + "type": "string" + }, + "generic": { + "description": "This is used to tell the user whether the option is required or optional, or whether they can specify the option multiple times.", + "$ref": "#/definitions/VapiMetadataCliCommandGenericType" + } + }, + "required": [ + "long_option", + "field_name", + "description", + "type", + "generic" + ] + }, + "VapiMetadataCliCommandOutputFieldInfo": { + "type": "object", + "properties": { + "field_name": { + "description": "Name of the field.", + "type": "string" + }, + "display_name": { + "description": "Name used by the CLI to display the field.", + "type": "string" + } + }, + "required": [ + "field_name", + "display_name" + ] + }, + "VapiMetadataCliCommandOutputInfo": { + "type": "object", + "properties": { + "structure_id": { + "description": "Name of the structure.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "output_fields": { + "description": "The order in which the fields of the structure will be displayed by the CLI as well as the names used to display the fields.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliCommandOutputFieldInfo" + } + } + }, + "required": [ + "structure_id", + "output_fields" + ] + }, + "VapiMetadataCliNamespaceGet": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/VapiMetadataCliNamespaceIdentity", + "description": "Identifier of the namespace for which to retreive information." + } + }, + "required": [ + "identity" + ] + }, + "VapiMetadataCliNamespaceIdentity": { + "type": "object", + "properties": { + "path": { + "description": "The dot-separated path of the namespace containing the namespace in the CLI node tree. For top-level namespace this will be empty.", + "type": "string" + }, + "name": { + "description": "The name displayed to the user for this namespace.", + "type": "string" + } + }, + "required": [ + "path", + "name" + ] + }, + "VapiMetadataCliNamespaceInfo": { + "type": "object", + "properties": { + "identity": { + "description": "Basic namespace identity.", + "$ref": "#/definitions/VapiMetadataCliNamespaceIdentity" + }, + "description": { + "description": "The text description displayed to the user in help output.", + "type": "string" + }, + "children": { + "description": "The children of this namespace in the tree of CLI namespaces.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataCliNamespaceIdentity" + } + } + }, + "required": [ + "identity", + "description", + "children" + ] + }, + "VapiMetadataMetamodelComponentData": { + "type": "object", + "properties": { + "info": { + "description": "Metamodel information of the component element. This includes information about all the package elements contained in this component element. \n The metamodel information about a component could be quite large if there are a lot of package elements contained in this component.", + "$ref": "#/definitions/VapiMetadataMetamodelComponentInfo" + }, + "fingerprint": { + "description": "Fingerprint of the metamodel metadata of the component component. \n Metamodel information could change when there is an infrastructure update and new functionality is added to an existing component. \n\n Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can use the Component.get to retrieve the new metamodel information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "VapiMetadataMetamodelComponentInfo": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the component element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "packages": { + "description": "Metamodel metadata information of all the package elements contained in the component element. The key in the map is the identifier of the package element and the value in the map is the metamodel information of the package element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelPackageInfo" + } + }, + "metadata": { + "description": "Generic metadata for the component element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for a component. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first sentence of the package documentation is a complete sentence that identifies the component by name and summarizes the purpose of the component.", + "type": "string" + } + }, + "required": [ + "name", + "packages", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelConstantInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type of the constant element.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + }, + "value": { + "description": "Value of the constant element.", + "$ref": "#/definitions/VapiMetadataMetamodelConstantValue" + }, + "documentation": { + "description": "English language documentation for the constant element. It can contain HTML markup and documentation tags (similar to Javadoc tags).", + "type": "string" + } + }, + "required": [ + "type", + "value", + "documentation" + ] + }, + "VapiMetadataMetamodelConstantValue": { + "type": "object", + "properties": { + "category": { + "description": "Category of the type of constant value.", + "$ref": "#/definitions/VapiMetadataMetamodelConstantValueCategory" + }, + "primitive_value": { + "description": "Primitive value of the constant element.\nThis field is optional and it is only relevant when the value of ConstantValue.category is PRIMITIVE.", + "$ref": "#/definitions/VapiMetadataMetamodelPrimitiveValue" + }, + "list_value": { + "description": "List value of the constant element.\nThis field is optional and it is only relevant when the value of ConstantValue.category is LIST.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataMetamodelPrimitiveValue" + } + } + }, + "required": [ + "category" + ] + }, + "VapiMetadataMetamodelConstantValueCategory": { + "type": "string", + "description": "The ConstantValue.Category enumerated type defines enumeration values for the valid kinds of values.", + "enum": [ + "PRIMITIVE", + "LIST" + ] + }, + "VapiMetadataMetamodelElementMap": { + "type": "object", + "properties": { + "elements": { + "description": "Metamodel information of the metadata elements. The key parameter of the map is the identifier for the element and the value corresponds to the element value.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementValue" + } + } + }, + "required": [ + "elements" + ] + }, + "VapiMetadataMetamodelElementValue": { + "type": "object", + "properties": { + "type": { + "description": "Type of the value.", + "$ref": "#/definitions/VapiMetadataMetamodelElementValueType" + }, + "long_value": { + "description": "Long value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is LONG.", + "type": "integer", + "format": "int64" + }, + "string_value": { + "description": "String value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRING.", + "type": "string" + }, + "list_value": { + "description": "List of strings value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRING_LIST.", + "type": "array", + "items": { + "type": "string" + } + }, + "structure_id": { + "description": "Identifier of the structure element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRUCTURE_REFERENCE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "structure_ids": { + "description": "List of identifiers of the structure elements.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRUCTURE_REFERENCE_LIST.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.structure.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "VapiMetadataMetamodelElementValueType": { + "type": "string", + "description": "The ElementValue.Type enumerated type defines the valid types for values in metadata elements.", + "enum": [ + "LONG", + "STRING", + "STRING_LIST", + "STRUCTURE_REFERENCE", + "STRUCTURE_REFERENCE_LIST" + ] + }, + "VapiMetadataMetamodelEnumerationInfo": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the enumeration element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "values": { + "description": "Metamodel information of all the enumeration value elements contained in this enumeration element. The order of the enumeration value elements in the list is same as the order in which they are defined in the interface definition file.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataMetamodelEnumerationValueInfo" + } + }, + "metadata": { + "description": "Generic metadata elements for an enumeration element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for an enumeration element. It can contain HTML markup and Javadoc tags. The first sentence of the enumeration documentation is a complete sentence that identifies the enumeration by name and summarizes the purpose of the enumeration. The documentation describes the context in which the enumeration is used. \n The documentation also contains references to the context in which the enumeration is used. But if the enumeration is used in many contexts, the references may not be present.", + "type": "string" + } + }, + "required": [ + "name", + "values", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelEnumerationValueInfo": { + "type": "object", + "properties": { + "value": { + "description": "Value in the enumerated type. All the characters in the string are capitalized.", + "type": "string" + }, + "metadata": { + "description": "Additional metadata for enumeration value in the enumerated type. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for an enumeration value. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first statement will be a noun or verb phrase that describes the purpose of the enumeration value.", + "type": "string" + } + }, + "required": [ + "value", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelErrorInfo": { + "type": "object", + "properties": { + "structure_id": { + "description": "Identifier for the structure element corresponding to the error that is being reported by the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "documentation": { + "description": "The English language documentation for the error element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "structure_id", + "documentation" + ] + }, + "VapiMetadataMetamodelFieldInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the field element in a canonical format. The format is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "type": { + "description": "Type information.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + }, + "metadata": { + "description": "Generic metadata elements for the field element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for the field element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelGenericInstantiation": { + "type": "object", + "properties": { + "generic_type": { + "description": "The generic type that is being instantiated.", + "$ref": "#/definitions/VapiMetadataMetamodelGenericInstantiationGenericType" + }, + "element_type": { + "description": "Type of the element parameter if the generic type instantiation is a LIST, OPTIONAL or SET.\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is one of LIST, OPTIONAL, or SET.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + }, + "map_key_type": { + "description": "Type of the key parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the value parameter is described by GenericInstantiation.map-value-type..\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is MAP.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + }, + "map_value_type": { + "description": "Type of the value parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the key parameter is described by GenericInstantiation.map-key-type..\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is MAP.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + } + }, + "required": [ + "generic_type" + ] + }, + "VapiMetadataMetamodelGenericInstantiationGenericType": { + "type": "string", + "description": "The GenericInstantiation.GenericType enumerated type provides enumeration values for each of the generic types provided by the infrastructure.", + "enum": [ + "LIST", + "MAP", + "OPTIONAL", + "SET" + ] + }, + "VapiMetadataMetamodelOperationInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the operation element in a canonical format. The format is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "params": { + "description": "Metamodel information for the parameter elements. The order of the parameters elements in the list is same as the order of the parameters declared in the interface definition file.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataMetamodelFieldInfo" + } + }, + "output": { + "description": "Metamodel type for the output element.", + "$ref": "#/definitions/VapiMetadataMetamodelOperationResultInfo" + }, + "errors": { + "description": "List of error elements that might be reported by the operation element. If the operation reports the same error for more than one reason, the list contains the error element associated with the error more than once with different documentation elements.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataMetamodelErrorInfo" + } + }, + "metadata": { + "description": "Generic metadata elements for the operation element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for key in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for the operation element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "name", + "params", + "output", + "errors", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelOperationResultInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type information of the operation result element.", + "$ref": "#/definitions/VapiMetadataMetamodelType" + }, + "metadata": { + "description": "Generic metadata elements for the service element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for the operation result element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "type", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelPackageInfo": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the package element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "structures": { + "description": "Metamodel information of all the structure elements contained in the package element. The key in the map is the identifier of the structure element and the value in the map is the metamodel information for the structure element. \n This does not include the structure elements contained in the service elements that are contained in this package element.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.structure.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelStructureInfo" + } + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the package element. The key in the map is the identifier of the enumeration element and the value in the map is the metamodel information for the enumeration element. \n This does not include the enumeration elements that are contained in the service elements of this package element or structure elements of this package element.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelEnumerationInfo" + } + }, + "services": { + "description": "Metamodel information of all the service elements contained in the package element. The key in the map is the identifier of the service element and the value in the map is the metamodel information for the service element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelServiceInfo" + } + }, + "metadata": { + "description": "Generic metadata elements for the package element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for a package. It can contain HTML markup and Javadoc tags. The first sentence of the package documentation is a complete sentence that identifies the package by name and summarizes the purpose of the package. \n The primary purpose of a package documentation is to provide high-level context that will provide a framework in which the users can put the detail about the package contents.", + "type": "string" + } + }, + "required": [ + "name", + "structures", + "enumerations", + "services", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelPrimitiveValue": { + "type": "object", + "properties": { + "type": { + "description": "Type of the constant value.", + "$ref": "#/definitions/VapiMetadataMetamodelPrimitiveValueType" + }, + "boolean_value": { + "description": "Boolean value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is BOOLEAN.", + "type": "boolean" + }, + "double_value": { + "description": "Double value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is DOUBLE.", + "type": "number", + "format": "double" + }, + "long_value": { + "description": "Long value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is LONG.", + "type": "integer", + "format": "int64" + }, + "string_value": { + "description": "String value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is STRING.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VapiMetadataMetamodelPrimitiveValueType": { + "type": "string", + "description": "The PrimitiveValue.Type enumerated type defines the valid types for values in constant elements.", + "enum": [ + "BOOLEAN", + "DOUBLE", + "LONG", + "STRING" + ] + }, + "VapiMetadataMetamodelServiceInfo": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the service element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "operations": { + "description": "Metamodel information of all the operation elements contained in the service element. The key in the map is the identifier of the operation element and the value in the map is the metamodel information for the operation element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelOperationInfo" + } + }, + "structures": { + "description": "Metamodel information of all the structure elements contained in the service element. The key in the map is the identifier of the structure element and the value in the map is the metamodel information for the structure element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.structure.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelStructureInfo" + } + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the service element. The key in the map is the identifier of the enumeration element and the value in the map is the metamodel information for the enumeration element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelEnumerationInfo" + } + }, + "constants": { + "description": "Metamodel information of all the constant elements contained in the service element. The key in the map is the name of the constant element and the value in the map is the metamodel information for the contant element.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelConstantInfo" + } + }, + "metadata": { + "description": "Generic metadata elements for the service element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for the service element. It can contain HTML markup and Javadoc tags. The first sentence of the service documentation is a complete sentence that identifies the service by name and summarizes the purpose of the service. The remaining part of the documentation provides a summary of how to use the operations defined in the service.", + "type": "string" + } + }, + "required": [ + "name", + "operations", + "structures", + "enumerations", + "constants", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelStructureInfo": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the structure element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "type": { + "description": "Type of the structure.", + "$ref": "#/definitions/VapiMetadataMetamodelStructureInfoType" + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the structure element. The key in the map is the identifier of the enumeration element and the value is the metamodel information of the enumeration element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelEnumerationInfo" + } + }, + "constants": { + "description": "Metamodel information of all the constant elements contained in the structure element. The key in the map is the name of the constant element and the value in the map is the metamodel information for the constant element.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelConstantInfo" + } + }, + "fields": { + "description": "Metamodel information of all the field elements. The order of the field elements in the list matches the order in which the fields are defined in the service.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataMetamodelFieldInfo" + } + }, + "metadata": { + "description": "Generic metadata elements for the structure element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataMetamodelElementMap" + } + }, + "documentation": { + "description": "English language documentation for a structure element. It can contain HTML markup and Javadoc tags. The first sentence of the structure documentation is a complete sentence that identifies the structure by name and summarizes the purpose of the structure.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "enumerations", + "constants", + "fields", + "metadata", + "documentation" + ] + }, + "VapiMetadataMetamodelStructureInfoType": { + "type": "string", + "description": "The StructureInfo.Type enumerated type defines the kind of this structure element. In the interface definition language, structure element and error element have similar characteristics. The difference is that only error elements can be used to describe the errors of an operation element.", + "enum": [ + "STRUCTURE", + "ERROR" + ] + }, + "VapiMetadataMetamodelType": { + "type": "object", + "properties": { + "category": { + "description": "Category of this type.", + "$ref": "#/definitions/VapiMetadataMetamodelTypeCategory" + }, + "builtin_type": { + "description": "Category of the built-in type.\nThis field is optional and it is only relevant when the value of Type.category is BUILTIN.", + "$ref": "#/definitions/VapiMetadataMetamodelTypeBuiltinType" + }, + "user_defined_type": { + "description": "Identifier and type of the user defined type.\nThis field is optional and it is only relevant when the value of Type.category is USER_DEFINED.", + "$ref": "#/definitions/VapiMetadataMetamodelUserDefinedType" + }, + "generic_instantiation": { + "description": "Instantiation of one of the generic types available in the interface definition language.\nThis field is optional and it is only relevant when the value of Type.category is GENERIC.", + "$ref": "#/definitions/VapiMetadataMetamodelGenericInstantiation" + } + }, + "required": [ + "category" + ] + }, + "VapiMetadataMetamodelTypeBuiltinType": { + "type": "string", + "description": "The Type.BuiltinType enumerated type provides enumeration value for each of the built-in types present in the interface definition language type system.", + "enum": [ + "VOID", + "BOOLEAN", + "LONG", + "DOUBLE", + "STRING", + "BINARY", + "SECRET", + "DATE_TIME", + "ID", + "URI", + "ANY_ERROR", + "DYNAMIC_STRUCTURE", + "OPAQUE" + ] + }, + "VapiMetadataMetamodelTypeCategory": { + "type": "string", + "description": "The Type.Category enumerated type provides enumeration value for each category of the type.", + "enum": [ + "BUILTIN", + "USER_DEFINED", + "GENERIC" + ] + }, + "VapiMetadataMetamodelUserDefinedType": { + "type": "object", + "properties": { + "resource_type": { + "description": "Category of the user defined named type. The named type could be a structure element or an enumeration element.\nWhen clients pass a value of this structure as a parameter, the field must be one of vapi.structure or vapi.enumeration. When operations return a value of this structure as a result, the field will be one of vapi.structure or vapi.enumeration.", + "type": "string" + }, + "resource_id": { + "description": "Identifier of the user defined named type.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for one of these resource types: vapi.structure or vapi.enumeration. When operations return a value of this structure as a result, the field will be an identifier for one of these resource types: vapi.structure or vapi.enumeration.", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_id" + ] + }, + "VapiMetadataPrivilegeComponentData": { + "type": "object", + "properties": { + "info": { + "description": "Privilege information of the component. This includes information about all the packages in the component.", + "$ref": "#/definitions/VapiMetadataPrivilegeComponentInfo" + }, + "fingerprint": { + "description": "Fingerprint of the metadata of the component. \n Privilege information could change when there is an infrastructure update. Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the Component.get to retrieve the new privilege information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "VapiMetadataPrivilegeComponentInfo": { + "type": "object", + "properties": { + "packages": { + "description": "Privilege information of all the package elements. The key in the map is the identifier of the package element and the value in the map is the privilege information for the package element. \n For an explanation of privilege information containment within package elements, see Package.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataPrivilegePackageInfo" + } + } + }, + "required": [ + "packages" + ] + }, + "VapiMetadataPrivilegeOperationInfo": { + "type": "object", + "properties": { + "privileges": { + "description": "List of all privileges assigned to the operation element.", + "type": "array", + "items": { + "type": "string" + } + }, + "privilege_info": { + "description": "Privilege information of all the parameter elements of the operation element. \n For an explanation of containment of privilege information within parameter elements, see PrivilegeInfo.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiMetadataPrivilegePrivilegeInfo" + } + } + }, + "required": [ + "privileges", + "privilege_info" + ] + }, + "VapiMetadataPrivilegePackageInfo": { + "type": "object", + "properties": { + "privileges": { + "description": "List of default privileges to be used for all the operations present in this package. If a particular operation element has no explicit privileges defined in the privilege definition file, these privileges are used for enforcing authorization.", + "type": "array", + "items": { + "type": "string" + } + }, + "services": { + "description": "Information about all service elements contained in this package element that contain privilege information. The key in the map is the identifier of the service element and the value in the map is the privilege information for the service element. \n For an explanation of privilege information containment within service elements, see Service.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataPrivilegeServiceInfo" + } + } + }, + "required": [ + "privileges", + "services" + ] + }, + "VapiMetadataPrivilegePrivilegeInfo": { + "type": "object", + "properties": { + "property_path": { + "description": "The PrivilegeInfo.property-path points to an entity that is used in the operation element. An entity can either be present in one of the parameter elements or if a parameter is a structure element, it could also be present in one of the field elements. \n If the privilege is assigned to an entity used in the parameter, PrivilegeInfo.property-path will just contain the name of the parameter field. If the privilege is assigned to an entity in one of the field elements of a parameter element that is a structure element, then PrivilegeInfo.property-path will contain a path to the field element starting from the parameter name.", + "type": "string" + }, + "privileges": { + "description": "List of privileges assigned to the entity that is being referred by PrivilegeInfo.property-path.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "property_path", + "privileges" + ] + }, + "VapiMetadataPrivilegeServiceInfo": { + "type": "object", + "properties": { + "operations": { + "description": "Information about all operation elements contained in this service element that contain privilege information. The key in the map is the identifier of the operation element and the value in the map is the privilege information for the operation element. \n For an explanation of containment of privilege information within operation elements, see Operation.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiMetadataPrivilegeOperationInfo" + } + } + }, + "required": [ + "operations" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "vapi.metadata.authentication.authentication_info": { + "type": "object", + "properties": { + "scheme_type": { + "description": "The type of the authentication scheme.", + "$ref": "#/definitions/vapi.metadata.authentication.authentication_info.scheme_type" + }, + "session_manager": { + "description": "In a session aware authentication scheme, a session manager is required that supports create, delete and keepAlive operations. The fully qualified service name of the session manager is provided in AuthenticationInfo.session-manager field. This service is responsible for handling sessions.\nThis field is optional and it is only relevant when the value of AuthenticationInfo.scheme-type is SESSION_AWARE.", + "type": "string" + }, + "scheme": { + "description": "String identifier of the authentication scheme. \n Following are the supported authentication schemes by the infrastructure: \n\n - The identifier vapi.std.security.saml_hok_token for SAML holder of key token based authentication mechanism. \n - The identifier vapi.std.security.bearer_token for SAML bearer token based authentication mechanism. \n - The identifier vapi.std.security.session_id for session based authentication mechanism. \n - The identifier vapi.std.security.user_pass for username and password based authentication mechanism.", + "type": "string" + } + }, + "required": [ + "scheme_type", + "scheme" + ] + }, + "vapi.metadata.authentication.authentication_info.scheme_type": { + "type": "string", + "description": "The AuthenticationInfo.SchemeType enumerated type provides enumeration values for the set of valid authentication scheme types.", + "enum": [ + "SESSIONLESS", + "SESSION_AWARE" + ] + }, + "vapi.metadata.authentication.component.fingerprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.component.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.component_data": { + "type": "object", + "properties": { + "info": { + "description": "Authentication information of the component. This includes information about all the packages in the component.", + "$ref": "#/definitions/vapi.metadata.authentication.component_info" + }, + "fingerprint": { + "description": "Fingerprint of the metadata of the component. \n Authentication information could change when there is an infrastructure update. Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the Component.get to retrieve the new authentication information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "vapi.metadata.authentication.component_info": { + "type": "object", + "properties": { + "packages": { + "description": "Authentication information of all the package elements. The key in the map is the identifier of the package element and the value in the map is the authentication information for the package element. \n For an explanation of authentication information containment within package elements, see Package.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.package_info" + } + } + } + } + }, + "required": [ + "packages" + ] + }, + "vapi.metadata.authentication.component_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.component_data" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.operation_info": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes used by an operation element. The authentication scheme specified on the service element corresponding to this operation element is ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.authentication.authentication_info" + } + } + }, + "required": [ + "schemes" + ] + }, + "vapi.metadata.authentication.package.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.package_info": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes to be used for all the operation elements contained in this package element. If a particular service or operation element has no explicit authentications defined in the authentication defintion file, these authentication schemes are used for authenticating the user.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.authentication.authentication_info" + } + }, + "services": { + "description": "Information about all service elements contained in this package element that contain authentication information. The key in the map is the identifier of the service element and the value in the map is the authentication information for the service element. \n For an explanation of authentication information containment within service elements, see Service.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.service_info" + } + } + } + } + }, + "required": [ + "schemes", + "services" + ] + }, + "vapi.metadata.authentication.package_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.package_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.service.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.service.operation.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.service.operation_get": { + "type": "object", + "properties": { + "operation_id": { + "type": "string", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + }, + "required": [ + "operation_id" + ] + }, + "vapi.metadata.authentication.service.operation_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.operation_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.authentication.service_info": { + "type": "object", + "properties": { + "schemes": { + "description": "List of authentication schemes to be used for all the operation elements contained in this service element. The authentication scheme specified on the package element corresponding to this service element is ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.authentication.authentication_info" + } + }, + "operations": { + "description": "Information about all operation elements contained in this service element that contain authentication information. The key in the map is the identifier of the operation element and the value in the map is the authentication information for the operation element. \n For an explanation of containment of authentication information within operation elements, see Operation.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.operation_info" + } + } + } + } + }, + "required": [ + "schemes", + "operations" + ] + }, + "vapi.metadata.authentication.service_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.authentication.service_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.command.fingerprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.command.formatter_type": { + "type": "string", + "description": "The Command.FormatterType enumerated type defines supported CLI output formatter types. See Command.Info.formatter.", + "enum": [ + "SIMPLE", + "TABLE", + "JSON", + "XML", + "CSV", + "HTML" + ] + }, + "vapi.metadata.cli.command.generic_type": { + "type": "string", + "description": "The Command.GenericType enumerated type defines generic types supported by Command service. See Command.OptionInfo.generic.", + "enum": [ + "NONE", + "OPTIONAL", + "LIST", + "OPTIONAL_LIST", + "LIST_OPTIONAL" + ] + }, + "vapi.metadata.cli.command.identity": { + "type": "object", + "properties": { + "path": { + "description": "The dot-separated path of the namespace containing the command in the CLI command tree.", + "type": "string" + }, + "name": { + "description": "Name of the command.", + "type": "string" + } + }, + "required": [ + "path", + "name" + ] + }, + "vapi.metadata.cli.command.info": { + "type": "object", + "properties": { + "identity": { + "description": "Basic command identity.", + "$ref": "#/definitions/vapi.metadata.cli.command.identity" + }, + "description": { + "description": "The text description displayed to the user in help output.", + "type": "string" + }, + "service_id": { + "description": "The service identifier that contains the operations for this CLI command.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation_id": { + "description": "The operation identifier corresponding to this CLI command.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "options": { + "description": "The input for this command.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.command.option_info" + } + }, + "formatter": { + "description": "The formatter to use when displaying the output of this command.\nIf not present, client can choose a default output formatter.", + "$ref": "#/definitions/vapi.metadata.cli.command.formatter_type" + }, + "output_field_list": { + "description": "List of output structure name and output field info.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.command.output_info" + } + } + }, + "required": [ + "identity", + "description", + "service_id", + "operation_id", + "options", + "output_field_list" + ] + }, + "vapi.metadata.cli.command.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.command.identity" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.command.option_info": { + "type": "object", + "properties": { + "long_option": { + "description": "The long option name of the parameter as used by the user.", + "type": "string" + }, + "short_option": { + "description": "The single character value option name.\nIf not present, there's no single character option for the parameter.", + "type": "string" + }, + "field_name": { + "description": "The fully qualified name of the option referred to by the operation element in Command.Info.operation-id.", + "type": "string" + }, + "description": { + "description": "The description of the option to be displayed to the user when they request usage information for a CLI command.", + "type": "string" + }, + "type": { + "description": "The type of option. This is used to display information about what kind of data is expected (string, number, boolean, etc.) for the option when they request usage information for a CLI command. For enumerated type this stores the fully qualified enumerated type id.", + "type": "string" + }, + "generic": { + "description": "This is used to tell the user whether the option is required or optional, or whether they can specify the option multiple times.", + "$ref": "#/definitions/vapi.metadata.cli.command.generic_type" + } + }, + "required": [ + "long_option", + "field_name", + "description", + "type", + "generic" + ] + }, + "vapi.metadata.cli.command.output_field_info": { + "type": "object", + "properties": { + "field_name": { + "description": "Name of the field.", + "type": "string" + }, + "display_name": { + "description": "Name used by the CLI to display the field.", + "type": "string" + } + }, + "required": [ + "field_name", + "display_name" + ] + }, + "vapi.metadata.cli.command.output_info": { + "type": "object", + "properties": { + "structure_id": { + "description": "Name of the structure.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "output_fields": { + "description": "The order in which the fields of the structure will be displayed by the CLI as well as the names used to display the fields.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.command.output_field_info" + } + } + }, + "required": [ + "structure_id", + "output_fields" + ] + }, + "vapi.metadata.cli.command_get": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/vapi.metadata.cli.command.identity", + "description": "Identifier of the command for which to retreive information." + } + }, + "required": [ + "identity" + ] + }, + "vapi.metadata.cli.command_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.cli.command.info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.namespace.fingerprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.namespace.identity": { + "type": "object", + "properties": { + "path": { + "description": "The dot-separated path of the namespace containing the namespace in the CLI node tree. For top-level namespace this will be empty.", + "type": "string" + }, + "name": { + "description": "The name displayed to the user for this namespace.", + "type": "string" + } + }, + "required": [ + "path", + "name" + ] + }, + "vapi.metadata.cli.namespace.info": { + "type": "object", + "properties": { + "identity": { + "description": "Basic namespace identity.", + "$ref": "#/definitions/vapi.metadata.cli.namespace.identity" + }, + "description": { + "description": "The text description displayed to the user in help output.", + "type": "string" + }, + "children": { + "description": "The children of this namespace in the tree of CLI namespaces.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.identity" + } + } + }, + "required": [ + "identity", + "description", + "children" + ] + }, + "vapi.metadata.cli.namespace.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.identity" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.cli.namespace_get": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.identity", + "description": "Identifier of the namespace for which to retreive information." + } + }, + "required": [ + "identity" + ] + }, + "vapi.metadata.cli.namespace_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.cli.namespace.info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.component.fingerprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.component.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.component_data": { + "type": "object", + "properties": { + "info": { + "description": "Metamodel information of the component element. This includes information about all the package elements contained in this component element. \n The metamodel information about a component could be quite large if there are a lot of package elements contained in this component.", + "$ref": "#/definitions/vapi.metadata.metamodel.component_info" + }, + "fingerprint": { + "description": "Fingerprint of the metamodel metadata of the component component. \n Metamodel information could change when there is an infrastructure update and new functionality is added to an existing component. \n\n Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can use the Component.get to retrieve the new metamodel information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "vapi.metadata.metamodel.component_info": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the component element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "packages": { + "description": "Metamodel metadata information of all the package elements contained in the component element. The key in the map is the identifier of the package element and the value in the map is the metamodel information of the package element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.package_info" + } + } + } + }, + "metadata": { + "description": "Generic metadata for the component element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for a component. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first sentence of the package documentation is a complete sentence that identifies the component by name and summarizes the purpose of the component.", + "type": "string" + } + }, + "required": [ + "name", + "packages", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.component_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.component_data" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.constant_info": { + "type": "object", + "properties": { + "type": { + "description": "Type of the constant element.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + }, + "value": { + "description": "Value of the constant element.", + "$ref": "#/definitions/vapi.metadata.metamodel.constant_value" + }, + "documentation": { + "description": "English language documentation for the constant element. It can contain HTML markup and documentation tags (similar to Javadoc tags).", + "type": "string" + } + }, + "required": [ + "type", + "value", + "documentation" + ] + }, + "vapi.metadata.metamodel.constant_value": { + "type": "object", + "properties": { + "category": { + "description": "Category of the type of constant value.", + "$ref": "#/definitions/vapi.metadata.metamodel.constant_value.category" + }, + "primitive_value": { + "description": "Primitive value of the constant element.\nThis field is optional and it is only relevant when the value of ConstantValue.category is PRIMITIVE.", + "$ref": "#/definitions/vapi.metadata.metamodel.primitive_value" + }, + "list_value": { + "description": "List value of the constant element.\nThis field is optional and it is only relevant when the value of ConstantValue.category is LIST.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.metamodel.primitive_value" + } + } + }, + "required": [ + "category" + ] + }, + "vapi.metadata.metamodel.constant_value.category": { + "type": "string", + "description": "The ConstantValue.Category enumerated type defines enumeration values for the valid kinds of values.", + "enum": [ + "PRIMITIVE", + "LIST" + ] + }, + "vapi.metadata.metamodel.element_map": { + "type": "object", + "properties": { + "elements": { + "description": "Metamodel information of the metadata elements. The key parameter of the map is the identifier for the element and the value corresponds to the element value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_value" + } + } + } + } + }, + "required": [ + "elements" + ] + }, + "vapi.metadata.metamodel.element_value": { + "type": "object", + "properties": { + "type": { + "description": "Type of the value.", + "$ref": "#/definitions/vapi.metadata.metamodel.element_value.type" + }, + "long_value": { + "description": "Long value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is LONG.", + "type": "integer", + "format": "int64" + }, + "string_value": { + "description": "String value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRING.", + "type": "string" + }, + "list_value": { + "description": "List of strings value of the metadata element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRING_LIST.", + "type": "array", + "items": { + "type": "string" + } + }, + "structure_id": { + "description": "Identifier of the structure element.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRUCTURE_REFERENCE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "structure_ids": { + "description": "List of identifiers of the structure elements.\nThis field is optional and it is only relevant when the value of ElementValue.type is STRUCTURE_REFERENCE_LIST.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.structure.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "vapi.metadata.metamodel.element_value.type": { + "type": "string", + "description": "The ElementValue.Type enumerated type defines the valid types for values in metadata elements.", + "enum": [ + "LONG", + "STRING", + "STRING_LIST", + "STRUCTURE_REFERENCE", + "STRUCTURE_REFERENCE_LIST" + ] + }, + "vapi.metadata.metamodel.enumeration.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.enumeration_info": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the enumeration element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "values": { + "description": "Metamodel information of all the enumeration value elements contained in this enumeration element. The order of the enumeration value elements in the list is same as the order in which they are defined in the interface definition file.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_value_info" + } + }, + "metadata": { + "description": "Generic metadata elements for an enumeration element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for an enumeration element. It can contain HTML markup and Javadoc tags. The first sentence of the enumeration documentation is a complete sentence that identifies the enumeration by name and summarizes the purpose of the enumeration. The documentation describes the context in which the enumeration is used. \n The documentation also contains references to the context in which the enumeration is used. But if the enumeration is used in many contexts, the references may not be present.", + "type": "string" + } + }, + "required": [ + "name", + "values", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.enumeration_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.enumeration_value_info": { + "type": "object", + "properties": { + "value": { + "description": "Value in the enumerated type. All the characters in the string are capitalized.", + "type": "string" + }, + "metadata": { + "description": "Additional metadata for enumeration value in the enumerated type. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for an enumeration value. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first statement will be a noun or verb phrase that describes the purpose of the enumeration value.", + "type": "string" + } + }, + "required": [ + "value", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.error_info": { + "type": "object", + "properties": { + "structure_id": { + "description": "Identifier for the structure element corresponding to the error that is being reported by the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "documentation": { + "description": "The English language documentation for the error element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "structure_id", + "documentation" + ] + }, + "vapi.metadata.metamodel.field_info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the field element in a canonical format. The format is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "type": { + "description": "Type information.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + }, + "metadata": { + "description": "Generic metadata elements for the field element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for the field element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.generic_instantiation": { + "type": "object", + "properties": { + "generic_type": { + "description": "The generic type that is being instantiated.", + "$ref": "#/definitions/vapi.metadata.metamodel.generic_instantiation.generic_type" + }, + "element_type": { + "description": "Type of the element parameter if the generic type instantiation is a LIST, OPTIONAL or SET.\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is one of LIST, OPTIONAL, or SET.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + }, + "map_key_type": { + "description": "Type of the key parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the value parameter is described by GenericInstantiation.map-value-type..\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is MAP.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + }, + "map_value_type": { + "description": "Type of the value parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the key parameter is described by GenericInstantiation.map-key-type..\nThis field is optional and it is only relevant when the value of GenericInstantiation.generic-type is MAP.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + } + }, + "required": [ + "generic_type" + ] + }, + "vapi.metadata.metamodel.generic_instantiation.generic_type": { + "type": "string", + "description": "The GenericInstantiation.GenericType enumerated type provides enumeration values for each of the generic types provided by the infrastructure.", + "enum": [ + "LIST", + "MAP", + "OPTIONAL", + "SET" + ] + }, + "vapi.metadata.metamodel.operation_info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the operation element in a canonical format. The format is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "params": { + "description": "Metamodel information for the parameter elements. The order of the parameters elements in the list is same as the order of the parameters declared in the interface definition file.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.metamodel.field_info" + } + }, + "output": { + "description": "Metamodel type for the output element.", + "$ref": "#/definitions/vapi.metadata.metamodel.operation_result_info" + }, + "errors": { + "description": "List of error elements that might be reported by the operation element. If the operation reports the same error for more than one reason, the list contains the error element associated with the error more than once with different documentation elements.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.metamodel.error_info" + } + }, + "metadata": { + "description": "Generic metadata elements for the operation element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for key in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for the operation element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "name", + "params", + "output", + "errors", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.operation_result_info": { + "type": "object", + "properties": { + "type": { + "description": "Type information of the operation result element.", + "$ref": "#/definitions/vapi.metadata.metamodel.type" + }, + "metadata": { + "description": "Generic metadata elements for the service element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for the operation result element. It can contain HTML markup and Javadoc tags.", + "type": "string" + } + }, + "required": [ + "type", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.package.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.package_info": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the package element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "structures": { + "description": "Metamodel information of all the structure elements contained in the package element. The key in the map is the identifier of the structure element and the value in the map is the metamodel information for the structure element. \n This does not include the structure elements contained in the service elements that are contained in this package element.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.structure.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.structure_info" + } + } + } + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the package element. The key in the map is the identifier of the enumeration element and the value in the map is the metamodel information for the enumeration element. \n This does not include the enumeration elements that are contained in the service elements of this package element or structure elements of this package element.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_info" + } + } + } + }, + "services": { + "description": "Metamodel information of all the service elements contained in the package element. The key in the map is the identifier of the service element and the value in the map is the metamodel information for the service element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.service_info" + } + } + } + }, + "metadata": { + "description": "Generic metadata elements for the package element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for a package. It can contain HTML markup and Javadoc tags. The first sentence of the package documentation is a complete sentence that identifies the package by name and summarizes the purpose of the package. \n The primary purpose of a package documentation is to provide high-level context that will provide a framework in which the users can put the detail about the package contents.", + "type": "string" + } + }, + "required": [ + "name", + "structures", + "enumerations", + "services", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.package_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.package_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.primitive_value": { + "type": "object", + "properties": { + "type": { + "description": "Type of the constant value.", + "$ref": "#/definitions/vapi.metadata.metamodel.primitive_value.type" + }, + "boolean_value": { + "description": "Boolean value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is BOOLEAN.", + "type": "boolean" + }, + "double_value": { + "description": "Double value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is DOUBLE.", + "type": "number", + "format": "double" + }, + "long_value": { + "description": "Long value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is LONG.", + "type": "integer", + "format": "int64" + }, + "string_value": { + "description": "String value of the constant.\nThis field is optional and it is only relevant when the value of PrimitiveValue.type is STRING.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vapi.metadata.metamodel.primitive_value.type": { + "type": "string", + "description": "The PrimitiveValue.Type enumerated type defines the valid types for values in constant elements.", + "enum": [ + "BOOLEAN", + "DOUBLE", + "LONG", + "STRING" + ] + }, + "vapi.metadata.metamodel.resource.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.resource.model.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.service.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.service.operation.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.service.operation_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.operation_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.service_info": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the service element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "operations": { + "description": "Metamodel information of all the operation elements contained in the service element. The key in the map is the identifier of the operation element and the value in the map is the metamodel information for the operation element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.operation_info" + } + } + } + }, + "structures": { + "description": "Metamodel information of all the structure elements contained in the service element. The key in the map is the identifier of the structure element and the value in the map is the metamodel information for the structure element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.structure.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.structure_info" + } + } + } + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the service element. The key in the map is the identifier of the enumeration element and the value in the map is the metamodel information for the enumeration element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_info" + } + } + } + }, + "constants": { + "description": "Metamodel information of all the constant elements contained in the service element. The key in the map is the name of the constant element and the value in the map is the metamodel information for the contant element.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.constant_info" + } + } + } + }, + "metadata": { + "description": "Generic metadata elements for the service element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for the service element. It can contain HTML markup and Javadoc tags. The first sentence of the service documentation is a complete sentence that identifies the service by name and summarizes the purpose of the service. The remaining part of the documentation provides a summary of how to use the operations defined in the service.", + "type": "string" + } + }, + "required": [ + "name", + "operations", + "structures", + "enumerations", + "constants", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.service_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.service_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.structure.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.structure_info": { + "type": "object", + "properties": { + "name": { + "description": "Dot separated name of the structure element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention.", + "type": "string" + }, + "type": { + "description": "Type of the structure.", + "$ref": "#/definitions/vapi.metadata.metamodel.structure_info.type" + }, + "enumerations": { + "description": "Metamodel information of all the enumeration elements contained in the structure element. The key in the map is the identifier of the enumeration element and the value is the metamodel information of the enumeration element.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.enumeration. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.enumeration.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.enumeration_info" + } + } + } + }, + "constants": { + "description": "Metamodel information of all the constant elements contained in the structure element. The key in the map is the name of the constant element and the value in the map is the metamodel information for the constant element.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.constant_info" + } + } + } + }, + "fields": { + "description": "Metamodel information of all the field elements. The order of the field elements in the list matches the order in which the fields are defined in the service.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.metamodel.field_info" + } + }, + "metadata": { + "description": "Generic metadata elements for the structure element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. \n The MetadataIdentifier contains possible string values for keys in the map.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.element_map" + } + } + } + }, + "documentation": { + "description": "English language documentation for a structure element. It can contain HTML markup and Javadoc tags. The first sentence of the structure documentation is a complete sentence that identifies the structure by name and summarizes the purpose of the structure.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "enumerations", + "constants", + "fields", + "metadata", + "documentation" + ] + }, + "vapi.metadata.metamodel.structure_info.type": { + "type": "string", + "description": "The StructureInfo.Type enumerated type defines the kind of this structure element. In the interface definition language, structure element and error element have similar characteristics. The difference is that only error elements can be used to describe the errors of an operation element.", + "enum": [ + "STRUCTURE", + "ERROR" + ] + }, + "vapi.metadata.metamodel.structure_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.metamodel.structure_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.metamodel.type": { + "type": "object", + "properties": { + "category": { + "description": "Category of this type.", + "$ref": "#/definitions/vapi.metadata.metamodel.type.category" + }, + "builtin_type": { + "description": "Category of the built-in type.\nThis field is optional and it is only relevant when the value of Type.category is BUILTIN.", + "$ref": "#/definitions/vapi.metadata.metamodel.type.builtin_type" + }, + "user_defined_type": { + "description": "Identifier and type of the user defined type.\nThis field is optional and it is only relevant when the value of Type.category is USER_DEFINED.", + "$ref": "#/definitions/vapi.metadata.metamodel.user_defined_type" + }, + "generic_instantiation": { + "description": "Instantiation of one of the generic types available in the interface definition language.\nThis field is optional and it is only relevant when the value of Type.category is GENERIC.", + "$ref": "#/definitions/vapi.metadata.metamodel.generic_instantiation" + } + }, + "required": [ + "category" + ] + }, + "vapi.metadata.metamodel.type.builtin_type": { + "type": "string", + "description": "The Type.BuiltinType enumerated type provides enumeration value for each of the built-in types present in the interface definition language type system.", + "enum": [ + "VOID", + "BOOLEAN", + "LONG", + "DOUBLE", + "STRING", + "BINARY", + "SECRET", + "DATE_TIME", + "ID", + "URI", + "ANY_ERROR", + "DYNAMIC_STRUCTURE", + "OPAQUE" + ] + }, + "vapi.metadata.metamodel.type.category": { + "type": "string", + "description": "The Type.Category enumerated type provides enumeration value for each category of the type.", + "enum": [ + "BUILTIN", + "USER_DEFINED", + "GENERIC" + ] + }, + "vapi.metadata.metamodel.user_defined_type": { + "type": "object", + "properties": { + "resource_type": { + "description": "Category of the user defined named type. The named type could be a structure element or an enumeration element.\nWhen clients pass a value of this structure as a parameter, the field must be one of vapi.structure or vapi.enumeration. When operations return a value of this structure as a result, the field will be one of vapi.structure or vapi.enumeration.", + "type": "string" + }, + "resource_id": { + "description": "Identifier of the user defined named type.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for one of these resource types: vapi.structure or vapi.enumeration. When operations return a value of this structure as a result, the field will be an identifier for one of these resource types: vapi.structure or vapi.enumeration.", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_id" + ] + }, + "vapi.metadata.privilege.component.fingerprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.component.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.component_data": { + "type": "object", + "properties": { + "info": { + "description": "Privilege information of the component. This includes information about all the packages in the component.", + "$ref": "#/definitions/vapi.metadata.privilege.component_info" + }, + "fingerprint": { + "description": "Fingerprint of the metadata of the component. \n Privilege information could change when there is an infrastructure update. Since the data present in ComponentData.info could be quite large, ComponentData.fingerprint provides a convenient way to check if the data for a particular component is updated. \n\n You should store the fingerprint associated with a component. After an update, by invoking the Component.fingerprint operation, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the Component.get to retrieve the new privilege information for the component.", + "type": "string" + } + }, + "required": [ + "info", + "fingerprint" + ] + }, + "vapi.metadata.privilege.component_info": { + "type": "object", + "properties": { + "packages": { + "description": "Privilege information of all the package elements. The key in the map is the identifier of the package element and the value in the map is the privilege information for the package element. \n For an explanation of privilege information containment within package elements, see Package.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.package. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.package.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.package_info" + } + } + } + } + }, + "required": [ + "packages" + ] + }, + "vapi.metadata.privilege.component_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.component_data" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.operation_info": { + "type": "object", + "properties": { + "privileges": { + "description": "List of all privileges assigned to the operation element.", + "type": "array", + "items": { + "type": "string" + } + }, + "privilege_info": { + "description": "Privilege information of all the parameter elements of the operation element. \n For an explanation of containment of privilege information within parameter elements, see PrivilegeInfo.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.metadata.privilege.privilege_info" + } + } + }, + "required": [ + "privileges", + "privilege_info" + ] + }, + "vapi.metadata.privilege.package.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.package_info": { + "type": "object", + "properties": { + "privileges": { + "description": "List of default privileges to be used for all the operations present in this package. If a particular operation element has no explicit privileges defined in the privilege definition file, these privileges are used for enforcing authorization.", + "type": "array", + "items": { + "type": "string" + } + }, + "services": { + "description": "Information about all service elements contained in this package element that contain privilege information. The key in the map is the identifier of the service element and the value in the map is the privilege information for the service element. \n For an explanation of privilege information containment within service elements, see Service.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.service.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.service_info" + } + } + } + } + }, + "required": [ + "privileges", + "services" + ] + }, + "vapi.metadata.privilege.package_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.package_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.privilege_info": { + "type": "object", + "properties": { + "property_path": { + "description": "The PrivilegeInfo.property-path points to an entity that is used in the operation element. An entity can either be present in one of the parameter elements or if a parameter is a structure element, it could also be present in one of the field elements. \n If the privilege is assigned to an entity used in the parameter, PrivilegeInfo.property-path will just contain the name of the parameter field. If the privilege is assigned to an entity in one of the field elements of a parameter element that is a structure element, then PrivilegeInfo.property-path will contain a path to the field element starting from the parameter name.", + "type": "string" + }, + "privileges": { + "description": "List of privileges assigned to the entity that is being referred by PrivilegeInfo.property-path.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "property_path", + "privileges" + ] + }, + "vapi.metadata.privilege.service.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.service.operation.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.service.operation_get": { + "type": "object", + "properties": { + "operation_id": { + "type": "string", + "description": "Identifier of the operation element.\nThe parameter must be an identifier for the resource type: vapi.operation." + } + }, + "required": [ + "operation_id" + ] + }, + "vapi.metadata.privilege.service.operation_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.operation_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.metadata.privilege.service_info": { + "type": "object", + "properties": { + "operations": { + "description": "Information about all operation elements contained in this service element that contain privilege information. The key in the map is the identifier of the operation element and the value in the map is the privilege information for the operation element. \n For an explanation of containment of privilege information within operation elements, see Operation.\n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vapi.operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.operation_info" + } + } + } + } + }, + "required": [ + "operations" + ] + }, + "vapi.metadata.privilege.service_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.metadata.privilege.service_info" + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.component.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the component.", + "type": "string" + }, + "services": { + "description": "Link to component services list.", + "$ref": "#/definitions/vapi.rest.navigation.link" + }, + "documentation": { + "description": "Component documentation.", + "type": "string" + } + }, + "required": [ + "name", + "services", + "documentation" + ] + }, + "vapi.rest.navigation.component.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.component.info" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.http_method": { + "type": "string", + "description": "The HttpMethod enumerated type defines the valid http methods that can be used with a URL to make a REST call.", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "OPTIONS", + "PATCH", + "TRACE", + "CONNECT", + "HEAD" + ] + }, + "vapi.rest.navigation.link": { + "type": "object", + "properties": { + "method": { + "description": "HttpMethod to be used.", + "$ref": "#/definitions/vapi.rest.navigation.http_method" + }, + "href": { + "description": "URL that should be called.", + "type": "string" + }, + "metadata": { + "description": "Reference to meta data describing the call.", + "$ref": "#/definitions/vapi.rest.navigation.reference" + } + }, + "required": [ + "method", + "href", + "metadata" + ] + }, + "vapi.rest.navigation.operation": { + "type": "object", + "properties": { + "name": { + "description": "Name of the operation.", + "type": "string" + }, + "service": { + "description": "Name of the service where the operations belongs to.", + "type": "string" + }, + "documentation": { + "description": "Documentation of the operation.", + "type": "string" + }, + "links": { + "description": "List of References to execute the operation.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.reference" + } + }, + "metadata": { + "description": "Reference to meta data about the operation.", + "$ref": "#/definitions/vapi.rest.navigation.reference" + } + }, + "required": [ + "name", + "service", + "documentation", + "links", + "metadata" + ] + }, + "vapi.rest.navigation.options_get": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "URL for which operations are retrieved." + }, + "base_url": { + "type": "string", + "description": "Base URL.\nThe {param.name baseUrl} parameter is used by the service to produce absolute URLs. If unset then the service will produce relative URLs." + } + }, + "required": [ + "url" + ] + }, + "vapi.rest.navigation.options_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.operation" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.reference": { + "type": "object", + "properties": { + "method": { + "description": "HttpMethod to be used.", + "$ref": "#/definitions/vapi.rest.navigation.http_method" + }, + "href": { + "description": "URL to be called.", + "type": "string" + } + }, + "required": [ + "method", + "href" + ] + }, + "vapi.rest.navigation.resource.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the resource.", + "type": "string" + }, + "method": { + "description": "HttpMethod to get resource information.", + "$ref": "#/definitions/vapi.rest.navigation.http_method" + }, + "href": { + "description": "URL to get resource information.", + "type": "string" + }, + "metadata": { + "description": "Reference to the meta data for the resource.", + "$ref": "#/definitions/vapi.rest.navigation.reference" + } + }, + "required": [ + "name", + "method", + "href", + "metadata" + ] + }, + "vapi.rest.navigation.resource.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.resource.info" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.resource_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.operation" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.root.info": { + "type": "object", + "properties": { + "components": { + "description": "Link to component list.", + "$ref": "#/definitions/vapi.rest.navigation.link" + }, + "resources": { + "description": "Link to resource list.", + "$ref": "#/definitions/vapi.rest.navigation.link" + } + }, + "required": [ + "components", + "resources" + ] + }, + "vapi.rest.navigation.root_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vapi.rest.navigation.root.info" + } + }, + "required": [ + "value" + ] + }, + "vapi.rest.navigation.service.info": { + "type": "object", + "properties": { + "documentation": { + "description": "Documentation of the service.", + "type": "string" + }, + "name": { + "description": "Name of the service.", + "type": "string" + }, + "method": { + "description": "HttpMethod to get service information.", + "$ref": "#/definitions/vapi.rest.navigation.http_method" + }, + "href": { + "description": "URL to get service information.", + "type": "string" + }, + "metadata": { + "description": "Reference to the meta data for the service.", + "$ref": "#/definitions/vapi.rest.navigation.reference" + } + }, + "required": [ + "documentation", + "name", + "method", + "href", + "metadata" + ] + }, + "vapi.rest.navigation.service.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vapi.rest.navigation.service.info" + } + } + }, + "required": [ + "value" + ] + }, + "vapi.std.errors.error.type": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "vapi.std.errors.not_allowed_in_current_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_allowed_in_current_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state" + } + } + }, + "vapi.std.errors.not_found": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_found_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_found" + } + } + }, + "vapi.std.errors.service_unavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.service_unavailable_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable" + } + } + }, + "vapi.std.errors.unauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthenticated_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated" + } + } + }, + "vapi.std.errors.unauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthorized_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthorized" + } + } + }, + "vapi.std.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "vapi.std.localization_param": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/vapi.std.nested_localizable_message" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/vapi.std.localization_param.date_time_format" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "vapi.std.localization_param.date_time_format": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "vapi.std.nested_localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + } + }, + "required": [ + "id" + ] + } + } +} \ No newline at end of file diff --git a/config/api_specifications/8.0.2/vcenter.json b/config/api_specifications/8.0.2/vcenter.json new file mode 100644 index 000000000..a511e6283 --- /dev/null +++ b/config/api_specifications/8.0.2/vcenter.json @@ -0,0 +1,80473 @@ +{ + "swagger": "2.0", + "info": { + "description": "VMware vCenter Server provides a centralized platform for managing your VMware vSphere environments", + "title": "vcenter", + "version": "2.0.0" + }, + "host": "", + "securityDefinitions": { + "session_id": { + "in": "header", + "name": "vmware-api-session-id", + "type": "apiKey" + }, + "basic_auth": { + "type": "basic" + } + }, + "basePath": "", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "tags": [], + "schemes": [ + "https", + "http" + ], + "paths": { + "/api/vcenter/authentication/token": { + "post": { + "tags": [ + "authentication/token" + ], + "summary": "Provides a token endpoint as defined in RFC 6749. \nSupported grant types: \n\n - urn:ietf:params:oauth:grant-type:token-exchange - Exchanges incoming token based on the spec and current client authorization data. \n \nThis operation supercedes vcenter.tokenservice.TokenExchange#exchange. The REST rendering of the newer operation matches RFC8693's definition for both input and output of the operation.", + "parameters": [ + { + "in": "formData", + "name": "grant_type", + "description": "The value of urn:ietf:params:oauth:grant-type:token-exchange indicates that a token exchange is being performed.\nWhen clients pass a value of this structure as a parameter, the field must be one of urn:ietf:params:oauth:grant-type:token-exchange. When operations return a value of this structure as a result, the field will be one of urn:ietf:params:oauth:grant-type:token-exchange.", + "type": "string", + "required": "true" + }, + { + "in": "formData", + "name": "resource", + "description": "Indicates the location of the target service or resource where the client intends to use the requested security token.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + { + "in": "formData", + "name": "audience", + "description": "The logical name of the target service where the client intends to use the requested security token. This serves a purpose similar to the Token.IssueSpec.resource field, but with the client providing a logical name rather than a location.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + { + "in": "formData", + "name": "scope", + "description": "A list of space-delimited, case-sensitive strings, that allow the client to specify the desired scope of the requested security token in the context of the service or resource where the token will be used.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + { + "in": "formData", + "name": "requested_token_type", + "description": "An identifier for the type of the requested security token. If the requested type is unspecified, the issued token type is at the discretion of the server and may be dictated by knowledge of the requirements of the service or resource indicated by the Token.IssueSpec.resource or Token.IssueSpec.audience field.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + { + "in": "formData", + "name": "subject_token", + "description": "A security token that represents the identity of the party on behalf of whom exchange is being made. Typically, the subject of this token will be the subject of the security token issued. Token is base64-encoded. \nThe field is required when the value of the Token.IssueSpec.grant-type field is urn:ietf:params:oauth:grant-type:token-exchange.\n\nThis field is currently required. In the future, the structure may support grant-types other than urn:ietf:params:oauth:grant-type:token-exchange for which the value may be unset.", + "type": "string" + }, + { + "in": "formData", + "name": "subject_token_type", + "description": "An identifier, that indicates the type of the security token in the Token.IssueSpec.subject-token field. \nThe field is required when the value of the Token.IssueSpec.grant-type field is urn:ietf:params:oauth:grant-type:token-exchange.\n\nThis field is currently required. In the future, the structure may support grant-types other than urn:ietf:params:oauth:grant-type:token-exchange for which the value may be unset.", + "type": "string" + }, + { + "in": "formData", + "name": "actor_token", + "description": "A security token that represents the identity of the acting party. Typically, this will be the party that is authorized to use the requested security token and act on behalf of the subject.\nunset if not needed for the specific case of exchange.", + "type": "string" + }, + { + "in": "formData", + "name": "actor_token_type", + "description": "An identifier, that indicates the type of the security token in the Token.IssueSpec.actor-token field.\nunset if Token.IssueSpec.actor-token field is not present.", + "type": "string" + } + ], + "responses": { + "200": { + "description": "TokenInfo structure that contains a newly issued token.", + "schema": { + "$ref": "#/definitions/Oauth2TokenInfo" + } + }, + "500": { + "description": "If the server is unwilling or unable to issue a token for all the target services indicated by the Token.IssueSpec.resource or Token.IssueSpec.audience fields.", + "schema": { + "$ref": "#/definitions/Oauth2ErrorsInvalidScope" + } + } + }, + "consumes": [ + "application/x-www-form-urlencoded" + ], + "operationId": "issue", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/authorization/privilege-checks/latest": { + "get": { + "tags": [ + "authorization/privilege_checks/latest" + ], + "summary": "Returns a marker to the last recorded privilege check.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Sessions.CollectPrivilegeChecks.", + "parameters": [], + "responses": { + "200": { + "description": "A marker for the most recently recorded privilege check.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/authorization/privilege-checks?action=list": { + "post": { + "tags": [ + "authorization/privilege_checks" + ], + "summary": "Queries the privilege checks matching given criteria.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Sessions.CollectPrivilegeChecks.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksList" + } + }, + { + "in": "query", + "name": "size", + "type": "integer", + "description": "Specifies the maximum number of results to return.\nIf unset defaults to default page size, which is controlled by config.vpxd.privilegeChecks.pageSize advanced option." + }, + { + "in": "query", + "name": "marker", + "type": "string", + "description": "An opaque token which determines where the returned page should begin.\nIf unset or empty, privilege checks will be returned from the first record." + }, + { + "in": "query", + "name": "end_marker", + "type": "string", + "description": "An opaque token which determines where the returned page should end.\nIf unset or empty, privilege checks will be returned up to size, if set, or up to the default page size." + }, + { + "in": "query", + "name": "timeout_ms", + "type": "integer", + "description": "Indicates how long the request should wait in ms for a matching check if PrivilegeChecks.IterationSpec.marker is set, and there no matching checks to be added to the result.\nIf unset or empty, the request will not wait for additional privilege checks and will return immediately." + } + ], + "responses": { + "200": { + "description": "Detailed information about the privileges collected so far.", + "schema": { + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksListResult" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if filter or iteration spec contain invalid values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the iteration spec contains a marker that could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/signing-certificate": { + "put": { + "tags": [ + "certificate_management/vcenter/signing_certificate" + ], + "summary": "Set the active signing certificate for vCenter. The certificate will immediately be used to sign tokens issued by vCenter token service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterSigningCertificateSet" + } + } + ], + "responses": { + "204": { + "description": "" + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "certificate_management/vcenter/signing_certificate" + ], + "summary": "Retrieve the signing certificate chains for validating vCenter-issued tokens.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The active certificate chain and signing certificate chains for validating tokens.", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterSigningCertificateInfo" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/signing-certificate?action=refresh": { + "post": { + "tags": [ + "certificate_management/vcenter/signing_certificate" + ], + "summary": "Refresh the vCenter signing certificate chain. The new signing certificate will be issued in accordance with vCenter CA policy and set as the active signing certificate for the vCenter token service. The certificate will immediately be used to sign tokens issued by vCenter token service. If a third-party/custom certificate has been configured as the signing certificate for compliance reasons, refresh may take vCenter out of compliance.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterSigningCertificateRefresh" + } + } + ], + "responses": { + "200": { + "description": "The signing certificate chain created during the refresh.", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + } + } + }, + "operationId": "refresh", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/tls": { + "put": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Replaces the rhttpproxy TLS certificate with the specified certificate. This operation can be used in three scenarios : \n 1. When the CSR is created and the private key is already stored, this operation can replace the certificate. The Tls.Spec.cert (but not Tls.Spec.key and Tls.Spec.root-cert) must be provided as input. \n 2. When the certificate is signed by a third party certificate authority/VMCA and the root certificate of the third party certificate authority/VMCA is already one of the trusted roots in the trust store, this operation can replace the certificate and private key. The Tls.Spec.cert and Tls.Spec.key (but not Tls.Spec.root-cert) must be provided as input. \n 3. When the certificate is signed by a third party certificate authority and the root certificate of the third party certificate authority is not one of the trusted roots in the trust store, this operation can replace the certificate, private key and root CA certificate. The Tls.Spec.cert,Tls.Spec.key and Tls.Spec.root-cert must be provided as input. \n After this operation completes, the services using the certificate will be restarted for the new certificate to take effect. \nThe above three scenarios are only supported from vsphere 7.0 onwards.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the private key is not present in the VECS store.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "If the specified certificate thumbprint is the same as the existing TLS certificate thumbprint.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "500": { + "description": "If the system failed to replace the TLS certificate.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Returns the rhttpproxy TLS certificate.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "TLS certificate.", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsInfo" + } + }, + "404": { + "description": "if the rhttpproxy certificate is not present in VECS store.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if failed due to generic exception.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/tls-csr": { + "post": { + "tags": [ + "certificate_management/vcenter/tls_csr" + ], + "summary": "Generates a CSR with the given Spec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsCsrCreate" + } + } + ], + "responses": { + "201": { + "description": "A Certificate Signing Request.", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsCsrInfo" + } + }, + "500": { + "description": "If CSR could not be created for given spec for a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/tls?action=renew": { + "post": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Renews the TLS certificate for the given duration period. \nAfter this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsRenew" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "If the duration period specified is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If the system failed to renew the TLS certificate.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "renew", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/tls?action=replace-vmca-signed": { + "post": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Replace MACHINE SSL with VMCA signed one with the given Spec.The system will go for restart. \n After this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsReplaceVmcaSigned" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "If the Spec given is not complete or invalid", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If the system failed to replace the machine ssl certificate", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "replace_vmca_signed", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/trusted-root-chains": { + "post": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Creates a new trusted root certificate chain from the CreateSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTrustedRootChainsCreate" + } + } + ], + "responses": { + "201": { + "description": "The unique identifier for the new trusted root chain.", + "schema": { + "type": "string" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if a trusted root certificate chain exists with id in given spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Returns summary information for each trusted root certificate chain.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of trusted root certificate chains summaries.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTrustedRootChainsSummary" + } + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/trusted-root-chains/{chain}": { + "get": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Retrieve a trusted root certificate chain for a given identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "chain", + "description": "Unique identifier for a trusted root cert chain." + } + ], + "responses": { + "200": { + "description": "TrustedRootChain.", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTrustedRootChainsInfo" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if a trusted root certificate chain does not exist for given id.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Deletes trusted root certificate chain for a given identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "chain", + "description": "Unique identifier for a trusted root cert chain." + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if a trusted root certificate chain does not exist for given id.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/certificate-management/vcenter/vmca-root": { + "post": { + "tags": [ + "certificate_management/vcenter/vmca_root" + ], + "summary": "Replace Root Certificate with VMCA signed one using the given Spec. \nAfter this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterVmcaRootCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the system failed to renew the TLS certificate.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the operation is executed on a platform where it is not supported.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/cluster": { + "get": { + "tags": [ + "cluster" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) clusters in vCenter matching the Cluster.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of clusters that can match the filter.\nIf unset or empty, clusters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that clusters must have to match the filter (see Cluster.Info.name).\nIf unset or empty, clusters with any name match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the clusters matching the Cluster.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterClusterSummary" + } + } + }, + "500": { + "description": "if more than 1000 clusters match the Cluster.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/cluster/{cluster}": { + "get": { + "tags": [ + "cluster" + ], + "summary": "Retrieves information about the cluster corresponding to cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the cluster associated with cluster.", + "schema": { + "$ref": "#/definitions/VcenterClusterInfo" + } + }, + "404": { + "description": "if there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/compute/policies": { + "post": { + "tags": [ + "compute/policies" + ], + "summary": "Creates a new compute policy.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ComputePolicy.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterComputePoliciesCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the newly created policy. Use this identifier to get or destroy the policy.\nThe result will be an identifier for the resource type: vcenter.compute.Policy.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if a parameter passed in the spec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 100 policies are created.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "compute/policies" + ], + "summary": "Returns information about the compute policies available in this vCenter server.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of compute policies available on this vCenter server.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterComputePoliciesSummary" + } + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/compute/policies/capabilities": { + "get": { + "tags": [ + "compute/policies/capabilities" + ], + "summary": "Returns information about the compute policy capabilities available in this vCenter server.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of compute policy capabilities available on this vCenter server.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterComputePoliciesCapabilitiesSummary" + } + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/compute/policies/capabilities/{capability}": { + "get": { + "tags": [ + "compute/policies/capabilities" + ], + "summary": "Returns information about a specific compute policy capability.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "capability", + "description": "Identifier of the capability for which information should be retrieved.\nThe parameter must be an identifier for the resource type: vcenter.compute.policies.Capability." + } + ], + "responses": { + "200": { + "description": "Detailed information about the capability.", + "schema": { + "$ref": "#/definitions/VcenterComputePoliciesCapabilitiesInfo" + } + }, + "404": { + "description": "if a capability with this identifier does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/compute/policies/tag-usage": { + "get": { + "tags": [ + "compute/policies/tag_usage" + ], + "summary": "Returns information about the tags used by policies available in this vCenter server matching the TagUsage.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "policies", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers that compute policies must have to match the filter.\nIf unset or empty, then tags used by any policy match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.compute.Policy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.compute.Policy." + }, + { + "in": "query", + "name": "tags", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers that tags must have to match the filter.\nIf unset or empty, then tags with any tag identifier match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.tagging.Tag." + }, + { + "in": "query", + "name": "tag_types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers that tag types must have to match the filter.\nIf unset or empty, then tags of any type match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.resource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.resource." + } + ], + "responses": { + "200": { + "description": "The list of tags used by policies available on this vCenter server matching the TagUsage.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterComputePoliciesTagUsageSummary" + } + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/compute/policies/{policy}": { + "get": { + "tags": [ + "compute/policies" + ], + "summary": "Returns information about a specific compute policy.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "Identifier of the policy for which information should be retrieved.\nThe parameter must be an identifier for the resource type: vcenter.compute.Policy." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified compute policy. The returned value can be converted to the information type of the capability that this policy is based on. See Capabilities.Info.info-type.\nThe result will contain all the attributes defined in Info.", + "schema": { + "type": "object" + } + }, + "404": { + "description": "if a policy with this identifier does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "compute/policies" + ], + "summary": "Deletes a specific compute policy.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ComputePolicy.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "Identifier of the policy to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.compute.Policy." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if a policy with this identifier does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/confidential-computing/sgx/hosts?action=register&vmw-task=true": { + "post": { + "tags": [ + "confidential_computing/sgx/hosts" + ], + "summary": "Register host by stored SGX configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterConfidentialComputingSgxHostsRegisterTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if register for same host is already in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the host ID is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the system does not support SGX Registration.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "register$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zone-associations/cluster": { + "get": { + "tags": [ + "consumption_domains/zone_associations/cluster" + ], + "summary": "Returns zone-cluster associations that match the specified filter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Zone-cluster associations will be filtered such that each association that is returned will have a cluster identifier from this set of specified cluster identifiers.\nIf unset or empty, zone-cluster associations will not be filtered based on cluster identifiers. Associations with any cluster identifier will match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "zones", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Zone-cluster associations will be filtered such that each association that is returned will have a zone identifier from this set of specified zone identifiers.\nIf unset or empty, zone-cluster associations will not be filtered based on zone identifiers. Associations with any zone identifier will match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone." + } + ], + "responses": { + "200": { + "description": "Zone-cluster associations matching the Cluster.FilterSpec.", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZoneAssociationsClusterListResult" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zones in Cluster.FilterSpec requires System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zones": { + "post": { + "tags": [ + "consumption_domains/zones" + ], + "summary": "Creates a zone based on the provided specifications.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Zone.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the created zone.\nThe result will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the input information in the createSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have Zones.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "consumption_domains/zones" + ], + "summary": "Returns information about the zones available on this vCenter server, where the zones need to match Zones.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "zones", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Matches all zones corresponding to the specified set of zone identifiers.\nIf unset or empty, results will not be filtered for specific zone identifiers.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone." + } + ], + "responses": { + "200": { + "description": "The list of zones available on this vCenter that match the criteria specified in Zones.FilterSpec.", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesListResult" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zones in Zones.FilterSpec requires System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zones/cluster/{zone}/associations": { + "get": { + "tags": [ + "consumption_domains/zones/cluster/associations" + ], + "summary": "Returns identifiers of the clusters that are mapped to the specified consumption-domain zone.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "zone", + "description": "Identifier of the zone to be queried for its associated vSphere clusters.\nThe parameter must be an identifier for the resource type: vcenter.consumption_domains.Zone." + } + ], + "responses": { + "200": { + "description": "The set of vSphere clusters mapped to the specified zone.\nThe result will contain identifiers for the resource type: ClusterComputeResource.", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "404": { + "description": "if the specified zone is not known to this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zones/cluster/{zone}/associations?action=add": { + "post": { + "tags": [ + "consumption_domains/zones/cluster/associations" + ], + "summary": "Maps a consumption-domain zone to the specified vSphere clusters. If a cluster or a subset of specified clusters are already members of the specified zone, the result is success for those clusters. This operation supports partial success, i.e., it is possible that a subset of the specified clusters get successfully associated with the specified zone but the association fails for a subset of clusters. The returned result will contain the details about only those clusters for which the association failed.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires Zone.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "zone", + "description": "Identifier of the zone to be mapped to the specified vSphere clusters.\nThe parameter must be an identifier for the resource type: vcenter.consumption_domains.Zone." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesClusterAssociationsAdd" + } + } + ], + "responses": { + "200": { + "description": "Status see #Status. If the operation failed, returns the reason of failures. There will be an error message indicating the identifier of the cluster for which the association failed and the reason of failure. The cluster identifiers that are not present in #Status will have been successfully associated.", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesClusterAssociationsStatus" + } + }, + "400": { + "description": "if more than one cluster or an empty set of clusters is specified.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the specified zone is not known to this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires Zones.Manage privilege. - Each resource of ClusterComputeResource referenced by the parameter clusters requires Zone.ObjectAttachable privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zones/cluster/{zone}/associations?action=remove": { + "post": { + "tags": [ + "consumption_domains/zones/cluster/associations" + ], + "summary": "Removes the mapping between the specified consumption-domain zone and vSphere clusters. If a cluster or a subset of specified clusters are not members of the specified zone, then the result is a success for those clusters. In order to remove the mapping between a zone and a cluster, there must not be any workload running in that zone because removing the mapping between a zone and a cluster could result in undefined behavior for the entities depending on this mapping to be present. This operation supports partial success, i.e., it is possible that the mapping gets successfully removed for a subset of the clusters but fails for another subset of the clusters. The returned result will contain the details about only those clusters for which the operation failed.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires Zone.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "zone", + "description": "Identifier of the zone for which the mapping needs to be removed.\nThe parameter must be an identifier for the resource type: vcenter.consumption_domains.Zone." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesClusterAssociationsRemove" + } + } + ], + "responses": { + "200": { + "description": "Status see #Status. If the operation failed, returns the reason of failures. There will be an error message indicating the identifier of the cluster for which the association removal failed and the reason of failure.", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesClusterAssociationsStatus" + } + }, + "404": { + "description": "if the specified zone is not known to this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is a workload running in the specified zone and depends on this zone's cluster associations to be present.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires Zones.Manage privilege. - Each resource of ClusterComputeResource referenced by the parameter clusters requires Zone.ObjectAttachable privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/consumption-domains/zones/{zone}": { + "get": { + "tags": [ + "consumption_domains/zones" + ], + "summary": "Returns the information about a specific zone.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "zone", + "description": "Identifier of the zone for which information should be retrieved.\nThe parameter must be an identifier for the resource type: vcenter.consumption_domains.Zone." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified zone.", + "schema": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesInfo" + } + }, + "404": { + "description": "if a zone with this identifier does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "consumption_domains/zones" + ], + "summary": "Deletes the zone with the specified identifier. In order to delete a zone, there must not be any workload running in that zone because deleting the zone without removing all the dependencies on that zone can cause undefined behavior for the entities depending on this zone to be present.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Zone.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "zone", + "description": "Identifier of the zone to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.consumption_domains.Zone." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if no zone with the specified identifier is found in this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if there is a workload running in the specified zone and depends on this zone to be present.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have all of the privileges described as follows: - The resource vcenter.consumption_domains.Zone referenced by the parameter zone requires Zones.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "when unexpected error is encountered.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/harbor": { + "post": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Creates a Harbor registry in the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.ManageRegistry. \n - The resource ClusterComputeResource referenced by the attribute Harbor.CreateSpec.cluster requires ContentLibrary.ManageClusterRegistryResource. \n - The resource SpsStorageProfile referenced by the attribute Harbor.StorageSpec.policy requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterContentRegistriesHarborCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified, creation is not idempotent." + } + ], + "responses": { + "201": { + "description": "Identifier of the deployed registry.\nThe result will be an identifier for the resource type: vcenter.content.Registry.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if spec contains any errors.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if resources/objects could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistry and/or CertificateAuthority.Manage privilege, or user does not have ContentLibrary.ManageClusterRegistryResource privilege on Harbor.CreateSpec.cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Returns basic information of all Harbor registries.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of basic information of all Harbor registries.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterContentRegistriesHarborSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/harbor/{registry}": { + "get": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Get detailed information of the Harbor registry.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "Information about the registry.", + "schema": { + "$ref": "#/definitions/VcenterContentRegistriesHarborInfo" + } + }, + "404": { + "description": "if a Harbor registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Delete the Harbor registry in the cluster. All Harbor projects, repositories and images will be deleted upon Harbor registry deletion.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistry.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if a registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistry privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/harbor/{registry}/projects": { + "post": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Creates a project in a Harbor registry using the supplied specification. In vSphere 7.0, a Harbor registry is deployed in a vSphere cluster with vSphere namespaces enabled. When a namespace is created, a project with same name as the namespace is created in the Harbor registry, so this operation should not be called.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the Registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsCreate" + } + } + ], + "responses": { + "201": { + "description": "Identifier of the newly created Harbor project.\nThe result will be an identifier for the resource type: vcenter.content.Registry.Harbor.Project.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if a project with the same name already exists in the registry. In vSphere 7.0, the existing project could have been created automatically when a namespace with the same name is created.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "404": { + "description": "if a registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Returns basic information of all projects in a Harbor registry.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "The list of summary information of all Harbor projects.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsSummary" + } + } + }, + "404": { + "description": "if registry cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/harbor/{registry}/projects/{project}": { + "get": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Returns detailed information about the specified Harbor project.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified Harbor project.", + "schema": { + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsInfo" + } + }, + "404": { + "description": "if registry or project cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Deletes the specified project from Harbor registry. Repositories and images in the project will be removed upon project deletion. Storage space of deleted images in the project will be reclaimed through next scheduled Harbor registry garbage collection. In vSphere 7.0, a Harbor registry is deployed in a vSphere cluster with vSphere namespaces enabled. When a namespace is deleted, a project with same name as the namespace is deleted from the Harbor registry, so this operation should not be called.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if Harbor registry is being deleted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if registry or project cannot be found. In vSphere 7.0, the existing project could have been deleted automatically when a namespace with the same name is deleted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/harbor/{registry}/projects/{project}?action=purge": { + "post": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Remove all repositories, images and members in the project. Storage space of deleted images in the project will be reclaimed through next scheduled Harbor registry garbage collection.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if registry or project cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if Harbor registry is being deleted or the project is not in READY status.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "purge", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/content/registries/{registry}/health": { + "get": { + "tags": [ + "content/registries/health" + ], + "summary": "Returns the health information of a container registry in the vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "Health information of the registry.", + "schema": { + "$ref": "#/definitions/VcenterContentRegistriesHealthInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the registry does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is not a member of the Administrators", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/hosts/{host}/kms/providers": { + "get": { + "tags": [ + "crypto_manager/hosts/kms/providers" + ], + "summary": "List the available providers on a host.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Cryptographer.ReadKeyServersInfo.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "query", + "name": "providers", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Provider identifiers.\nIf unset or empty, the result will not be filtered by provider identifier.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.crypto_manager.kms.provider." + }, + { + "in": "query", + "name": "health", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "description": "Provider health status.\nIf unset or empty, the result will not be filtered by provider health status." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "NATIVE", + "TRUST_AUTHORITY" + ] + }, + "description": "Provider types.\nIf unset or empty, the result will not be filtered by provider type." + } + ], + "responses": { + "200": { + "description": "Summary of providers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the host identifier is empty or the FilterSpec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/hosts/{host}/kms/providers/{provider}": { + "get": { + "tags": [ + "crypto_manager/hosts/kms/providers" + ], + "summary": "Get a provider on a host.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Cryptographer.ReadKeyServersInfo.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Host identifier.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Provider identifier.\nThe parameter must be an identifier for the resource type: vcenter.crypto_manager.kms.provider." + } + ], + "responses": { + "200": { + "description": "Information of the provider.", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the host identifier is empty or the provider identifier is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the provider or the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/kms/providers": { + "post": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Add a new provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ManageKeyServers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if creating a provider of the type is not supported.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Return a list of providers. \n\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ReadKeyServersInfo.", + "parameters": [ + { + "in": "query", + "name": "providers", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Provider identifiers.\nIf unset or empty, the result will not be filtered by provider identifier.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.crypto_manager.kms.provider." + }, + { + "in": "query", + "name": "health", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "description": "Provider health status.\nIf unset or empty, the result will not be filtered by provider health status." + } + ], + "responses": { + "200": { + "description": "Summary of providers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the spec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/kms/providers/{provider}": { + "get": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Return information about a provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ReadKeyServersInfo.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.crypto_manager.kms.provider." + } + ], + "responses": { + "200": { + "description": "Information of the provider.", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provider identifier is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Update an existing provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ManageKeyServers.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.crypto_manager.kms.provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provider's type does not allow updates.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Remove a provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ManageKeyServers.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.crypto_manager.kms.provider." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provider's type does not allow deletion.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/kms/providers?action=export": { + "post": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Export provider configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ManageKeyServers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersExport" + } + } + ], + "responses": { + "200": { + "description": "ExportResult.", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersExportResult" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provider's type does not allow export.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the provider with the identifier is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/crypto-manager/kms/providers?action=import": { + "post": { + "tags": [ + "crypto_manager/kms/providers" + ], + "summary": "Import provider configuration.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Cryptographer.ManageKeyServers.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersImportProvider" + } + } + ], + "responses": { + "200": { + "description": "importResult ImportResult.", + "schema": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersImportResult" + } + }, + "400": { + "description": "if the config or the password is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "import_provider", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/datacenter": { + "post": { + "tags": [ + "datacenter" + ], + "summary": "Create a new datacenter in the vCenter inventory", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDatacenterCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the newly created datacenter\nThe result will be an identifier for the resource type: Datacenter.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the datacenter name is empty or invalid as per the underlying implementation.\nif the folder is not specified and the system cannot choose a suitable one.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the datacenter folder cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "datacenter" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) datacenters in vCenter matching the Datacenter.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of datacenters that can match the filter.\nIf unset or empty, datacenters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that datacenters must have to match the filter (see Datacenter.Info.name).\nIf unset or empty, datacenters with any name match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the datacenters for the datacenter to match the filter.\nIf unset or empty, datacenters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the datacenters matching the Datacenter.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDatacenterSummary" + } + } + }, + "500": { + "description": "if more than 1000 datacenters match the Datacenter.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/datacenter/{datacenter}": { + "get": { + "tags": [ + "datacenter" + ], + "summary": "Retrieves information about the datacenter corresponding to datacenter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datacenter", + "description": "Identifier of the datacenter.\nThe parameter must be an identifier for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Information about the datacenter associated with datacenter.", + "schema": { + "$ref": "#/definitions/VcenterDatacenterInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no datacenter associated with datacenter in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "datacenter" + ], + "summary": "Delete an empty datacenter from the vCenter Server", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datacenter", + "description": "Identifier of the datacenter to be deleted.\nThe parameter must be an identifier for the resource type: Datacenter." + }, + { + "required": false, + "type": "boolean", + "in": "query", + "name": "force", + "description": "If true, delete the datacenter even if it is not empty.\nIf unset a ResourceInUse error will be reported if the datacenter is not empty. This is the equivalent of passing the value false." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no datacenter associated with datacenter in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the datacenter associated with datacenter is not empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/datastore": { + "get": { + "tags": [ + "datastore" + ], + "summary": "Returns information about at most 2500 visible (subject to permission checks) datastores in vCenter matching the Datastore.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "datastores", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of datastores that can match the filter.\nIf unset or empty, datastores with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datastore. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datastore." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that datastores must have to match the filter (see Datastore.Info.name).\nIf unset or empty, datastores with any name match the filter." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "VMFS", + "NFS", + "NFS41", + "CIFS", + "VSAN", + "VFFS", + "VVOL" + ] + }, + "description": "Types that datastores must have to match the filter (see Datastore.Summary.type).\nIf unset or empty, datastores with any type match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the datastores matching the Datastore.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDatastoreSummary" + } + } + }, + "400": { + "description": "if the Datastore.FilterSpec.types field contains a value that is not supported by the server.\nif the Datastore.FilterSpec.types field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 2500 datastores match the Datastore.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/datastore/{datastore}": { + "get": { + "tags": [ + "datastore" + ], + "summary": "Retrieves information about the datastore indicated by datastore.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datastore", + "description": "Identifier of the datastore for which information should be retrieved.\nThe parameter must be an identifier for the resource type: Datastore." + } + ], + "responses": { + "200": { + "description": "Information about the datastore associated with datastore.", + "schema": { + "$ref": "#/definitions/VcenterDatastoreInfo" + } + }, + "404": { + "description": "if the datastore indicated by datastore does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/datastore/{datastore}/default-policy": { + "get": { + "tags": [ + "datastore/default_policy" + ], + "summary": "Returns the identifier of the current default storage policy associated with the specified datastore.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datastore", + "description": "Identifier of the datastore for which the default policy is requested.\nThe parameter must be an identifier for the resource type: Datastore." + } + ], + "responses": { + "200": { + "description": "Identifier of the default storage policy associated with the specified datastore.\nthis field is unset if there is no default storage policy associated with the datastore.\nThe result will be an identifier for the resource type: vcenter.StoragePolicy.", + "schema": { + "required": false, + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the specified datastore does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required priveleges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment": { + "get": { + "tags": [ + "deployment" + ], + "summary": "Get the current status of the appliance deployment.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the appliance.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "if appliance state cannot be determined.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/history": { + "get": { + "tags": [ + "deployment/import_history" + ], + "summary": "Get the current status of the vCenter historical data import.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the historical data import status.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentImportHistoryInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/history?action=cancel": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Cancels the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if vCenter historical data import task is already canceled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/history?action=pause": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Pauses the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if vCenter historical data import task is already paused", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "pause", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/history?action=resume": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Resumes the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if vCenter historical data import task is already resumed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "resume", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/history?action=start": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Creates and starts task for importing vCenter historical data.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentImportHistoryStart" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if vCenter historical data import task has already being started.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install": { + "get": { + "tags": [ + "deployment/install" + ], + "summary": "Get the parameters used to configure the ongoing appliance installation.", + "parameters": [], + "responses": { + "200": { + "description": "InstallSpec parameters being used to configure appliance install.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallInstallSpec" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if appliance is not in INSTALL_PROGRESS state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install/initial-config/remote-psc/thumbprint": { + "get": { + "tags": [ + "deployment/install/initial_config/remote_psc/thumbprint" + ], + "summary": "Gets the SHA1 thumbprint of the remote PSC.", + "parameters": [ + { + "in": "query", + "name": "address", + "type": "string", + "description": "The IP address or DNS resolvable name of the remote PSC.", + "required": true + }, + { + "in": "query", + "name": "https_port", + "type": "integer", + "description": "The HTTPS port of the remote PSC.\nIf unset, port 443 will be used.", + "required": false + } + ], + "responses": { + "200": { + "description": "The thumbprint of the specified remote PSC", + "schema": { + "type": "string" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "on exception.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install/psc/replicated?action=check": { + "post": { + "tags": [ + "deployment/install/psc/replicated" + ], + "summary": "Checks whether the provided remote PSC is reachable and can be replicated.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallPscReplicatedCheck" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring PSC to replicate with an external existing PSC.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install/psc/standalone?action=check": { + "post": { + "tags": [ + "deployment/install/psc/standalone" + ], + "summary": "Checks that the information to configure a non-replicated PSC satisfies the requirements.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallPscStandaloneCheck" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install/remote-psc?action=check": { + "post": { + "tags": [ + "deployment/install/remote_psc" + ], + "summary": "Checks whether the remote PSC is reachable and the deployed vCenter Server can be registered with the remote PSC.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallRemotePscCheck" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install?action=cancel": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Cancel the appliance installation that is in progress.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install?action=check": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Run sanity checks using the InstallSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallCheck" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring PSC to replicate with an external existing PSC.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/install?action=start": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Start the appliance installation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentInstallStart" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif the partner PSC credentials are not valid when configuring PSC to replicate with partner PSC.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/migrate": { + "get": { + "tags": [ + "deployment/migrate" + ], + "summary": "Get the MigrateSpec parameters used to configure the ongoing appliance migration.", + "parameters": [], + "responses": { + "200": { + "description": "MigrateSpec parameters being used to configure appliance migration.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentMigrateMigrateSpec" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if appliance is not in MIGRATE_PROGRESS state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/migrate/active-directory?action=check": { + "post": { + "tags": [ + "deployment/migrate/active_directory" + ], + "summary": "Checks whether the provided Active Directory user has permission to join the migrated vCenter Server appliance to the domain.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentMigrateActiveDirectoryCheck" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/migrate?action=cancel": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Cancel the appliance migration that is in progress.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/migrate?action=check": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Run sanity checks using the MigrateSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentMigrateCheck" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif migration assistant credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/migrate?action=start": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Start the appliance migration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentMigrateStart" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif migration assistant credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/question": { + "get": { + "tags": [ + "deployment/question" + ], + "summary": "Get the question that was raised during the configuration.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the question.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentQuestionInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if questions could not be retrieved although the appliance is in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/question?action=answer": { + "post": { + "tags": [ + "deployment/question" + ], + "summary": "Supply answer to the raised question.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentQuestionAnswer" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is NOT in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if answer file could not be created.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + } + }, + "operationId": "answer", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/upgrade": { + "get": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Get the UpgradeSpec parameters used to configure the ongoing appliance upgrade.", + "parameters": [], + "responses": { + "200": { + "description": "UpgradeSpec parameters being used to configure appliance upgrade.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentUpgradeUpgradeSpec" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if appliance is not in UPGRADE_PROGRESS state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/upgrade?action=cancel": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Cancel the appliance upgrade that is in progress.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/upgrade?action=check": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Run sanity checks using the UpgradeSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentUpgradeCheck" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/VcenterDeploymentCheckInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif source credentials are not valid.\nif source container credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment/upgrade?action=start": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Start the appliance installation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterDeploymentUpgradeStart" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif source credentials are not valid.\nif source container credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/deployment?action=rollback": { + "post": { + "tags": [ + "deployment" + ], + "summary": "Rollback a failed appliance so it can be configured once again.", + "parameters": [], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the appliance is not in FAILED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "rollback", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/environment-browser/config-option-descriptors": { + "get": { + "tags": [ + "environment_browser/config_option_descriptors" + ], + "summary": "Returns the list of ConfigOptionDescriptors available for the specified filter.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the attribute ConfigOptionDescriptors.ListParams.clusters requires System.View.", + "parameters": [ + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "A set of Cluster IDs that specify for which Clusters the configuration option descriptors are requested.\nif unset or empty an error will be returned. Ability to pass unset value is left for future expansion.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "a list of config option keys in ConfigOptionDescriptors.Summary objects.", + "schema": { + "$ref": "#/definitions/VcenterEnvironmentBrowserConfigOptionDescriptorsListResult" + } + }, + "500": { + "description": "if the system encounters an unexpected error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if an invalid filter is supplied.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if object identifiers in the spec cannot be matched.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges for all the specified clusters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/environment-browser/config-options": { + "get": { + "tags": [ + "environment_browser/config_options" + ], + "summary": "Query for the vim.vm.ConfigOption from the hosts in the specified clusters. The filter spec may be optionally used to narrow the result to a specific config option by the key returned from ConfigOptionDescriptors.list as well as one or more guest OS identifier(s). If the config option key is not specified, then the default config option for the specified cluster(s) is returned. \n This operation requires additional api_release request parameter which must be used to guarantee compatibility with future releases of the API. Consult the vSphere Automation SDKs Programming Guide for more information. \n\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the attribute ConfigOptions.GetParams.clusters requires System.View.", + "parameters": [ + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "The clusters whose config option are requested.\nif unset or empty an InvalidArgument error is returned. unset is allowed for future extensibility e.g. generating options for hosts, VM etc.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "config_option", + "type": "string", + "description": "Query for a specific config option with the key obtained from ConfigOptionDescriptors.list.\nif unset then the default config option will be returned.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.config_option. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.config_option." + }, + { + "in": "query", + "name": "guest_ids", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Filter the set of Guest OSs for which descriptors will be returned.\nif unset all guest OS descriptors are returned." + } + ], + "responses": { + "200": { + "description": "the VI/JSON representation of the {@ConfigOption} (vim.vm.ConfigOption) object. If none of the specified clusters have any available hosts, or if the information requested in filters is not available in any of the the specified clusters, then null is returned.", + "schema": { + "$ref": "#/definitions/VcenterEnvironmentBrowserConfigOptionsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if invalid input is passed like invalid key, OS or cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if at least one of the specified clusters cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges for all the specified clusters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/environment-browser/config-targets": { + "get": { + "tags": [ + "environment_browser/config_targets" + ], + "summary": "Queries for information about a specific target, a \"physical\" device that can be used to back virtual devices. \n The returned vim.vm.ConfigTarget specifies the set of values that can be used for device backings to connect the virtual machine to physical, or logical, host devices. \n \n This operation requires additional api_release request parameter which must be used to guarantee compatibility with future releases of the API. Consult the vSphere Automation SDKs Programming Guide for more information. \n\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the attribute ConfigTargets.GetParams.clusters requires System.View.", + "parameters": [ + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "A set of Cluster IDs that specify for which Clusters the configuration target is requested.\nif unset or empty an error will be returned. Ability to pass unset value is left for future expansion.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "filter", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "DATASTORES", + "NETWORKS", + "DEVICES", + "DISKS" + ] + }, + "description": "Specify a filter to narrow the results.\nif unset or empty, all information for a given config target is returned." + } + ], + "responses": { + "200": { + "description": "The VI/JSON representation of ConfigTarget (vim.vm.ConfigTarget) with the devices from the specified clusters.", + "schema": { + "$ref": "#/definitions/VcenterEnvironmentBrowserConfigTargetsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if invalid search criteria or filter is provided", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if one or more of the specified clusters cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges for all the specified clusters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/folder": { + "get": { + "tags": [ + "folder" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) folders in vCenter matching the Folder.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of folders that can match the filter.\nIf unset or empty, folders with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that folders must have to match the filter (see Folder.Summary.name).\nIf unset or empty, folders with any name match the filter." + }, + { + "in": "query", + "name": "type", + "type": "string", + "enum": [ + "DATACENTER", + "DATASTORE", + "HOST", + "NETWORK", + "VIRTUAL_MACHINE" + ], + "description": "The Folder.Type enumerated type defines the type of a vCenter Server folder. The type of a folder determines what what kinds of children can be contained in the folder." + }, + { + "in": "query", + "name": "parent_folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the folders matching the Folder.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterFolderSummary" + } + } + }, + "400": { + "description": "if the Folder.FilterSpec.type field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 1000 folders match the Folder.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/guest/customization-specs": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Creates a customization specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsCreate" + } + } + ], + "responses": { + "201": { + "description": "The name of the customization specification that is created.\nThe result will be an identifier for the resource type: vcenter.guest.CustomizationSpec.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the specified specification is not a valid one.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) guest customization specifications in vCenter matching the CustomizationSpecs.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.name).\nIf unset or empty, guest customization specifications with any name match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "query", + "name": "OS_type", + "type": "string", + "enum": [ + "WINDOWS", + "LINUX" + ], + "description": "The CustomizationSpecs.OsType enumerated type defines the types of guest operating systems for which guest customization is supported." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the guest customization specifications matching the CustomizationSpecs.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsSummary" + } + } + }, + "400": { + "description": "if the CustomizationSpecs.FilterSpec.os-type field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 1000 guest customization specifications match the CustomizationSpecs.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/guest/customization-specs/{name}": { + "put": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Sets an existing specification, possibly after retrieving (by using CustomizationSpecs.get) and editing it.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that needs to be set.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "If, based on the item's fingerprint value, the set process detects that the specification has changed since its retrieval, then the operation throws InvalidArgument exception to warn the client that he might overwrite another client's change.\nIf the settings in spec are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns the guest customization specification from vCenter with the specified identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + } + ], + "responses": { + "200": { + "description": "A customization spec with the specified identifier.", + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsInfo" + } + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Deletes a customization specification with the specified identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that needs to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/guest/customization-specs/{name}?action=export": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns the content of the customization specification in the specified format. Note that any passwords in the customization specification will be set to blank values during the export operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that has to be returned.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsExport" + } + } + ], + "responses": { + "200": { + "description": "The string representation of the customization specification in the specified format.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If value of format is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the customization specification is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/guest/customization-specs?action=import": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Converts a well formatted string to a CustomizationSpecs.CreateSpec. The resulting object can be passed to CustomizationSpecs.create operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsImportSpecification" + } + } + ], + "responses": { + "200": { + "description": "A proper specification of type CustomizationSpecs.CreateSpec", + "schema": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsCreateSpec" + } + }, + "400": { + "description": "if the specified content cannot be properly converted into a proper valid CustomizationSpecs.CreateSpec object.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "import_specification", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host": { + "post": { + "tags": [ + "host" + ], + "summary": "Add a new standalone host in the vCenter inventory. The newly connected host will be in connected state. The vCenter Server will verify the SSL certificate before adding the host to its inventory. In the case where the SSL certificate cannot be verified because the Certificate Authority is not recognized or the certificate is self signed, the vCenter Server will fall back to thumbprint verification mode as defined by Host.CreateSpec.ThumbprintVerification.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterHostCreate" + } + } + ], + "responses": { + "201": { + "description": "The newly created identifier of the host in vCenter.\nThe result will be an identifier for the resource type: HostSystem.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the software version on the host is not supported.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if there are not enough licenses to add the host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if there is no folder associated with the Host.CreateSpec.folder field in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user name or password for the administration account on the host are invalid.\nif the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "host" + ], + "summary": "Returns information about at most 2500 visible (subject to permission checks) hosts in vCenter matching the Host.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of hosts that can match the filter.\nIf unset or empty, hosts with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that hosts must have to match the filter (see Host.Summary.name).\nIf unset or empty, hosts with any name match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "standalone", + "type": "boolean", + "description": "If true, only hosts that are not part of a cluster can match the filter, and if false, only hosts that are are part of a cluster can match the filter.\nIf unset Hosts can match filter independent of whether they are part of a cluster or not. If this field is true and Host.FilterSpec.clusters os not empty, no hosts will match the filter." + }, + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any cluster and hosts that are not in a cluster match the filter. If this field is not empty and Host.FilterSpec.standalone is true, no hosts will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "connection_states", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "CONNECTED", + "DISCONNECTED", + "NOT_RESPONDING" + ] + }, + "description": "Connection states that a host must be in to match the filter (see Host.Summary.connection-state.\nIf unset or empty, hosts in any connection state match the filter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the hosts matching the Host.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterHostSummary" + } + } + }, + "400": { + "description": "if the Host.FilterSpec.connection-states field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 2500 hosts match the Host.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host/{host}": { + "delete": { + "tags": [ + "host" + ], + "summary": "Remove a standalone host from the vCenter Server.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be deleted.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the host associated with host is in a vCenter cluster", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host/{host}/entropy/external-pool": { + "get": { + "tags": [ + "host/entropy/external_pool" + ], + "summary": "Retrieves the entropy pool details of a host including current entropy level.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Entropy.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "Entropy details of a host.", + "schema": { + "$ref": "#/definitions/VcenterHostEntropyExternalPoolInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the host is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host/{host}/entropy/external-pool?action=add": { + "post": { + "tags": [ + "host/entropy/external_pool" + ], + "summary": "Adds additional entropy to the pool. This API will accept maximum (ExternalPool.Info.capacity - ExternalPool.Info.currently-available) bytes of entropy. Extra entropy data sent will be discarded.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Entropy.Write.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterHostEntropyExternalPoolAdd" + } + } + ], + "responses": { + "200": { + "description": "Result of ExternalPool.add operation.", + "schema": { + "$ref": "#/definitions/VcenterHostEntropyExternalPoolAddResult" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the host is not available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host/{host}?action=connect": { + "post": { + "tags": [ + "host" + ], + "summary": "Connect to the host corresponding to host previously added to the vCenter server.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be reconnected.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the host associated with host is already connected.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/host/{host}?action=disconnect": { + "post": { + "tags": [ + "host" + ], + "summary": "Disconnect the host corresponding to host from the vCenter server", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be disconnected.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the host associated with host is already disconnected.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/identity/broker/tenants/operator-client": { + "get": { + "tags": [ + "identity/broker/tenants/operator_client" + ], + "summary": "Return the operator client token info in Broker. The operator client was created at bootstrap or installation of broker. This token can be used to manage tenant entity APIs.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [], + "responses": { + "200": { + "description": "TokenInfo structure that contains a newly issued operator client token.", + "schema": { + "$ref": "#/definitions/VcenterIdentityBrokerTenantsTokenInfo" + } + }, + "500": { + "description": "if any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if no operator client details found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if not authorized to invoke the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/identity/broker/tenants/{tenant}/admin-client": { + "get": { + "tags": [ + "identity/broker/tenants/admin_client" + ], + "summary": "Returns the tenant admin client token info associated with pre-configured tenant(s) owned by vcenter trustmanagment service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "tenant", + "description": "The tenant name for which the admin client token needs to be returned.\nThe parameter must be an identifier for the resource type: vcenter.identity.broker.tenant." + } + ], + "responses": { + "200": { + "description": "TokenInfo structure that contains a newly issued tenant admin client token.", + "schema": { + "$ref": "#/definitions/VcenterIdentityBrokerTenantsTokenInfo" + } + }, + "500": { + "description": "if any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if no tenant owned by vcenter trustmanagment service, with the input parameter found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if not authorized to invoke the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/identity/providers": { + "post": { + "tags": [ + "identity/providers" + ], + "summary": "Create a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Create and VcIdentityProviders.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterIdentityProvidersCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the created identity provider.\nThe result will be an identifier for the resource type: vcenter.identity.Providers.", + "schema": { + "type": "string" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if provider exists for provider ID in given spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + } + }, + "operationId": "create" + }, + "get": { + "tags": [ + "identity/providers" + ], + "summary": "Retrieve all identity providers.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Read and VcIdentityProviders.Manage.", + "parameters": [], + "responses": { + "200": { + "description": "Commonly used information about the identity providers.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterIdentityProvidersSummary" + } + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/identity/providers/{provider}": { + "get": { + "tags": [ + "identity/providers" + ], + "summary": "Retrieve detailed information of the specified identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Read and VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + } + ], + "responses": { + "200": { + "description": "Detailed information of the specified identity provider.", + "schema": { + "$ref": "#/definitions/VcenterIdentityProvidersInfo" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get" + }, + "patch": { + "tags": [ + "identity/providers" + ], + "summary": "Update a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider to update\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterIdentityProvidersUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if invalid arguments are provided in updateSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "update" + }, + "delete": { + "tags": [ + "identity/providers" + ], + "summary": "Delete a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider to delete\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + } + ], + "responses": { + "204": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "delete" + } + }, + "/api/vcenter/inventory/datastore": { + "get": { + "tags": [ + "inventory/datastore" + ], + "summary": "Returns datastore information for the specified datastores. The key in the result map is the datastore identifier and the value in the map is the datastore information.", + "parameters": [ + { + "type": "array", + "items": { + "type": "string" + }, + "required": true, + "in": "query", + "name": "datastores", + "description": "Identifiers of the datastores for which information will be returned.\nThe parameter must contain identifiers for the resource type: Datastore." + } + ], + "responses": { + "200": { + "description": "Datastore information for the specified datastores. The key in the result map is the datastore identifier and the value in the map is the datastore information.\nThe key in the result map will be an identifier for the resource type: Datastore.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterInventoryDatastoreInfo" + } + } + }, + "404": { + "description": "if no datastore can be found for one or more of the datastore identifiers in datastores", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/inventory/network": { + "get": { + "tags": [ + "inventory/network" + ], + "summary": "Returns network information for the specified vCenter Server networks. The key in the result map is the network identifier and the value in the map is the network information.", + "parameters": [ + { + "type": "array", + "items": { + "type": "string" + }, + "required": true, + "in": "query", + "name": "networks", + "description": "Identifiers of the vCenter Server networks for which information will be returned.\nThe parameter must contain identifiers for the resource type: Network." + } + ], + "responses": { + "200": { + "description": "Network information for the specified vCenter Server networks. The key in the result map is the network identifier and the value in the map is the network information.\nThe key in the result map will be an identifier for the resource type: Network.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterInventoryNetworkInfo" + } + } + }, + "404": { + "description": "if no datastore can be found for one or more of the vCenter Server network identifiers in networks", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/iso/image?action=mount": { + "post": { + "tags": [ + "iso/image" + ], + "summary": "Mounts an ISO image from a content library on a virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Config.AddRemoveDevice. \n - The resource content.library.Item referenced by the parameter libraryItem requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterIsoImageMount" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the newly created virtual CD-ROM backed by the specified ISO image.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "If either vm or the libraryItem is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "When the operation is not allowed on the virtual machine in its current state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + } + }, + "operationId": "mount", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/iso/image?action=unmount": { + "post": { + "tags": [ + "iso/image" + ], + "summary": "Unmounts a previously mounted CD-ROM using an ISO image as a backing.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Config.AddRemoveDevice. \n - The resource vcenter.vm.hardware.Cdrom referenced by the parameter cdrom requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterIsoImageUnmount" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "If the virtual machine identified by vm is not found or the cdrom does not identify a virtual CD-ROM in the virtual machine.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "When the operation is not allowed on the virtual machine in its current state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "unmount", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/discovery/associated-products": { + "post": { + "tags": [ + "lcm/discovery/associated_products" + ], + "summary": "Associates a VMware product with vCenter Server manually. The product must be taken from the product catalog API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterLcmDiscoveryAssociatedProductsCreate" + } + } + ], + "responses": { + "201": { + "description": "Identifier of the newly-added product.\nThe result will be an identifier for the resource type: vcenter.lcm.product.", + "schema": { + "type": "string" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the spec argument is not allowed", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "lcm/discovery/associated_products" + ], + "summary": "Retrieves a list of all associated VMware product deployments with vCenter Server in the environment. The list contains both product deployments discovered automatically and deployments registered manually through the API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of all the registered products with vCenter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmDiscoveryProduct" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/discovery/associated-products/{product}": { + "get": { + "tags": [ + "lcm/discovery/associated_products" + ], + "summary": "Returns the detailed information of a product associated with vCenter Server.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "product", + "description": "An identifier of the product to be modified.\nThe parameter must be an identifier for the resource type: vcenter.lcm.product." + } + ], + "responses": { + "200": { + "description": "Product details.", + "schema": { + "$ref": "#/definitions/VcenterLcmDiscoveryProduct" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no record associated with product in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "lcm/discovery/associated_products" + ], + "summary": "Modifies a VMware product associated with vCenter Server which was added manually. Automatically discovered VMware products cannot be modified.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "product", + "description": "An id of the product to be modified.\nThe parameter must be an identifier for the resource type: vcenter.lcm.product." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterLcmDiscoveryAssociatedProductsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the spec argument is not allowed", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If there is no record associated with product in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "lcm/discovery/associated_products" + ], + "summary": "Deletes or dissociates a VMware product associated with vCenter Server which was added manually. Automatically discovered VMware products cannot be deleted or dissociated.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "product", + "description": "An id of the product to be removed.\nThe parameter must be an identifier for the resource type: vcenter.lcm.product." + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no record associated with product in the system database.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/discovery/interop-report?vmw-task=true": { + "post": { + "tags": [ + "lcm/discovery/interop_report" + ], + "summary": "Creates interoperability report between a vCenter Server release version and all registered products with the vCenter Server instance. \n The result of this operation can be queried by calling the cis.Tasks#get operation where task is the response of this operation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterLcmDiscoveryInteropReportCreateTask" + } + } + ], + "responses": { + "202": { + "description": "The interoperability report.", + "schema": { + "type": "string" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/discovery/product-catalog": { + "get": { + "tags": [ + "lcm/discovery/product_catalog" + ], + "summary": "Retrieves a list of all VMware products that can be associated with vCenter Server.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [], + "responses": { + "200": { + "description": "List of all the VMware products which can be associated with vCenter Server", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmDiscoveryProductCatalogSummary" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/reports/{report}": { + "get": { + "tags": [ + "lcm/reports" + ], + "summary": "Returns the location Reports.Location information for downloading the report for the specified file name. \n Retrieving a report involves two steps: \n\n - Step 1: Invoke the Reports.get operation to provision a token and a URI.\n - Step 2: Make an HTTP GET request by using the URI and the token returned in step 1 to retrieve the report.\n \n The HTTP GET request will: \n\n - Return 401 (Not Authorized) if the download URI is recognized, but the token is invalid, 404 if the URL is not recognized otherwise return 200 (OK)\n - Provide the CSV contents as the output of the request. The API accepts the file name as input, reads the contents of that CSV file, and returns this text as the result of the API. \n \nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "report", + "description": "The parameter must be an identifier for the resource type: vcenter.lcm.report." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VcenterLcmReportsLocation" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "If there is no file associated with report in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If there is some unknown internal error. The accompanying error message will give more details about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/update/pending": { + "get": { + "tags": [ + "lcm/update/pending" + ], + "summary": "Lists all available minor and major updates.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [], + "responses": { + "200": { + "description": "Information about the pending patch/updates for the given vCenter server", + "schema": { + "$ref": "#/definitions/VcenterLcmUpdatePendingListResult" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "if there is some unknown internal error. The accompanying error message will give more details about the error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/update/pending/{version}": { + "get": { + "tags": [ + "lcm/update/pending" + ], + "summary": "Gets detailed update information.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcLifecycle.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "A version identified the update\nThe parameter must be an identifier for the resource type: vcenter.lcm.update.pending." + } + ], + "responses": { + "200": { + "description": "A detailed information about the particular vCenter patch/update", + "schema": { + "$ref": "#/definitions/VcenterLcmUpdatePendingInfo" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "if there is no pending update assosiated with the version in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if there is some unknown internal error. The accompanying error message will give more details about the error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/lcm/update/pending/{version}/precheck-report?vmw-task=true": { + "post": { + "tags": [ + "lcm/update/precheck_report" + ], + "summary": "Creates a vCenter Server pre-update compatibility check report for the pending update version. The report can be exported and downloaded in CSV format. \n The result of this operation can be queried by calling the cis.Tasks#get operation where task is the response of this operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Pending update version for which pre-update compatibility check will be executed.\nThe parameter must be an identifier for the resource type: vcenter.lcm.update.pending." + } + ], + "responses": { + "202": { + "description": "The precheck report, which contains a link to download the CSV report as well", + "schema": { + "type": "string" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "404": { + "description": "if there is no pending update assosiated with the version in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if a precheck is already in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if there is some unknown internal error. The accompanying error message will give more details about the error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/capability": { + "get": { + "tags": [ + "namespace_management/hosts_config" + ], + "summary": "Returns support and licensing information about hosts under a VC.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information about vSphere Namespaces support and licensing.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementHostsConfigInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/cluster-compatibility": { + "get": { + "tags": [ + "namespace_management/cluster_compatibility" + ], + "summary": "Returns Namespaces compatibility information for all vSphere clusters in the vCenter Server matching the ClusterCompatibility.FilterSpec. The result contains only visible (subject to permission checks) clusters.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Set this flag to true to only list vSphere clusters that are currently compatible with the Namespaces feature. If set to false, both compatible and incompatible vSphere clusters will be listed.\nIf unset, both compatible and incompatible vSphere clusters will be listed." + }, + { + "in": "query", + "name": "network_provider", + "type": "string", + "enum": [ + "NSXT_CONTAINER_PLUGIN", + "VSPHERE_NETWORK" + ], + "description": "Identifies the network plugin that cluster networking functionalities for this vSphere Namespaces Cluster." + } + ], + "responses": { + "200": { + "description": "Namespaces compatibility information for the clusters matching the the ClusterCompatibility.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterCompatibilitySummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if filter contains any error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege on the vSphere clusters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/cluster-compatibility/v2": { + "get": { + "tags": [ + "namespace_management/cluster_compatibility" + ], + "summary": "Returns Namespaces compatibility information for all vSphere clusters that match the #FilterSpecV2 and are associated with the vSphere Zones in the vCenter Server that match the #ZoneFilterSpec. The result contains only visible (subject to permission checks) clusters.", + "parameters": [ + { + "in": "query", + "name": "zones", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "A list of vSphere Zone identifiers which will be used to filter vSphere Zones that correspond to this specific set of identifiers.\nIf unset or empty, results will not be filtered for specific vSphere Zone identifiers." + }, + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Set this flag to true to only return vSphere clusters that are currently compatible with the Namespaces feature. If set to false, both compatible and incompatible vSphere clusters will be returned.\nIf unset, both compatible and incompatible vSphere clusters will be listed." + }, + { + "in": "query", + "name": "network_provider", + "type": "string", + "enum": [ + "NSXT", + "VSPHERE" + ], + "description": "NetworkType enumerates types of networks supported by the Supervisor for workloads." + } + ], + "responses": { + "200": { + "description": "Namespaces compatibility information for vSphere Zones that match the #ZoneFilterSpec and the vSphere clusters associated with them that match the #FilterSpecV2.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterCompatibilityZoneCompatibilityInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if zoneFilter or clusterFilter contain any errors.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege on the vSphere clusters associated with the vSphere Zones.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list_v2", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/cluster-size-info": { + "get": { + "tags": [ + "namespace_management/cluster_size_info" + ], + "summary": "Get information about the default values associated with various sizes.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information for each size.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterSizeInfoInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters": { + "get": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Returns information about all clusters on which vSphere Namespaces are enabled on this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [], + "responses": { + "200": { + "description": "List of summary of all clusters with vSphere Namespaces enabled.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}": { + "put": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Set a new configuration on the cluster object. The specified configuration is applied in entirety and will replace the current configuration fully.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces is enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor cluster's hosts are not configured with sufficient resources for the new Kubernetes API Server size.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the Supervisor cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Returns information about a specific cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the desired state of the specified cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersInfo" + } + }, + "404": { + "description": "if cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the specified cluster does not have vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Update configuration on the cluster object. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces is enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor cluster's hosts are not configured with sufficient resources for the new Kubernetes API Server size.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the Supervisor cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/load-balancers": { + "get": { + "tags": [ + "namespace_management/load_balancers" + ], + "summary": "Returns information about all load balancers associated with the given cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster the load balancers are associated with.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "List of summary of all load balancers associated with a clusters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the specified cluster does not have vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/load-balancers/{id}": { + "put": { + "tags": [ + "namespace_management/load_balancers" + ], + "summary": "Applies the entire load balancer spec to an existing load balancer configuration.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster the load balancer is associated with.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Identifier of the load balancer.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the specified cluster does not have vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if cluster or id cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/load_balancers" + ], + "summary": "Returns information LoadBalancers.Info about the load balancer associated with the given cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster the load balancer is associated with.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Identifier of the load balancer LoadBalancers.ConfigSpec.id.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig." + } + ], + "responses": { + "200": { + "description": "Information about load balancer associated with a cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster or id cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the specified cluster does not have vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/load_balancers" + ], + "summary": "Updates the load balancer configuration. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster the load balancer is associated with.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "id", + "description": "Identifier of the load balancer.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the specified cluster does not have vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if cluster or id cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/networks": { + "post": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Create a vSphere Namespaces network object associated with the given cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if spec contains NsxNetworkCreateSpec which is unsupported via create API.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Return information about all vSphere Namespaces networks in the cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the specified vSphere Namespaces network..", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksInfo" + } + } + }, + "404": { + "description": "if cluster or network could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/networks/{network}": { + "put": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Set a new configuration for the vSphere Namespaces network object associated with the given cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "network", + "description": "Identifier for the vSphere Namespaces network.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.Network." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the network is in use and the spec contains field values that are un-settable in such a case.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "if cluster or the network cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Return information about a specific vSphere Namespaces network.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "network", + "description": "Identifier for the vSphere Namespaces network.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.Network." + } + ], + "responses": { + "200": { + "description": "List of information about all vSphere Namespaces networks in the cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksInfo" + } + }, + "404": { + "description": "if cluster or network could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Update the configuration of the vSphere Namespaces network object associated with the given cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "network", + "description": "Identifier for the vSphere Namespaces network.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.Network." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the network is in use and the spec contains field values that are un-updatable in such a case.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "if cluster or the network cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/networks" + ], + "summary": "Delete the vSphere Namespaces object in the cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "network", + "description": "Identifier for the vSphere Namespaces network.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.Network." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster or network could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the network is associated with a Namespace.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/supervisor-services": { + "post": { + "tags": [ + "namespace_management/supervisor_services/cluster_supervisor_services" + ], + "summary": "Create a Supervisor Service on the specified vSphere Supervisor. This operation will apply the Supervisor Service version's service definition on the cluster. This operation is possible only when the Supervisor Service and Supervisor Service version are in the ACTIVATED state. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the Supervisor on which to create the service.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor doesn't support Supervisor Services, or if the Supervisor Service cannot be created in the current state, e.g. the supervisor service version is in the DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the specified cluster with ID cluster or Supervisor Service with the Supervisor Service ID defined in spec or version with the ID {param.name version} could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege on the specified cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisor_services/cluster_supervisor_services" + ], + "summary": "Return the summaries about all Supervisor Services on the specified vSphere Supervisor. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which to list the services.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The list of summaries of all Supervisor Services on the cluster.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor with the ID cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the Supervisor doesn't support Supervisor Services.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege on the specified cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/supervisor-services/{supervisor_service}": { + "put": { + "tags": [ + "namespace_management/supervisor_services/cluster_supervisor_services" + ], + "summary": "Set a new configuration to the specified Supervisor Service on the specified vSphere Supervisor. This operation will apply the new Supervisor Service version's service definition to the existing Supervisor Service on the cluster. This operation requires that the specified Supervisor Service is already installed in the specified Supervisor. Note that this operation doesn't interfere with the application instances that are created by the associated operator(s). So users should make sure the new version is still compatible with the existing application instances. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the Supervisor from which to delete the service.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor doesn't support Supervisor Services or the specified version is not in the ACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor with the ID cluster or Supervisor Service with the ID supervisorService or version with the ID {param.name version} could not be located, or the Supervisor Service does not exist on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege on the specified cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisor_services/cluster_supervisor_services" + ], + "summary": "Return information about the specific Supervisor Service on the specified vSphere Supervisor. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which to get the service.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "200": { + "description": "The information for the specified Supervisor Service on the specified cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor with the ID cluster or the Supervisor Service does not exist on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the Supervisor doesn't support Supervisor Services.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege on the specified cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/supervisor_services/cluster_supervisor_services" + ], + "summary": "Delete a Supervisor Service on the specified vSphere Supervisor. This operation will remove the Supervisor Service with the specified identifier from the cluster, by removing the corresponding namespace and deleting the operator(s) associated with the Supervisor Service. Note that this operation doesn't deal with the application instances that are created by the associated operator(s), so existing application instances could be orphaned if users don't clean or migrate them. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the Supervisor from which to delete the service.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor with the ID cluster or the Supervisor Service does not exist on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the Supervisor doesn't support Supervisor Services.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege on the specified cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/support-bundle": { + "post": { + "tags": [ + "namespace_management/support_bundle" + ], + "summary": "Returns the location SupportBundle.Location information for downloading the Namespaces-related support bundle for the specified cluster. \n Retrieving a support bundle involves two steps: \n\n - Step 1: Invoke operation to provision a token and a URI.\n - Step 2: Make an HTTP GET request using URI and one time used token returned in step 1 to generate the support bundle and return it.\n There can only be one valid token per cluster at any given time. If this operation is invoked again for the same cluster identifier while a token still valid, the API will return the same SupportBundle.Location response. \n The HTTP GET request will: \n\n - return 401 (Not Authorized) if the download URL is recognized, but the token is invalid.\n - otherwise return 200 (OK), mark the token used (invalidating it for any future use), open a application/tar download stream for the client, and start the bundle process. As part of its work, the API will orchestrate support bundling on the worker nodes of a cluster. If a failure occurs during the collection of support bundle from worker node, the API will not abort the request, but will log a warning and move on to processing other worker nodes' bundles. The API will only abort its operation if the content of the stream has been corrupted. When the API has to abort its operation (and the response stream), it will not provide any indication of failures to the client. The client will need to verify validity of the resultant file based on the format specified in the response's Content-Disposition header.\n \nif you do not have all of the privileges described as follows: \n - Operation execution requires Global.Diagnostics.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of cluster for which the Namespaces-related support bundle should be generated.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "201": { + "description": "the download location of the support bundle for the cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupportBundleLocation" + } + }, + "404": { + "description": "if the specified cluster is not registered on this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Global.Diagnostics privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/topology": { + "get": { + "tags": [ + "namespace_management/clusters/topology" + ], + "summary": "Queries the Supervisor ID that is currently running on the given vSphere Cluster ID, if there's any. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for a vSphere Cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Identifier of the Supervisor associated with the given vSphere Cluster.\nThe result will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.\nif the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the given vSphere Cluster does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.\nif the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege and the System.Read privilege on all vSphere Clusters hosting the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}/workload-resource-options": { + "get": { + "tags": [ + "namespace_management/namespace_resource_options" + ], + "summary": "Get the information about the objects used to set and update resource quota keys for version of Kubernetes running on {#link cluster}.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster hosting the namespace on which the resource quota needs to be set.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the structures representing the resource spec.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementNamespaceResourceOptionsInfo" + } + }, + "404": { + "description": "if cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the specified cluster is not enabled for Namespaces.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}?action=disable": { + "post": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Disable vSphere Namespaces on the cluster. This operation tears down the Kubernetes instance and the worker nodes associated with vSphere Namespaces enabled cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster for which vSphere Namespaces will be disabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor cluster is being restored from a backup. When a Supervisor cluster is restored, there's a window of time during which the restored Supervisor cluster's state is being synchronized back to vCenter. During that time, Supervisor cluster's disablement is not allowed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the Supervisor cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disable", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}?action=enable": { + "post": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Enable vSphere Namespaces on the cluster. This operation sets up Kubernetes instance for the cluster along with worker nodes.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces will be enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersEnable" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the specified cluster is not supported for vSphere Namespaces, the cluster's hosts do not have the required ESX version, or for any other incompatibilities.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the specified cluster is not licensed or resource pool reservation for control plane VMs fails.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if resources/objects could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "enable", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/clusters/{cluster}?action=rotate_password": { + "post": { + "tags": [ + "namespace_management/clusters" + ], + "summary": "Request a new root password for all control plane nodes in the cluster. This operation generates a new root password and configures every control plane node in the cluster to accept it for authentication.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster for which the password is being generated.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the cluster is in the process of password rotation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "rotate_password", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/distributed-switch-compatibility": { + "get": { + "tags": [ + "namespace_management/distributed_switch_compatibility" + ], + "summary": "Returns Namespaces compatibility information of Distributed Switches in vCenter associated with the vCenter cluster, matching the DistributedSwitchCompatibility.FilterSpec.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "query", + "name": "cluster", + "description": "Identifier of a vCenter Cluster. Only Distributed Switches associated with the vCenter Cluster will be considered by the filter.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Compatibility criteria for matching the filter. If true, only Distributed Switches which are compatible with vSphere Namespaces match the filter. If false, only Distributed Switches which are incompatible with vSphere Namespaces match the filter.\nIf unset, both compatible and incompatible Distributed Switches match the filter." + }, + { + "in": "query", + "name": "network_provider", + "type": "string", + "enum": [ + "NSXT_CONTAINER_PLUGIN", + "VSPHERE_NETWORK" + ], + "description": "Identifies the network plugin that cluster networking functionalities for this vSphere Namespaces Cluster." + } + ], + "responses": { + "200": { + "description": "Namespaces compatibility information for Distributed Switches matching the the DistributedSwitchCompatibility.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementDistributedSwitchCompatibilitySummary" + } + } + }, + "500": { + "description": "if the server reports an unknown internal error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + }, + "404": { + "description": "if no cluster with the given cluster ID can be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/edge-cluster-compatibility": { + "get": { + "tags": [ + "namespace_management/edge_cluster_compatibility" + ], + "summary": "Returns Namespaces compatibility information of NSX-T Edge Clusters matching the EdgeClusterCompatibility.FilterSpec.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "query", + "name": "cluster", + "description": "Identifier of a vCenter Cluster. Only Edge Clusters that are associated with the particular vCenter Cluster will be considered by the filter.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "query", + "name": "distributed_switch", + "description": "Identifier of a Distributed Switch. Only Edge Clusters that are associated with the particular Distributed Switch will be considered by the filter.\nThe parameter must be an identifier for the resource type: vSphereDistributedSwitch." + }, + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Compatibility criteria for matching the filter. If true, only Edge Clusters which are compatible with vSphere Namespaces match the filter. If false, only Edge Clusters which are incompatible with vSphere Namespaces match the filter.\nIf unset, both compatible and incompatible Edge Clusters match the filter." + } + ], + "responses": { + "200": { + "description": "List of summaries of Edge Clusters associated with the given vCenter Cluster and Distributed Switch matching the EdgeClusterCompatibility.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementEdgeClusterCompatibilitySummary" + } + } + }, + "500": { + "description": "if the server reports an unknown internal error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + }, + "404": { + "description": "if no cluster with the given cluster ID can be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/networks/nsx/distributed-switches?action=check_compatibility": { + "post": { + "tags": [ + "namespace_management/networks/nsx/distributed_switches/compatibility" + ], + "summary": "Returns a list of Distributed Switches matching the given filter and their compatibility information.", + "parameters": [ + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Compatibility criteria. If true, only Distributed Switches compatible with the vSphere Namespaces will be returned. If false, only Distributed Switches incompatible with the vSphere Namespaces will be returned.\nIf unset, both compatible and incompatible Distributed Switches will be returned.", + "required": false + }, + { + "in": "query", + "name": "zones", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Zone compatibility criteria. If zones are specified, the common distributed switches across the given zones will returned. A distributed switch is considered common if it is present in all of the vSphere clusters in a given zone.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "required": true + } + ], + "responses": { + "200": { + "description": "List of Distributed Switches compatibility summaries matching the given filter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxDistributedSwitchesCompatibilitySummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if one or more fields of the given filter is incorrect.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/networks/nsx/edges?action=check_compatibility": { + "post": { + "tags": [ + "namespace_management/networks/nsx/edges/compatibility" + ], + "summary": "Returns a list of Edges matching the given filter and their compatibility information.", + "parameters": [ + { + "in": "query", + "name": "compatible", + "type": "boolean", + "description": "Compatibility criteria. If true, only Edges which are compatible with vSphere Namespaces will be returned. If false, only Edges incompatible with vSphere Namespaces will be returned.\nIf unset, both compatible and incompatible Edges will be returned.", + "required": false + }, + { + "in": "query", + "name": "distributed_switch", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Distributed switch UUID criteria. If distributed switches identifiers are specified, they will be used to filter the Edges. To obtain the available distributed switch UUIDs, use: DistributedSwitches.list.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vSphereDistributedSwitch.", + "required": true + } + ], + "responses": { + "200": { + "description": "List of Edge compatibility summaries matching the given filter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxEdgesCompatibilitySummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if one or more fields of the given filter is incorrect.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/nsx-tier0-gateways": { + "get": { + "tags": [ + "namespace_management/NSX_tier0_gateway" + ], + "summary": "Returns information of NSX-T Tier0 Gateways associated with a Distributed Switch.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "query", + "name": "distributed_switch", + "description": "Identifier of a Distributed Switch. Only CVDS type of distributed switches is supported. Only Tier0 Gateways that are associated with the particular Distributed Switch will be listed.\nThe parameter must be an identifier for the resource type: vSphereDistributedSwitch." + } + ], + "responses": { + "200": { + "description": "List of summaries of Tier0 Gateways associated with the given Distributed Switch.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNSXTier0GatewaySummary" + } + } + }, + "500": { + "description": "if the server reports an unknown internal error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInternalServerError" + } + }, + "404": { + "description": "if no existing Tier0 Gateways associated with the given Distributed Switch can be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/software/cluster-available-versions": { + "get": { + "tags": [ + "namespace_management/cluster_available_versions" + ], + "summary": "Get information about each available upgrade.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "Information for each upgrade.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterAvailableVersionsSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/software/clusters": { + "get": { + "tags": [ + "namespace_management/software/clusters" + ], + "summary": "Returns upgrade related information about all WCP enabled clusters.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [], + "responses": { + "200": { + "description": "List of upgrade summary of all WCP enabled clusters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/software/clusters/{cluster}": { + "get": { + "tags": [ + "namespace_management/software/clusters" + ], + "summary": "Returns upgrade related information of a specific cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster which will be upgraded.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the upgrade of the specified WCP enabled cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersInfo" + } + }, + "404": { + "description": "if cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the cluster is not WCP enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/software/clusters/{cluster}?action=upgrade": { + "post": { + "tags": [ + "namespace_management/software/clusters" + ], + "summary": "Upgrade the cluster to a specific version. This operation upgrades the components on control plane VMs and worker plane hosts based on the selected version. Before upgrading, this operation performs pre-checks and sets the evaluation response in Info.UpgradeStatus.messages with various Message.Severity levels. Depending on the severity, the upgrade may or may not proceed beyond prechecks. Here is a list of severities and corresponding behavior: - ERROR: Upgrade does not proceed beyond precheck operation - WARNING: Upgrade proceeds beyond precheck operation only if UpgradeSpec.ignorePrecheckWarnings is set to true - INFO: Upgrade proceeds beyond precheck operation uninterrupted\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.Upgrade.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster which will be upgraded.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgrade" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if pre-check failed of the cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if cluster could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Upgrade privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "upgrade", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/software/clusters?action=upgradeMultiple": { + "post": { + "tags": [ + "namespace_management/software/clusters" + ], + "summary": "Upgrade a set of clusters to its corresponding specific version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgradeMultiple" + } + } + ], + "responses": { + "200": { + "description": "Pre-check result when invoking upgrade for each cluster.\nThe key in the result map will be an identifier for the resource type: ClusterComputeResource.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersResult" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Upgrade privilege on all specified clusters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "upgrade_multiple", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/stats/time-series": { + "get": { + "tags": [ + "namespace_management/stats/time_series" + ], + "summary": "Gather statistical values for a cluster, namespace, or pod.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "obj_type", + "type": "string", + "enum": [ + "CLUSTER", + "NAMESPACE", + "POD" + ], + "description": "Type of statistics object that this request is operating on.", + "required": true + }, + { + "in": "query", + "name": "pod", + "type": "string", + "required": false + }, + { + "in": "query", + "name": "namespace", + "type": "string", + "description": "Namespace name for queries for a namespace.\nThis field is optional and it is only relevant when the value of TimeSeries.Spec.obj-type is NAMESPACE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "required": false + }, + { + "in": "query", + "name": "cluster", + "type": "string", + "description": "Cluster identifier for queries for a cluster.\nThis field is optional and it is only relevant when the value of TimeSeries.Spec.obj-type is CLUSTER.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "required": false + }, + { + "in": "query", + "name": "start", + "type": "integer", + "description": "UNIX timestamp value indicating when the requested series of statistical samples should begin. https://en.wikipedia.org/wiki/Unix_time", + "required": true + }, + { + "in": "query", + "name": "end", + "type": "integer", + "description": "UNIX timestamp value indicating when the requested series of statistical samples should end. https://en.wikipedia.org/wiki/Unix_time", + "required": true + } + ], + "responses": { + "200": { + "description": "A list of TimeSeries values for each counter specified in the request.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementStatsTimeSeriesTimeSeries" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the specified cluster in TimeSeries.Spec.cluster is not enabled for Namespaces.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the specified cluster in TimeSeries.Spec.cluster or the namespace in TimeSeries.Spec.namespace or TimeSeries.Spec.pod does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/storage/profiles?action=check_compatibility": { + "post": { + "tags": [ + "namespace_management/storage/profiles" + ], + "summary": "Returns the compatible management storage profiles for enabling a WCP Supervisor across a given set of zones. A storage profile is compatible if it results in at least one datastore in each of the specified zones.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementStorageProfilesCheck" + } + } + ], + "responses": { + "200": { + "description": "List of storage profiles compatible across the given Profiles.FilterSpec. The profiles returned will each result in at least one datastore in each zone.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementStorageProfilesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if one or more fields of the Profiles.FilterSpec is incorrect.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege on all of the Cluster Compute Resources in the specified vSphere Zones.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services": { + "post": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Create a Supervisor Service. If version specs are provided in the spec, new Supervisor Service versions will be created as part of the operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCreate" + } + } + ], + "responses": { + "201": { + "description": "" + }, + "400": { + "description": "if spec contain any errors or if an invalid name is specified. For example, when the service is from a trusted provider, but no signature is provided or it is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Return the information about all Supervisor Services on this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of summary of all Supervisor Services.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}": { + "get": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Return the information for the specified Supervisor Service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "200": { + "description": "Information for the specified Supervisor Service.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Update a Supervisor Service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if spec contain any errors or if an invalid name is specified.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Delete a Supervisor Service. This operation only deletes the Supervisor Service from vCenter if the Supervisor Service is in DEACTIVATED state, and all versions of the Supervisor Service are removed from vCenter. Note that the SupervisorServices.deactivate operation should be called to deactivate the Supervisor Service before the Supervisor Service can be deleted.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service cannot be deleted in the current state, e.g. a version of the Supervisor Service is not in DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}/versions": { + "post": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Create a Supervisor Service version based on the provided service definition information for the version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier of the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCreate" + } + } + ], + "responses": { + "201": { + "description": "" + }, + "400": { + "description": "if the Supervisor Service version cannot be created in the current state, for example, the Supervisor Service is in DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Return the information about all versions of the Supervisor Service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier of the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "200": { + "description": "The list of summary of all service versions of the Supervisor Service.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}/versions/{version}": { + "get": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Return the information for the specified Supervisor Service version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier of the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Identifier of the version.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version." + } + ], + "responses": { + "200": { + "description": "Information for the specified Supervisor Service version.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService or version with the ID {param.name version} could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Delete a Supervisor Service version. This operation only deletes the Supervisor Service version from vCenter if the version is in DEACTIVATED state and all instances of the version are removed from all Supervisors. Note that the Versions.deactivate operation should be called to deactivate the version before the version can be deleted. \n Note that deleting the last version of the supervisorService does not delete the supervisorService instance automatically.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier of the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Identifier of the version.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request, e.g. if it is unable to reach a vSphere Supervisor that has the version enabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service version cannot be deleted in the current state, e.g. the version is not in DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService or version with the ID {param.name version} could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}/versions/{version}?action=activate": { + "patch": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Activate a Supervisor Service version. This operation will change the Versions.State of the version to ACTIVATED state.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Identifier of the version.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service version cannot be activated in the current state, for example, the Supervisor Service is in DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService or version with the ID {param.name version} could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "activate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}/versions/{version}?action=deactivate": { + "patch": { + "tags": [ + "namespace_management/supervisor_services/versions" + ], + "summary": "Deactivate a Supervisor Service version. This operation will change the Versions.State of the version to DEACTIVATED state, which will make sure the version cannot be created on any Supervisor cluster. Note that this operation should be called before deleting the version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Identifier of the version.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service version cannot be deactivated in the current state, for example, the Supervisor Service is in ACTIVATED state and this version is the last version of the Supervisor Service in ACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService or version with the ID version could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "deactivate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}?action=activate": { + "patch": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Activate a Supervisor Service. This operation will change the SupervisorServices.State of the supervisor service to in ACTIVATED state, and activate all versions of the supervisor service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service is already in ACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "activate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services/{supervisor_service}?action=deactivate": { + "patch": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Deactivate a Supervisor Service. This operation will change the SupervisorServices.State of the supervisor service to DEACTIVATED state, and deactivate all versions of the supervisor service. Note that this operation should be called before deleting the Supervisor Service.\nif you do not have all of the privileges described as follows: \n - Operation execution requires SupervisorServices.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor_service", + "description": "Identifier for the Supervisor Service.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.SupervisorService." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Supervisor Service is already in DEACTIVATED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if Supervisor Service with the ID supervisorService could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the SupervisorServices.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "deactivate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisor-services?action=checkContent": { + "post": { + "tags": [ + "namespace_management/supervisor_services" + ], + "summary": "Perform validation checks on the content of a Supervisor Service version defined in the spec. The operation returns the validation status and relevant Supervisor Service version information that are available in the content. A custom format will always return a VALID status. Only vSphere and Carvel packages can return multiple validation statuses.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCheckContent" + } + } + ], + "responses": { + "200": { + "description": "A check result containing validation status and relevant Supervisor Service version information from the provided content, if the content is valid. In case of invalid content, it will return a list of error messages.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCheckResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the provided spec is invalid. For example, the provided SupervisorServices.ContentCheckSpec.content is empty or not base64 encoded.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check_content", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/summaries": { + "get": { + "tags": [ + "namespace_management/supervisors/summary" + ], + "summary": "Queries the current state of all Supervisors. Optionally, apply the filter to Supervisors that match the criteria in the Summary.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "config_status", + "type": "string", + "enum": [ + "CONFIGURING", + "REMOVING", + "RUNNING", + "ERROR" + ], + "description": "The Summary.ConfigStatus enumerated type describes the status of reaching the desired state configuration for the Supervisor." + }, + { + "in": "query", + "name": "kubernetes_status", + "type": "string", + "enum": [ + "READY", + "WARNING", + "ERROR" + ], + "description": "The Summary.KubernetesStatus enumerated type describes the Supervisor's ability to deploy pods." + } + ], + "responses": { + "200": { + "description": "ListResult of Summary.Info of all Supervisors matching the criteria in the Summary.FilterSpec.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryListResult" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege and the System.Read privilege on all vSphere Clusters hosting the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{cluster}?action=enable_on_compute_cluster": { + "post": { + "tags": [ + "namespace_management/supervisors" + ], + "summary": "Enable the Supervisor on a single vSphere cluster. This operation sets up the Kubernetes instance for the cluster along with worker nodes. A {@link #vcenter.consumption-domains.Zones} zone will automatically be created if the specified cluster is not already associated with a vSphere Zone.\n \nTo verify if the Supervisor is compatible with this vSphere cluster use: ClusterCompatibility.list.\n \nA Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster.\n \nTo call this API on a Supervisor with multiple vSphere Clusters, use Topology.get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster used to enable the Supervisor Cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsEnableOnComputeCluster" + } + } + ], + "responses": { + "200": { + "description": "ID of the Supervisor object being enabled.\nThe result will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the specified cluster is not supported for the Supervisor, the cluster's hosts do not have the required ESX version, or for any other incompatibilities.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the specified cluster is not licensed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if resources/objects could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "enable_on_compute_cluster", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{supervisor}/conditions": { + "get": { + "tags": [ + "namespace_management/supervisors/conditions" + ], + "summary": "Get all conditions of a given Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the identifier for a Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "List of Conditions.Condition objects related to the given Supervisor.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsConditionsCondition" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if authorization information cannot be retrieved.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if the Supervisor cannot be found, or if the user does not have read privilege on it.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{supervisor}/identity/providers": { + "post": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "Create a new identity provider to be used with a Supervisor. Currently, only a single identity provider can be created.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the Supervisor for which the identity provider is being registered.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersCreate" + } + } + ], + "responses": { + "204": { + "description": "a unique identifier for the identity provider that was registered.\nThe result will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the specified Supervisor does not exist, or if an identity provider is already configured.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the Namespaces.Manage privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "List the identity providers configured for a given Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the Supervisor for which identity providers are being listed.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "A list of {#link Summary} with details about the identity providers associated with a given Supervisor.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersSummary" + } + } + }, + "404": { + "description": "if the given Supervisor cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the System.Read privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{supervisor}/identity/providers/{provider}": { + "put": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "Update the entire configuration for an existing identity provider used with a Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the identifier for the Supervisor associated with the identity provider to be updated.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier for the identity provider that is to be updated.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.identity.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the @{param.name spec} contains any errors.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the given identity provider or Supervisor cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the Namespaces.Manage privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "Returns information about an identity provider configured for a Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "identifier for the Supervisor for which the identity provider is being read.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "identifier for the identity provider that is being read.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.identity.Provider." + } + ], + "responses": { + "200": { + "description": "An {#link Info} representing the requested identity provider.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersInfo" + } + }, + "404": { + "description": "if the given identity provider or Supervisor cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the System.Read privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "Update an existing identity provider used with a Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the identifier for the Supervisor associated with the identity provider to be updated.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier for the identity provider that is to be updated.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.identity.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the @{param.name spec} contains any errors.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the given identity provider or Supervisor cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the Namespaces.Manage privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/supervisors/identity/providers" + ], + "summary": "Remove an identity provider configured with a given Supervisor. This will result in users no longer being able to log in to either the Supervisor or any of its workload clusters with that identity provider.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the identifier of the Supervisor which is associated with the identity provider being removed.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier for the identity provider that is to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.identity.Provider." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the given identity provider or Supervisor cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user is missing the Namespaces.Manage privilege on the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{supervisor}/summary": { + "get": { + "tags": [ + "namespace_management/supervisors/summary" + ], + "summary": "Queries the current state of the specified Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "the identifier for a supervisor\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "Summary.Info of the Supervisor matching the provided identifier.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.\nif the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor matching the ID does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.\nif the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege and the System.Read privilege on all vSphere Clusters hosting the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors/{supervisor}/topology": { + "get": { + "tags": [ + "namespace_management/supervisors/topology" + ], + "summary": "Queries the current association between vSphere Zones and vSphere Clusters from the given Supervisor ID. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. Use the vSphere Cluster IDs obtained from Topology.get to call the APIs that requires a vSphere Cluster ID instead of a Supervisor.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for a Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "List of Topology.Info of vSphere Zone and vSphere Cluster associations.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsTopologyInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.\nif the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if given Supervisor does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.\nif the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege and the System.Read privilege on all vSphere Clusters hosting the Supervisor.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/supervisors?action=enable_on_zones": { + "post": { + "tags": [ + "namespace_management/supervisors" + ], + "summary": "Enable a Supervisor on a set of vSphere Zones. The cluster control plane and its workloads will be eligible for placement across the zones. Enabling on multiple zones enables fault tolerance for applications deployed on more than one zone in case of a zone failure.\n \nTo verify if the Supervisor is compatible with the provided Zones use: ClusterCompatibility.list.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsEnableOnZones" + } + } + ], + "responses": { + "200": { + "description": "ID of the Supervisor object being enabled.\nThe result will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the zones are not supported for the Supervisor, the zones' hosts do not have the required ESX version, or for any other incompatibilities.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the one or more zones are not licensed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the provided zones could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "enable_on_zones", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/virtual-machine-classes": { + "post": { + "tags": [ + "namespace_management/virtual_machine_classes" + ], + "summary": "Create a VM class object.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachineClasses.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the input {@param.spec.instanceStorage.policy} refers to an invalid storage policy or if the input spec includes settings that are out of acceptable bounds or a combination of settings that are not internally consistent with the input spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have VirtualMachineClasses.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespace_management/virtual_machine_classes" + ], + "summary": "Return information about all VirtualMachine classes.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of information about all VirtualMachine classes", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespace-management/virtual-machine-classes/{vm_class}": { + "get": { + "tags": [ + "namespace_management/virtual_machine_classes" + ], + "summary": "Return information about a VM class.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespace_management.VirtualMachineClass referenced by the parameter vm_class requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm_class", + "description": "Identifier for the VM class.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass." + } + ], + "responses": { + "200": { + "description": "Information about the specified VM class.", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInfo" + } + }, + "404": { + "description": "if VM class can not be found in the vCenter inventory.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespace_management/virtual_machine_classes" + ], + "summary": "Update the configuration of the VM class object\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachineClasses.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm_class", + "description": "Identifier for the VM class.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the input {@param.spec.instanceStorage.policy} refers to an invalid storage policy or if the input spec includes settings that are out of acceptable bounds or a combination of settings that are not internally consistent with the input spec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if or the vm_class cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have VirtualMachineClasses.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespace_management/virtual_machine_classes" + ], + "summary": "Delete the VM class object.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachineClasses.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm_class", + "description": "Identifier for the VM class.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "- TBD", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "404": { + "description": "VM class could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have VirtualMachineClasses.Manage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces-user/namespaces": { + "get": { + "tags": [ + "namespaces/user/instances" + ], + "summary": "Returns namespaces matching the Instances.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "in": "query", + "name": "username", + "type": "string", + "description": "Identifier of the user.\nIf set, only return namespaces the given user has permissions to access. If unset, this filter is not applied." + }, + { + "in": "query", + "name": "groups", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "List of group names.\nIf set, only return namespaces that are associated with the given group(s). If unset, this filter is not applied." + } + ], + "responses": { + "200": { + "description": "List of Namespace identifiers together with the API endpoint for each namespace.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesUserInstancesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user does not have Namespaces.ListAccess privilege to perform this operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/instances": { + "post": { + "tags": [ + "namespaces/instances" + ], + "summary": "Create a namespace object on a single vSphere cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the attribute Instances.CreateSpec.cluster requires Namespaces.Configure.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "ifInstances.CreateSpec.cluster is not enabled for Namespaces, or if the networks field is set when the Instances.CreateSpec.cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider, or if the Supervisor cluster does not support customizable VM classes.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if Instances.CreateSpec.cluster is not registered on this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/instances" + ], + "summary": "Returns the information about all namespaces in this vCenter Server. The information is tied to a single vSphere cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [], + "responses": { + "200": { + "description": "Information about all namespaces in this vCenter server.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/instances/v2": { + "post": { + "tags": [ + "namespaces/instances" + ], + "summary": "Create a namespace object on a Supervisor.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespace_management.supervisor.Supervisor referenced by the attribute Instances.CreateSpecV2.supervisor requires Namespaces.Configure.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesCreateV2" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the Supervisor is not enabled for Namespaces, or if the networks field is set when the Supervisor hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider, or if the Supervisor does not support customizable VM classes.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor is not registered on this vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create_v2", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/instances" + ], + "summary": "Returns the information about all namespaces in this vCenter Server. The information is tied to a Supervisor.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [], + "responses": { + "200": { + "description": "Information about all namespaces in this vCenter server.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesSummaryV2" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list_v2", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/instances/v2/{namespace}": { + "get": { + "tags": [ + "namespaces/instances" + ], + "summary": "Returns information about a specific namespace on a Supervisor.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + } + ], + "responses": { + "200": { + "description": "Information about the desired state of the specified namespace on a Supervisor.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesInfoV2" + } + }, + "404": { + "description": "if namespace could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get_v2", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/instances/{namespace}": { + "put": { + "tags": [ + "namespaces/instances" + ], + "summary": "Set a new configuration on the namespace object. The specified configuration is applied in entirety and will replace the current configuration fully.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if customizable VM classes are not suported for this Supervisor cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if namespace with the name namespace could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/instances" + ], + "summary": "Returns information about a specific namespace on a single vSphere cluster.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + } + ], + "responses": { + "200": { + "description": "Information about the desired state of the specified namespace.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesInfo" + } + }, + "404": { + "description": "if namespace could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespaces/instances" + ], + "summary": "Update the namespace object. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesInstancesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if customizable VM classes are not suported for this Supervisor cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if namespace with the name namespace could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespaces/instances" + ], + "summary": "Delete the namespace object in the cluster.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the associated Supervisor cluster is being restored from a backup. When a Supervisor cluster is restored, there's a window of time during which the restored Supervisor cluster's state is being synchronized back to vCenter. During that time, namespace deletion is not allowed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the specified namespace could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/instances/{namespace}/access/{domain}/{subject}": { + "put": { + "tags": [ + "namespaces/access" + ], + "summary": "Set new access control on the namespace for the subject on given domain.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "domain", + "description": "The domain of the subject." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subject", + "description": "The principal for this operation." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesAccessSet" + } + }, + { + "required": true, + "in": "query", + "name": "type", + "description": "{ 1. The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace. }, { 2. The type of subject (USER or GROUP). }", + "type": "string", + "enum": [ + "USER", + "GROUP" + ] + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if spec contains any errors or if an invalid type is specified.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if namespace cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/access" + ], + "summary": "Get the information about the access control of the subject on given domain on the namespace.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "domain", + "description": "The domain of the subject." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subject", + "description": "The principal for this operation." + }, + { + "required": true, + "in": "query", + "name": "type", + "description": "{ 1. The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace. }, { 2. The type of subject (USER or GROUP). }", + "type": "string", + "enum": [ + "USER", + "GROUP" + ] + } + ], + "responses": { + "200": { + "description": "Information about the subject including the type and the role on the namespace.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesAccessInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if namespace cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the specified principal on given domain is not associated with the namespace.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "namespaces/access" + ], + "summary": "Set up access control for the subject on given domain on the namespace.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "domain", + "description": "The domain of the subject." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subject", + "description": "The principal for this operation." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesAccessCreate" + } + }, + { + "required": true, + "in": "query", + "name": "type", + "description": "{ 1. The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace. }, { 2. The type of subject (USER or GROUP). }", + "type": "string", + "enum": [ + "USER", + "GROUP" + ] + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the specified principal on given domain is not associated with the namespace, or when the user or group does not come from vSphere SSO and the OWNER role is being granted.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if namespace cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "namespaces/access" + ], + "summary": "Remove access control of the subject on given domain from the namespace.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.Instance referenced by the parameter namespace requires Namespaces.Configure.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "namespace", + "description": "Identifier for the namespace.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.Instance." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "domain", + "description": "The domain of the subject." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "subject", + "description": "The principal for this operation." + }, + { + "required": true, + "in": "query", + "name": "type", + "description": "{ 1. The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace. }, { 2. The type of subject (USER or GROUP). }", + "type": "string", + "enum": [ + "USER", + "GROUP" + ] + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the specified principal on given domain is not associated with the namespace.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if namespace cannot be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.Configure privilege or the namespace identifier begins with \"vmware-system\" prefix.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-self-service": { + "get": { + "tags": [ + "namespaces/namespace_self_service" + ], + "summary": "Returns basic information about Namespace Self Service on all clusters on which vSphere Namespaces are enabled on this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [], + "responses": { + "200": { + "description": "List of summary of Namespace Self Service associated with all clusters with vSphere Namespaces enabled.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-self-service/{cluster}": { + "get": { + "tags": [ + "namespaces/namespace_self_service" + ], + "summary": "Returns information about Namespace Self Service of a specific cluster. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the namespace self service associated with the specified cluster.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceInfo" + } + }, + "404": { + "description": "if cluster with vSphere Namespaced enabled could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-self-service/{cluster}?action=activate": { + "post": { + "tags": [ + "namespaces/namespace_self_service" + ], + "summary": "Activate Namespace Self Service on the cluster on which vSphere Namespaces enabled. This operation empowers Dev Users/Groups as self-service namespace users to create Supervisor Namespaces through kubectl create namespace command. activate requires the availability of one or more templates in the system. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces will be enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the service is marked for deactivation or the associated cluster is being disabled or no namespace template exists in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the specified cluster is not licensed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if cluster with vSphere Namespaces enabled could not be located or no namespace templates exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "activate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-self-service/{cluster}?action=activateWithTemplate": { + "post": { + "tags": [ + "namespaces/namespace_self_service" + ], + "summary": "Activate Namespace Self Service on the cluster after configuring namespace template. This is another variant of activate except configures template before activation. The template configuration includes either creating a new template or updating the existing template, depending on the template's existence. Here is supported the flow of actions using the activateWithTemplate call: 1. Activate with the new template using activateWithTemplate call. 2. Deactivate using deactivate call. 3. Active with updating the existing template using activateWithTemplate. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces will be enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceActivateWithTemplate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the service is marked for deactivation or the associated cluster is being disabled.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the specified cluster is not licensed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if cluster with vSphere Namespaces enabled could not be located.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "activate_with_template", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-self-service/{cluster}?action=deactivate": { + "post": { + "tags": [ + "namespaces/namespace_self_service" + ], + "summary": "Deactivate Namespace Self Service on the cluster on which vSphere Namespaces enabled. This operation reverses Dev Users/Group's self-service namespace capability on the cluster. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster for which vSphere Namespaces will be disabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster with vSphere Namespaced enabled is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the service is not activated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "deactivate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-templates/clusters/{cluster}": { + "post": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Creates a namespace template on a cluster on which vSphere Namespaces are enabled in this vCenter Server. This release supports creating a single namespace template, and the call fails if there is a request to make another one. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the namespace template with given name already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Returns information about all the namespace templates associated with a cluster on which vSphere Namespaces are enabled in this vCenter Server. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "List of summary of all namespace templates associated with cluster with vSphere Namespaces enabled.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-templates/clusters/{cluster}/{template}": { + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Get the information about a namespace template on given cluster. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + } + ], + "responses": { + "200": { + "description": "Information about the namespace template.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Updates a namespace template associated with cluster on which vSphere Namespaces are enabled in this vCenter Server. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if trying to grant access to a user or group from an external identity provider.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-templates/supervisors/{supervisor}": { + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Returns information about all the namespace templates associated with a Supervisor.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "List of summary of all namespace templates associated with the Supervisor.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSummaryV2" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list_v2", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Creates a namespace template on a Supervisor. This release supports creating a single namespace template, and the call fails if there is a request to make another one.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesCreateV2" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the namespace template with given name already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create_v2", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/namespaces/namespace-templates/supervisors/{supervisor}/{template}": { + "patch": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Updates a namespace template associated with a Supervisor. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesUpdateV2" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if trying to grant access to a user or group from an external identity provider.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update_v2", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Get the information about a namespace template on a Supervisor.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + } + ], + "responses": { + "200": { + "description": "Information about the namespace template.", + "schema": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesInfoV2" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Supervisor doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get_v2", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/network": { + "get": { + "tags": [ + "network" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) networks in vCenter matching the Network.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "networks", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of networks that can match the filter.\nIf unset or empty, networks with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Network." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that networks must have to match the filter (see Network.Summary.name).\nIf unset or empty, networks with any name match the filter." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "description": "Types that networks must have to match the filter (see Network.Summary.type).\nIf unset, networks with any type match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the network for the network to match the filter.\nIf unset or empty, networks in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the network for the network to match the filter.\nIf unset or empty, networks in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the networks matching the Network.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNetworkSummary" + } + } + }, + "400": { + "description": "if the Network.FilterSpec.types field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 1000 networks match the Network.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/ovf/export-flag": { + "get": { + "tags": [ + "ovf/export_flag" + ], + "summary": "Returns information about the supported export flags by the server. \n The supported flags are: \n\n PRESERVE_MAC:\n Include MAC addresses for network adapters.\n EXTRA_CONFIG:\n Include extra configuration in OVF export.\n \n Future server versions might support additional flags.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "A list of supported export flags.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfExportFlagInfo" + } + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/ovf/import-flag": { + "get": { + "tags": [ + "ovf/import_flag" + ], + "summary": "Returns information about the import flags supported by the deployment platform. \n The supported flags are: \n\n LAX:\n Lax mode parsing of the OVF descriptor.\n \n Future server versions might support additional flags.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource ResourcePool referenced by the parameter rp requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "query", + "name": "rp", + "description": "The identifier of resource pool target for retrieving the import flag(s).\nThe parameter must be an identifier for the resource type: ResourcePool." + } + ], + "responses": { + "200": { + "description": "A list of supported import flags.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfImportFlagInfo" + } + } + }, + "404": { + "description": "If the resource pool associated with rp does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/ovf/library-item": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Creates a library item in content library from a virtual machine or virtual appliance. \n This operation creates a library item in content library whose content is an OVF package derived from a source virtual machine or virtual appliance, using the supplied create specification. The OVF package may be stored as in a newly created library item or in an in an existing library item. For an existing library item whose content is updated by this operation, the original content is overwritten. Meta data such as name and description is not updated for the exisitng library item. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine or VirtualApp referenced by the attribute LibraryItem.DeployableIdentity.id requires VApp.Export. \n - The resource content.Library referenced by the attribute LibraryItem.CreateTarget.library-id requires ContentLibrary.AddLibraryItem. \n - The resource content.library.Item referenced by the attribute LibraryItem.CreateTarget.library-item-id requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemCreate" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "Client-generated token used to retry a request if the client fails to get a response from the server. If the original request succeeded, the result of that request will be returned, otherwise the operation will be retried.\nIf unset, the server will create a token." + } + ], + "responses": { + "201": { + "description": "Information about the success or failure of the operation, along with the details of the result or failure.", + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemCreateResult" + } + }, + "400": { + "description": "if the operation cannot be performed because of the specified virtual machine or virtual appliance's current state. For example, if the virtual machine configuration information is not available, or if the virtual appliance is running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine or virtual appliance specified by source does not exist.\n if the library or library item specified by target does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the specified virtual machine or virtual appliance is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/ovf/library-item/{ovf_library_item_id}?action=deploy": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Deploys an OVF package stored in content library to a newly created virtual machine or virtual appliance. \n This operation deploys an OVF package which is stored in the library item specified by ovfLibraryItemId. It uses the deployment specification in deploymentSpec to deploy the OVF package to the location specified by target. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter ovfLibraryItemId requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItem.DeploymentTarget.host-id requires System.Read. \n - The resource Network referenced by the map value of attribute LibraryItem.ResourcePoolDeploymentSpec.network-mappings requires System.Read. \n - The resource StorageProfile referenced by the attribute LibraryItem.ResourcePoolDeploymentSpec.storage-profile-id requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItem.ResourcePoolDeploymentSpec.default-datastore-id requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItem.DeploymentTarget.resource-pool-id requires VApp.Import. \n - The resource Folder referenced by the attribute LibraryItem.DeploymentTarget.folder-id requires VApp.Import.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "ovf_library_item_id", + "description": "Identifier of the content library item containing the OVF package to be deployed.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemDeploy" + } + }, + { + "required": false, + "type": "string", + "in": "query", + "name": "client_token", + "description": "Client-generated token used to retry a request if the client fails to get a response from the server. If the original request succeeded, the result of that request will be returned, otherwise the operation will be retried.\nIf unset, the server will create a token." + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the operation, along with the details of the result or failure.", + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemDeploymentResult" + } + }, + "400": { + "description": "if target contains invalid arguments.\n if deploymentSpec contains invalid arguments or has fields that are inconsistent with target.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the library item specified by ovfLibraryItemId does not exist.\n if any resource specified by a field of the LibraryItem.DeploymentTarget structure, specified by target, does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if there was an error accessing the OVF package stored in the library item specified by ovfLibraryItemId.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "403": { + "description": "if you do not have all of the privileges described as follows : \n - Operation execution requires VirtualMachine.Config.AddNewDisk if the OVF descriptor has a disk drive (type 17) section. \n - Operation execution requires VirtualMachine.Config.AdvancedConfig if the OVF descriptor has an ExtraConfig section. \n - Operation execution requires Extension.Register for specified resource group if the OVF descriptor has a vServiceDependency section. \n - Operation execution requires Network.Assign for target network if specified. \n - Operation execution requires Datastore.AllocateSpace for target datastore if specified.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "deploy", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/ovf/library-item/{ovf_library_item_id}?action=filter": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Queries an OVF package stored in content library to retrieve information to use when deploying the package. See LibraryItem.deploy. \n This operation retrieves information from the descriptor of the OVF package stored in the library item specified by ovfLibraryItemId. The information returned by the operation can be used to populate the deployment specification (see LibraryItem.ResourcePoolDeploymentSpec when deploying the OVF package to the deployment target specified by target. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter ovfLibraryItemId requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItem.DeploymentTarget.resource-pool-id requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItem.DeploymentTarget.host-id requires System.Read. \n - The resource Folder referenced by the attribute LibraryItem.DeploymentTarget.folder-id requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "ovf_library_item_id", + "description": "Identifier of the content library item containing the OVF package to query.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemFilter" + } + } + ], + "responses": { + "200": { + "description": "Information that can be used to populate the deployment specification (see LibraryItem.ResourcePoolDeploymentSpec) when deploying the OVF package to the deployment target specified by target.", + "schema": { + "$ref": "#/definitions/VcenterOvfLibraryItemOvfSummary" + } + }, + "400": { + "description": "if target contains invalid arguments.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the library item specified by ovfLibraryItemId does not exist.\n if any resource specified by a field of the LibraryItem.DeploymentTarget structure, specified by target, does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if there was an error accessing the OVF package at the specified ovfLibraryItemId.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + } + }, + "operationId": "filter", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/resource-pool": { + "post": { + "tags": [ + "resource_pool" + ], + "summary": "Creates a resource pool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the attribute ResourcePool.CreateSpec.parent requires Resource.CreatePool.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterResourcePoolCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the newly created resource pool.\nThe result will be an identifier for the resource type: ResourcePool.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if any of the resources needed to create the resource pool could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "400": { + "description": "If a parameter passed in the spec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the resource specified in parent could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "resource_pool" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) resource pools in vCenter matching the ResourcePool.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of resource pools that can match the filter.\nIf unset or empty, resource pools with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that resource pools must have to match the filter (see ResourcePool.Info.name).\nIf unset or empty, resource pools with any name match the filter." + }, + { + "in": "query", + "name": "parent_resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resource pools that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Hosts that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the resource pools matching the ResourcePool.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterResourcePoolSummary" + } + } + }, + "500": { + "description": "If more than 1000 resource pools match the ResourcePool.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/resource-pool/{resource_pool}": { + "get": { + "tags": [ + "resource_pool" + ], + "summary": "Retrieves information about the resource pool indicated by resourcePool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the parameter resourcePool requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool for which information should be retrieved.\nThe parameter must be an identifier for the resource type: ResourcePool." + } + ], + "responses": { + "200": { + "description": "Information about the resource pool.", + "schema": { + "$ref": "#/definitions/VcenterResourcePoolInfo" + } + }, + "404": { + "description": "If the resource pool indicated by resourcePool does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "resource_pool" + ], + "summary": "Updates the configuration of a resource pool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the parameter resourcePool requires Resource.EditPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool.\nThe parameter must be an identifier for the resource type: ResourcePool." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterResourcePoolUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If any of the resources needed to reconfigure the resource pool could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "400": { + "description": "If any of the specified parameters is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the resource pool is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "resource_pool" + ], + "summary": "Deletes a resource pool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool to be deleted.\nThe parameter must be an identifier for the resource type: ResourcePool." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "If the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "If the resource pool is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "If the resource pool is a root resource pool.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/services": { + "get": { + "tags": [ + "services/service" + ], + "summary": "Lists details of vCenter services.", + "parameters": [], + "responses": { + "200": { + "description": "Map of service identifiers to service Info structures.\nThe key in the result map will be an identifier for the resource type: vcenter.services.Service.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterServicesServiceInfo" + } + } + }, + "500": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list_details", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/services/{service}": { + "get": { + "tags": [ + "services/service" + ], + "summary": "Returns the state of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose state is being queried.\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "200": { + "description": "Service Info structure.", + "schema": { + "$ref": "#/definitions/VcenterServicesServiceInfo" + } + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "services/service" + ], + "summary": "Updates the properties of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose properties are being updated.\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterServicesServiceUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a start, stop or restart operation is in progress, update operation will fail with this error.\nif a request to set the Service.UpdateSpec.startup-type field of spec to DISABLED comes in for a service that is not in STOPPED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/services/{service}?action=restart": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Restarts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to restart\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop or start operation is in progress, issuing a restart operation will lead to this error.\nif a restart operation is issued on a service which has startup type DISABLED", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "restart", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/services/{service}?action=start": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Starts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to start\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop or restart operation is in progress, the start operation will not be allowed.\nif start operation is issued on a service which has startup type DISABLED.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/services/{service}?action=stop": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Stops a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to stop\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop operation is in progress, issuing another stop operation will lead to this error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/storage/policies": { + "get": { + "tags": [ + "storage/policies" + ], + "summary": "Returns information about at most 1024 visible (subject to permission checks) storage solicies availabe in vCenter. These storage policies can be used for provisioning virtual machines or disks.", + "parameters": [ + { + "in": "query", + "name": "policies", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of storage policies that can match the filter.\nIf unset or empty, storage policies with any identifiers match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.StoragePolicy." + } + ], + "responses": { + "200": { + "description": "Commonly used Information about the storage policies.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterStoragePoliciesSummary" + } + } + }, + "400": { + "description": "if the Policies.FilterSpec contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if more than 1024 storage policies exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/storage/policies/compliance/vm": { + "get": { + "tags": [ + "storage/policies/compliance/VM" + ], + "summary": "Returns compliance information about at most 1000 virtual machines matching the filter VM.FilterSpec. If there are no virtual machines matching the VM.FilterSpec an empty List is returned. Virtual machines without storage policy association are not returned.", + "parameters": [ + { + "in": "query", + "name": "status", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "description": "Compliance Status that a virtual machine must have to match the filter. Atleast one status must be specified." + }, + { + "in": "query", + "name": "vms", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of virtual machines that can match the filter\nIf unset or empty, virtual machines with any identifier matches the filter\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "compliance information about virtual machines matching the filter VM.FilterSpec.\nThe key in the result map will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceVMInfo" + } + } + }, + "500": { + "description": "If more than 1000 results match the VM.FilterSpec", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "400": { + "description": "if the API is invoked against vCenter Server version is less than 6.5", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/storage/policies/entities/compliance": { + "get": { + "tags": [ + "storage/policies/compliance" + ], + "summary": "Returns compliance information about entities matching the filter Compliance.FilterSpec. Entities without storage policy association are not returned.", + "parameters": [ + { + "in": "query", + "name": "status", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "description": "Compliance Status that a virtual machine must have to match the filter." + } + ], + "responses": { + "200": { + "description": "compliance information about entities matching the filter Compliance.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Compliance.FilterSpec.status field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/storage/policies/{policy}/vm": { + "get": { + "tags": [ + "storage/policies/VM" + ], + "summary": "Returns information about the virtual machines and/or their virtual disks that are associated with the given storage policy.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "storage policy identifier.\nThe parameter must be an identifier for the resource type: vcenter.StoragePolicy." + } + ], + "responses": { + "200": { + "description": "Information about the virtual machines and/or their virtual disks that are associated with the given storage policy.\nThe key in the result map will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterStoragePoliciesVMInfo" + } + } + }, + "404": { + "description": "if there is no policy associated with policy in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the backend server encounters some an error while processing the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the system is unable to communicate with a service necessary to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user does not have the required priveleges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/storage/policies/{policy}?action=check-compatibility": { + "post": { + "tags": [ + "storage/policies" + ], + "summary": "Returns datastore compatibility summary about a specific storage policy.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "The storage policy identifier\nThe parameter must be an identifier for the resource type: vcenter.StoragePolicy." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterStoragePoliciesCheckCompatibility" + } + } + ], + "responses": { + "200": { + "description": "datastore compatibility summary about a specific storage policy.", + "schema": { + "$ref": "#/definitions/VcenterStoragePoliciesCompatibilityInfo" + } + }, + "500": { + "description": "if input more than 1024 datastores.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the storage policy specified does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check_compatibility", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/system-config/deployment-type": { + "get": { + "tags": [ + "system_config/deployment_type" + ], + "summary": "Get the type of the vCenter appliance.", + "parameters": [], + "responses": { + "200": { + "description": "The type of the vCenter appliance.", + "schema": { + "$ref": "#/definitions/VcenterSystemConfigDeploymentTypeInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if appliance is not in CONFIGURED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "put": { + "tags": [ + "system_config/deployment_type" + ], + "summary": "Reconfigure the type of the vCenter appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterSystemConfigDeploymentTypeReconfigure" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the appliance is not in INITIALIZED or CONFIGURED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "reconfigure", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/system-config/psc-registration": { + "get": { + "tags": [ + "system_config/psc_registration" + ], + "summary": "Get information of the PSC that this appliance is registered with.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing information about the external PSC node this appliance is registered with.", + "schema": { + "$ref": "#/definitions/VcenterSystemConfigPscRegistrationInfo" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is in NOT_INITIALIZED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/system-config/psc-registration?action=repoint": { + "post": { + "tags": [ + "system_config/psc_registration" + ], + "summary": "Repoint this vCenter Server appliance to a different external PSC.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterSystemConfigPscRegistrationRepoint" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif the passed external PSC credentials is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the appliance is NOT in CONFIGURED state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + } + }, + "operationId": "repoint", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/system?action=hello": { + "post": { + "tags": [ + "system" + ], + "summary": "Negotiates common parameters for API communication. \n This operation selects mutually supported choices from the System.HelloSpec.api-releases list.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterSystemHello" + } + } + ], + "responses": { + "200": { + "description": "Common parameters for API communication.", + "schema": { + "$ref": "#/definitions/VcenterSystemHelloResult" + } + }, + "404": { + "description": "if no mutually supported release ID exists. For example, if all releases requested by the client are unsupported or unknown to the current endpoint.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the list of client provided release IDs (System.HelloSpec.api-releases) is empty or the list is longer then 128 releases or given release ID is longer then 64 characters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "hello", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/tagging/associations": { + "get": { + "tags": [ + "tagging/associations" + ], + "summary": "Returns tag associations that match the specified iteration spec.", + "parameters": [ + { + "in": "query", + "name": "marker", + "type": "string", + "description": "Marker is an opaque token that allows the caller to request the next page of tag associations.\nIf unset or empty, first page of tag associations will be returned.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.tagging.associations.Marker. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.tagging.associations.Marker." + } + ], + "responses": { + "200": { + "description": "A page of the tag associations matching the iteration spec.", + "schema": { + "$ref": "#/definitions/VcenterTaggingAssociationsListResult" + } + }, + "400": { + "description": "if Associations.IterationSpec.marker is not a marker returned from an earlier invocation of this {@term operation).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/topology/nodes": { + "get": { + "tags": [ + "topology/nodes" + ], + "summary": "Returns information about all vCenter and Platform Services Controller nodes matching the Nodes.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "description": "Types of the appliance that a vCenter and Platform Services Controller node must be to match the filter (see Nodes.ApplianceType.\nIf unset or empty, node of any ApplianceType match the filter." + } + ], + "responses": { + "200": { + "description": "commonly used information for all vCenter and Platform Services Controller nodes matching the Nodes.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTopologyNodesSummary" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the Nodes.FilterSpec.types field contains a value that is not supported.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/topology/nodes/{node}": { + "get": { + "tags": [ + "topology/nodes" + ], + "summary": "Retrieve details for a given identifier of the vCenter or Platform Services Controller node.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "node", + "description": "Identifier of the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nThe parameter must be an identifier for the resource type: vcenter.VCenter.name." + } + ], + "responses": { + "200": { + "description": "vCenter or Platform Services Controller node details with replication partners and client affinity information as applicable. See Nodes.Info.", + "schema": { + "$ref": "#/definitions/VcenterTopologyNodesInfo" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "if a node doesn't exist for given node identifier.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/topology/replication-status": { + "get": { + "tags": [ + "topology/replication_status" + ], + "summary": "Returns the replication information of vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL (see Nodes.Info.type) matching the ReplicationStatus.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "nodes", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifier that a vCenter and Platform Services Controller node must have to match the filter. (see ReplicationStatus.Summary.node).\nIf unset or empty, all vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name." + } + ], + "responses": { + "200": { + "description": "Commonly used replication information about vCenter and Platform Services Controller nodes matching the ReplicationStatus.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTopologyReplicationStatusSummary" + } + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the ReplicationStatus.FilterSpec.nodes field contains a invalid value.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/attestation/services": { + "post": { + "tags": [ + "trusted_infrastructure/attestation/services" + ], + "summary": "Registers a new Attestation Service instance in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ManageTrustedHosts.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesCreate" + } + } + ], + "responses": { + "201": { + "description": "ID of the newly registered Attestation Service instance.\nThe result will be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the CreateSpec contains invalid data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/attestation/services/{service}": { + "get": { + "tags": [ + "trusted_infrastructure/attestation/services" + ], + "summary": "Returns the detailed information about a registered Attestation Service instance in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the Attestation Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified Attestation Service instance.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesInfo" + } + }, + "500": { + "description": "if an error occurred while getting the data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no registered Attestation Service instance with the specified ID.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/attestation/services" + ], + "summary": "Removes a registered Attestation Service instance from this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ManageTrustedHosts.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the Attestation Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the Attestation Service instance is used by a configuration on a cluster level.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the Attestation Service instance is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/attestation/services?action=query": { + "post": { + "tags": [ + "trusted_infrastructure/attestation/services" + ], + "summary": "Returns detailed information about all registered Attestation Service instances in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesList" + } + } + ], + "responses": { + "200": { + "description": "Detailed information about all registered Attestation Service instances in this vCenter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesSummary" + } + } + }, + "500": { + "description": "if an error occurred while getting the data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm": { + "get": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm" + ], + "summary": "Return a list of configured TPMs on a host.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "in": "query", + "name": "major_versions", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "integer", + "format": "int64" + }, + "description": "The TPM major version number.\nif unset or empty, the result will not be filtered by version number." + }, + { + "in": "query", + "name": "active", + "type": "boolean", + "description": "The TPM status.\nif unset, the result will not be filtered by status." + } + ], + "responses": { + "200": { + "description": "A list of configured TPMs.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any argument is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm/{tpm}": { + "get": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm" + ], + "summary": "Get the TPM details on a host.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "tpm", + "description": "the TPM identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm." + } + ], + "responses": { + "200": { + "description": "The TPM info.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if any argument is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the TPM is not found or host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm/{tpm}/endorsement-keys": { + "get": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm/endorsement_keys" + ], + "summary": "Return a list of configured endorsement keys on a host.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "tpm", + "description": "the TPM identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm." + }, + { + "in": "query", + "name": "types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "RSA_2048", + "ECC_NIST_P_256" + ] + }, + "description": "Type of the endorsement key.\nif unset or empty, the result will not be filtered by EndorsementKeys.FilterSpec.types." + } + ], + "responses": { + "200": { + "description": "A list of configured endorsement keys.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the arguments are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the TPM device, or the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm/{tpm}/endorsement-keys/{key}": { + "get": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm/endorsement_keys" + ], + "summary": "Get the TPM endorsement key details on a host. \n The information returned is derived from executing the TPM2_ReadPublic command on the endorsement key object handle. \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 12.4 TPM2_ReadPublic\n\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "tpm", + "description": "the TPM identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "key", + "description": "the endorsement key identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.tpm.EndorsementKey." + } + ], + "responses": { + "200": { + "description": "The endorsement key info.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the arguments are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the endorsement key, or the TPM device, or the host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm/{tpm}/endorsement-keys/{key}?action=unseal": { + "post": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm/endorsement_keys" + ], + "summary": "Unseal a secret that is bound to an endorsement key. \n Provided with duplicate key data, load the key as a child of the specified endorsement key using the TPM2_Import command and then unseal the secret data using the TPM2_Unseal command. \n\n The duplicate key must include only outer wrapping; inner wrapping is not supported. The duplicate key cannot have a complex authorization policy (e.g. including command selection, locality, etc). Only PCR policy authorization is supported at this time. \n\n Trusted Platform Module Library Part 1: Architecture, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 23.3 Duplication \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 13.3 TPM2_Import \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 12.7 TPM2_Unseal\n\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Unseal.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "tpm", + "description": "the TPM identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "key", + "description": "the endorsement key identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.tpm.EndorsementKey." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysUnseal" + } + } + ], + "responses": { + "200": { + "description": "The unsealed secret.", + "schema": { + "type": "string", + "format": "binary" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the arguments are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the endorsement key or TPM is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "unseal", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/hosts/{host}/hardware/tpm/{tpm}/event-log": { + "get": { + "tags": [ + "trusted_infrastructure/hosts/hardware/tpm/event_log" + ], + "summary": "Retrieves the event log associated with the TPM device.\nif you do not have all of the privileges described as follows: \n - The resource HostSystem referenced by the parameter host requires Host.Tpm.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host.\nThe parameter must be an identifier for the resource type: HostSystem." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "tpm", + "description": "the TPM identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm." + } + ], + "responses": { + "200": { + "description": "The event information.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEventLogInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the argument is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if event log is not found, or tpm is not found or host is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if too many requests are in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the caller is not authorized.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/kms/services": { + "post": { + "tags": [ + "trusted_infrastructure/kms/services" + ], + "summary": "Registers a Key Provider Service instance in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ManageTrustedHosts.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesCreate" + } + } + ], + "responses": { + "201": { + "description": "ID of the newly registered Key Provider Service instance.\nThe result will be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the CreateSpec contains invalid data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/kms/services/{service}": { + "get": { + "tags": [ + "trusted_infrastructure/kms/services" + ], + "summary": "Returns the detailed information about a registered Key Provider Service instance in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the Key Provider Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified Key Provider Service instance.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesInfo" + } + }, + "500": { + "description": "if an error occurred while getting the data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no Key Provider Service instance with the specified ID.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/kms/services" + ], + "summary": "Removes a currently registered Key Provider Service instance from this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ManageTrustedHosts.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the Key Provider Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the Key Provider Service instance is used by a configuration on a cluster level.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the Key Provider Service instance is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/kms/services?action=query": { + "post": { + "tags": [ + "trusted_infrastructure/kms/services" + ], + "summary": "Returns basic information about all registered Key Provider Service instances in this vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesList" + } + } + ], + "responses": { + "200": { + "description": "Basic information about all registered Key Provider Service instances in this vCenter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesSummary" + } + } + }, + "500": { + "description": "if an error occurred while getting the data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/principal": { + "get": { + "tags": [ + "trusted_infrastructure/principal" + ], + "summary": "Returns information about the STS used by this vCenter instance.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadStsInfo.", + "parameters": [], + "responses": { + "200": { + "description": "@{link Info} a summary containing the certificates used to sign tokens and the solution user used to retrieve them.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructurePrincipalInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters" + ], + "summary": "Returns a list of clusters for this vCenter instance which matches the TrustAuthorityClusters.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the attribute TrustAuthorityClusters.FilterSpec.cluster requires System.View.", + "parameters": [ + { + "in": "query", + "name": "cluster", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifies the cluster.\ncluster If {@term.unset} return all Trust Authority Clusters.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "state", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "ENABLE", + "DISABLE" + ] + }, + "description": "The state of the TrustAuthorityClusters.\nstate If {@term.unset} return all Trust Authority Clusters." + } + ], + "responses": { + "200": { + "description": "List of TrustAuthorityClusters.Summary for a TrustAuthorityClusters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters" + ], + "summary": "Get the result of the last Update operation which matches the cluster id.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Cluster id.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "The TrustAuthorityClusters.Info instance which contains information about the state of the cluster.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't match to any ClusterComputeResource.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/os/esx/base-images/{version}?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/os/esx/base_images" + ], + "summary": "Get the trusted ESX base version details.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "The ESX base image version.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage." + } + ], + "responses": { + "202": { + "description": "The version info", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the version is invalid or the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the version or cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/os/esx/base_images" + ], + "summary": "Remove a trusted ESX base image of each ESX in the cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "The ESX base image version.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the version is invalid or the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the version or cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/os/esx/base-images?action=import-from-imgdb&vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/os/esx/base_images" + ], + "summary": "Import ESX metadata as a new trusted base image to each host in the cluster. \n Import a boot_imgdb.tgz file which contains metadata that describes a trusted ESX base image. A boot_imgdb.tgz file can be downloaded from a representative host.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationOsEsxBaseImagesImportFromImgdbTask" + } + } + ], + "responses": { + "202": { + "description": "The imported imgdb version identifier.\nThe result will be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the imgdb is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "import_from_imgdb$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/os/esx/base-images?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/os/esx/base_images" + ], + "summary": "Return a list of trusted ESX base images.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "version", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Search criteria by ESX base image version numbers.\nversion if {@term.unset} return all ESX version numbers.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage." + }, + { + "in": "query", + "name": "display_name", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Search criteria by ESX base image version version numbers.\ndisplayName if {@term.unset} return all ESX display version numbers." + }, + { + "in": "query", + "name": "health", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "description": "Search criteria by health indicator.\nhealth if {@term.unset} return all health indicators." + } + ], + "responses": { + "202": { + "description": "A list of configured trusted ESX base images.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/service-status?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/service_status" + ], + "summary": "Return the Attestation service health in the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "The Attestation service health status in the entire cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/tpm2/ca-certificates/{name}?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/ca_certificates" + ], + "summary": "Get the TPM CA certificate details on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The CA certificate name.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.CaCertificate." + } + ], + "responses": { + "202": { + "description": "CA certificate info.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the name is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the CA certificate is not found or cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/ca_certificates" + ], + "summary": "Remove a TPM CA certificate on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The CA certificate name.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.CaCertificate." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the name is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the cluster doesn't match to any cluster in the vCenter or given name is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/tpm2/ca-certificates?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/ca_certificates" + ], + "summary": "Return a list of configured TPM CA certificates on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "A list of configured TPM CA certificates.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the cluster doesn't match to any cluster in the vCenter or given name is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/ca_certificates" + ], + "summary": "Add a new TPM CA certificate on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2CaCertificatesCreateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the configuration is invalid or the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/tpm2/endorsement-keys/{name}?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/endorsement_keys" + ], + "summary": "Get the TPM endorsement key details on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The endorsement key name.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.EndorsementKey." + } + ], + "responses": { + "202": { + "description": "The endorsement key info.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the name is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the endorsement key is not found or cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/endorsement_keys" + ], + "summary": "Remove a TPM endorsement key on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The endorsement key name.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.EndorsementKey." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the name is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the name is not found or cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/tpm2/endorsement-keys?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/endorsement_keys" + ], + "summary": "Return a list of configured TPM endorsement keys in a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "A list of configured endorsement keys.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/endorsement_keys" + ], + "summary": "Add a new TPM endorsement key on a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2EndorsementKeysCreateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the configuration is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/attestation/tpm2/settings?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/settings" + ], + "summary": "Return the TPM 2.0 protocol settings.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "The settings.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/attestation/tpm2/settings" + ], + "summary": "Set the TPM 2.0 protocol settings.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The id of the cluster on which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2SettingsUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the spec is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if cluster doesn't match to any cluster in the vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/consumer-principals/{profile}?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/consumer_principals" + ], + "summary": "Retrieve information for a specific profile.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trust Authority Cluster on which the profile is configured.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "profile", + "description": "The ID of the profile.\nThe parameter must be an identifier for the resource type: esx.authentication.clientprofile." + } + ], + "responses": { + "202": { + "description": "information for a specific profile.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no profile configured with that ID.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/consumer_principals" + ], + "summary": "Removes the read-only policy configured on ESX for a specific principal.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trust Authority Cluster to configure.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "profile", + "description": "The ID of the connection profile to modify.\nThe parameter must be an identifier for the resource type: esx.authentication.clientprofile." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no profile configured with that ID.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/consumer-principals?action=query&vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/consumer_principals" + ], + "summary": "Lists all policies configured on a specific cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trust Authority Cluster on which the profile is configured.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsListTask" + } + } + ], + "responses": { + "202": { + "description": "the list of profiles matching the filter for that cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no profile configured with that ID.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/consumer-principals?vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/consumer_principals" + ], + "summary": "Creates a profile with the specified connection information on all hosts from a Trust Authority Cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trust Authority Cluster to configure.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsCreateTask" + } + } + ], + "responses": { + "202": { + "description": "a unique identifier of the profile\nThe result will be an identifier for the resource type: esx.authentication.clientprofile.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if a profile for the issuer already exists.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyExists" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if there is no such cluster.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}/client-certificate/csr?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/client_certificate/csr" + ], + "summary": "Get existing certificate signing request (CSR) for the client certificate. \n The CSR will allow the certificate to be signed by a third party. Once the CSR is signed, certificate may be added as a client certificate.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "The client CSR, PEM and host ID which issued it.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the provider or cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/client_certificate/csr" + ], + "summary": "Generate a certificate signing request (CSR) for the client certificate. This overwrites any existing CSR. \n The CSR will allow the certificate to be signed by a third party. Once the CSR is signed, certificate may be added as a client certificate. \n\n Calling the API repeatedly will result in a generating a new CSR each time.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "The client CSR, PEM and host ID which issued it.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the provider or cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}/client-certificate?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/client_certificate" + ], + "summary": "Return the existing client certificate.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "Client certificate, PEM.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/client_certificate" + ], + "summary": "Update the client certificate. \n The key server will use this certificate to validate the client connection. If a client certificate already exists, it will be replaced. \n\n An optional private key can be specified if the certificate has already been provisioned.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersClientCertificateUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the certificate or private key is invalid or cluster/provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/client_certificate" + ], + "summary": "Generate a new self signed client certificate. Existing client certificate is overwritten. The key server will use this certificate to validate the client connection.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}/credential?vmw-task=true": { + "put": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/credential" + ], + "summary": "Set the key server credential.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCredentialSetTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the provider or cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}/peer-certs/current?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/current_peer_certificates" + ], + "summary": "Return the remote server certificates. \n Contacts the configured key servers and attempts to retrieve their certificates. These certificates might not yet be trusted. \n\n If the returned certificates are to be considered trustworthy, then it must be added to the list of trusted server certificates by adding to the certificates returned by TrustedPeerCertificates.get and invoking TrustedPeerCertificates.update with the updated list of certificates.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + }, + { + "in": "query", + "name": "server_names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that key server must have to match the filter (see CurrentPeerCertificates.Summary.server-name).\nIf unset or empty, key servers with any name match the filter." + }, + { + "in": "query", + "name": "trusted", + "type": "boolean", + "description": "Trust status that server certificates must have to match the filter (see CurrentPeerCertificates.Summary.trusted).\nIf unset, trusted and untrusted server certificates match the filter." + } + ], + "responses": { + "202": { + "description": "Summary of server certificates.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the cluster or provider id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}/peer-certs/trusted?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/trusted_peer_certificates" + ], + "summary": "Return the list of trusted server certificates.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "Info containing server certificates, PEM.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If cluster or provider id are empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers/trusted_peer_certificates" + ], + "summary": "Update trusted server certificate(s). \n The client will use these certificates to validate the server connection. The existing list of trusted certificates will be overwritten. \n\n The client will not trust the server connection until a server certificate has been set.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersTrustedPeerCertificatesUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If one or more certificates are invalid or the cluster/provider Id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers/{provider}?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers" + ], + "summary": "Return information about a Key Provider.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "Provider information.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the cluster or provider id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers" + ], + "summary": "Update an existing Key Provider.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the cluster or provider id is empty, or the spec is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers" + ], + "summary": "Remove a Key Provider.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "Identifier of the provider.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the cluster or provider id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster or provider is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/providers?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers" + ], + "summary": "Return a list of summary of Key Providers.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "List of providers.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + }, + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/providers" + ], + "summary": "Add a new Key Provider.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCreateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the spec is invalid or cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}/kms/service-status?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters/kms/service_status" + ], + "summary": "Return the Key Provider Service health in the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "The Key Provider Service health status in the entire cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "For any other error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "If the cluster id is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "If the cluster is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "If the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-clusters/{cluster}?vmw-task=true": { + "patch": { + "tags": [ + "trusted_infrastructure/trust_authority_clusters" + ], + "summary": "Updates the state of a cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Cluster id.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersUpdateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if spec doesn't match to any cluster compute resource.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-hosts/attestation": { + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_hosts/attestation" + ], + "summary": "Returns a list of the hosts running a Attestation Service matching the specified Attestation.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource HostSystem referenced by the attribute Attestation.FilterSpec.hosts requires System.View. \n - The resource ClusterComputeResource referenced by the attribute Attestation.FilterSpec.clusters requires System.View.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsAttestationList" + } + }, + { + "required": false, + "in": "query", + "name": "projection", + "description": "{ 1. The connection information could include the certificates or be a shorter summary. }, { 2. The type of the returned summary - brief, normal, or full.\nIf {@term.unset} a normal projection will be used. }", + "type": "string", + "enum": [ + "FULL", + "NORMAL", + "BRIEF" + ] + } + ], + "responses": { + "200": { + "description": "List of Attestation.Summary of Attestation Services.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsAttestationSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the response data will exceed the message limit.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-hosts/kms?action=query": { + "post": { + "tags": [ + "trusted_infrastructure/trust_authority_hosts/kms" + ], + "summary": "Returns a list of the hosts running a Key Provider Service matching the specified Kms.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource HostSystem referenced by the attribute Kms.FilterSpec.hosts requires System.View. \n - The resource ClusterComputeResource referenced by the attribute Kms.FilterSpec.clusters requires System.View.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsKmsList" + } + }, + { + "required": false, + "in": "query", + "name": "projection", + "description": "{ 1. The connection information could include the certificates or be a shorter summary. }, { 2. The type of the returned summary - brief, normal, or full.\nIf {@term.unset} a normal projection will be used. }", + "type": "string", + "enum": [ + "FULL", + "NORMAL", + "BRIEF" + ] + } + ], + "responses": { + "200": { + "description": "List of Kms.Summary of Key Provider Services.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsKmsSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the response data will exceed the message limit.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-hosts/{host}/attestation/": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_hosts/attestation" + ], + "summary": "Returns the connection info about the Attestation Service running on the specified host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource HostSystem referenced by the parameter host requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "@{link vcenter.Host} id.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The Attestation.Info instance which contains the information necessary to connect to the Attestation Service.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsAttestationInfo" + } + }, + "500": { + "description": "if connection to host failed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if host doesn't match to any Host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trust-authority-hosts/{host}/kms/": { + "get": { + "tags": [ + "trusted_infrastructure/trust_authority_hosts/kms" + ], + "summary": "Returns the connection info about the Key Provider Service running on the specified host.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource HostSystem referenced by the parameter host requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "@{link vcenter.Host} id.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "The Kms.Info instance which contains the information necessary to connect to the Key Provider Service.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsKmsInfo" + } + }, + "500": { + "description": "if connection to host failed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if host doesn't match to any Host.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services-applied-config?action=query&vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services_applied_config" + ], + "summary": "Returns basic information about the health of all Attestation Service configurations applied to the cluster with respect to the desired state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigListTask" + } + } + ], + "responses": { + "202": { + "description": "The health status for each applied configuration in the given cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services-applied-config?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services_applied_config" + ], + "summary": "Returns detailed information about the health of the specified Attestation Service configuration applied to the cluster with respect to the desired state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "hostname", + "type": "string", + "description": "The IP address or DNS resolvable name of the service.", + "required": true + }, + { + "in": "query", + "name": "port", + "type": "integer", + "description": "The port of the service.\nIf unset, port 443 will be used.", + "required": false + } + ], + "responses": { + "202": { + "description": "Detailed information about the health of the specified Attestation Service configuration applied to the cluster with respect to the desired state.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter or if no service corresponding to the given address is found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services_applied_config" + ], + "summary": "Update the applied Attestation Service configuration on the given Trusted Cluster to be consistent with the desired state. This method has no affect on the desired state, apart from it being used as a reference point for the remediation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trusted Cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services_applied_config" + ], + "summary": "Delete the Attestation Service configuration that has been applied to the given cluster. This method has no affect on the desired state, it only removes applied Attestation Service configuration from any Trusted Hosts within the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services/{service}": { + "get": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services" + ], + "summary": "Returns detailed information about the given registered Attestation Service instance that is configured for the given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "The ID of the service.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified Attestation Service configured for the given cluster.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the cluster or the service ID is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services/{service}?vmw-task=true": { + "delete": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services" + ], + "summary": "Removes the Attestation Service instance from the configuration of the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "the unique ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the registered Attestation Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Attestation Service instance or the cluster are not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services?action=query": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services" + ], + "summary": "Returns the basic information about all configured Attestation Service instances used by this cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesList" + } + } + ], + "responses": { + "200": { + "description": "Basic information about all configured Attestation Service instances used by this cluster.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the cluster ID is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/attestation/services?vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/attestation/services" + ], + "summary": "Configures the cluster to use a the given registered Attestation Service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateTask" + } + } + ], + "responses": { + "202": { + "description": "ID of the configured Attestation Service instance.\nThe result will be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the CreateSpec is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if all the hosts in the cluster do not have VMware vSphere Trust Authority enabled license.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the cluster ID is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services-applied-config?action=query&vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services_applied_config" + ], + "summary": "Returns basic information about the health of all Key Provider Service configurations applied to the cluster with respect to the desired state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigListTask" + } + } + ], + "responses": { + "202": { + "description": "The health status for each applied configuration in the given cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services-applied-config?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services_applied_config" + ], + "summary": "Returns detailed information about the health of the specified Key Provider Service configuration applied to the cluster with respect to the desired state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "hostname", + "type": "string", + "description": "The IP address or DNS resolvable name of the service.", + "required": true + }, + { + "in": "query", + "name": "port", + "type": "integer", + "description": "The port of the service.\nIf unset, port 443 will be used.", + "required": false + } + ], + "responses": { + "202": { + "description": "Detailed information about the health of the specified Key Provider Service configuration applied to the cluster with respect to the desired state.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter or if no service corresponding to the given address is found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services_applied_config" + ], + "summary": "Update the applied Key Provider Service configuration on the given Trusted Cluster to be consistent with the desired state. This method has no affect on the desired state, apart from it being used as a reference point for the remediation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the Trusted Cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services_applied_config" + ], + "summary": "Delete the Key Provider Service configuration that has been applied to the given cluster. This method has no affect on the desired state, it only removes applied Key Provider Service configuration from any Trusted Hosts within the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services/{service}": { + "get": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services" + ], + "summary": "Returns detailed information about the given Key Provider Service instance used by the given cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "The ID of the service.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service." + } + ], + "responses": { + "200": { + "description": "Detailed information about the given Key Provider Service instance used by the given cluster.", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesInfo" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the cluster or the service ID is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services/{service}?vmw-task=true": { + "delete": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services" + ], + "summary": "Removes the Key Provider Service instance from the configuration of the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "the unique ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "the registered Key Provider Service instance unique identifier.\nThe parameter must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the Key Provider Service instance or the cluster are not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services?action=query": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services" + ], + "summary": "Returns basic information about all configured Key Provider Service instances used by this cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires TrustedAdmin.ReadTrustedHosts. \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesList" + } + } + ], + "responses": { + "200": { + "description": "basic information about all configured Key Provider Service instances used by this cluster", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesSummary" + } + } + }, + "500": { + "description": "if there is a generic error.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the cluster ID is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/kms/services?vmw-task=true": { + "post": { + "tags": [ + "trusted_infrastructure/trusted_clusters/kms/services" + ], + "summary": "Configures the cluster to use a the given registered Key Provider Service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateTask" + } + } + ], + "responses": { + "202": { + "description": "ID of the configured Key Provider Service instance.\nThe result will be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the CreateSpec is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if all the hosts in the cluster do not have VMware vSphere Trust Authority enabled license.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the cluster ID is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "create$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/trusted-infrastructure/trusted-clusters/{cluster}/services-applied-config?vmw-task=true": { + "get": { + "tags": [ + "trusted_infrastructure/trusted_clusters/services_applied_config" + ], + "summary": "Returns detailed information about the health of the applied Trust Authority Component configurations in the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "Detailed information about the health of the applied Trust Authority Component configurations in the given cluster.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get$task", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "trusted_infrastructure/trusted_clusters/services_applied_config" + ], + "summary": "Update all applied Trust Authority Component configuration on the given cluster to be consistent with the desired state. This method has no affect on the desired state, apart from it being used as a reference point for the remediation. If the cluster is not a Trusted Cluster, the method will remove all Trust Authority Component configuration from the Trusted Hosts in the cluster, if such hosts are found.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update$task", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "trusted_infrastructure/trusted_clusters/services_applied_config" + ], + "summary": "Delete all Trust Authority Components configuration that has been applied to the given cluster. This method has no affect on the desired state, it only removes applied Trust Authority Component configurations from any Trusted Hosts within the given cluster.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "The ID of the cluster against which the operation will be executed.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if there are ongoing mutating operations.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "400": { + "description": "if the cluster ID is empty.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if no cluster corresponding to the given ID is found within this vCenter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "delete$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/active?action=get": { + "post": { + "tags": [ + "vcha/cluster/active" + ], + "summary": "Retrieves information about the active node of a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterActiveGet" + } + } + ], + "responses": { + "200": { + "description": "Info Information about the VCHA network and placement of the active node.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterActiveInfo" + } + }, + "400": { + "description": "If the active node is on more than one datastore.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidElementConfiguration" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. \n - If partial is false or unset, then the operation execution requires the Global.VCServer privilege.\n - If partial is true, then the operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "If the management interface IP address assignment is not static.\nIf any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/deployment-type": { + "get": { + "tags": [ + "vcha/cluster/deployment_type" + ], + "summary": "Retrieves the deployment type of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the deployment type information of the the VCHA cluster.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterDeploymentTypeInfo" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/mode": { + "get": { + "tags": [ + "vcha/cluster/mode" + ], + "summary": "Retrieves the current mode of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the mode of the the VCHA cluster.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterModeInfo" + } + }, + "400": { + "description": "If the VCHA cluster is not configured.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/mode?vmw-task=true": { + "put": { + "tags": [ + "vcha/cluster/mode" + ], + "summary": "Manipulates the mode of a VCHA Cluster. Following mode transitions are allowed:\n enabled -> disabled - Allowed only in healthy and degraded states.\n enabled -> maintenance - Allowed only in healthy state.\n disabled -> enabled - Allowed only in healthy state.\n maintenance -> enabled - Allowed only in healthy state with all nodes are running the same version.\n maintenance -> disabled - Allowed only in healthy state with all nodes are running the same version.\n All other transitions are not allowed. \n VCHA Cluster configuration remains intact in any of the cluster modes.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVchaClusterModeSetTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "set$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/passive?action=check": { + "post": { + "tags": [ + "vcha/cluster/passive" + ], + "summary": "Validates the specified passive node's placement configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterPassiveCheck" + } + } + ], + "responses": { + "200": { + "description": "CheckResult structure containing errors and warnings.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterPassiveCheckResult" + } + }, + "400": { + "description": "If the clone operation is not allowed in the current state of the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/passive?action=redeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster/passive" + ], + "summary": "Creates the passive node in a degraded cluster with node location information and pre-existing VCHA cluster configuration from the active node.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterPassiveRedeployTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the management vCenter server cannot be validated.\n The value of the data field of Error will be a structure that contains all the fields defined in CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "redeploy$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/witness?action=check": { + "post": { + "tags": [ + "vcha/cluster/witness" + ], + "summary": "Validates the specified witness node's placement configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterWitnessCheck" + } + } + ], + "responses": { + "200": { + "description": "CheckResult structure containing errors and warnings.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterWitnessCheckResult" + } + }, + "400": { + "description": "If the clone operation is not allowed in the current state of the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster/witness?action=redeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster/witness" + ], + "summary": "Creates the witness node in a degraded cluster with node location information and pre-existing VCHA cluster configuration from the active node.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterWitnessRedeployTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the management vCenter server cannot be validated.\n The value of the data field of Error will be a structure that contains all the fields defined in CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "redeploy$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster?action=deploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Prepares, clones, and configures a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterDeployTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the management vCenter server cannot be validated.\n The value of the data field of Error will be a structure that contains all the fields defined in CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "deploy$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster?action=failover&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Initiates failover from the active vCenter node to the passive node. \n For forced failover, Active node immediately initiates a failover. This may result into a data loss after failover. \n\n For planned failover, Active node flushes all the state to the Passive node, waits for the flush to complete before causing a failover. After the failover, Passive node starts without any data loss. \n\n A failover is allowed only in the following cases: \n\n 1. Cluster's mode is enabled and all cluster members are present.\n 2. Cluster's mode is maintenance and all cluster members are present.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVchaClusterFailoverTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "failover$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster?action=get": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Retrieves the status of a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterGet" + } + } + ], + "responses": { + "200": { + "description": "Info structure containing the VCHA configuration and health information.", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterInfo" + } + }, + "400": { + "description": "If the SSL certificate of the management vCenter server cannot be validated.\n The value of the data field of Error will be a structure that contains all the fields defined in CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. \n - If partial is false or unset, then the operation execution requires the Global.VCServer privilege.\n - If partial is true, then the operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/cluster?action=undeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Destroys the VCHA cluster and removes all VCHA specific information from the VCVA appliance. Optionally, the passive and witness node virtual machines will be deleted only if VCHA was deployed using automatic deployment. The active node in the cluster continues to run as a standalone VCVA appliance after the destroy operation has been performed. \n If the VCHA cluster is in a transition state and not configured, then the VCHA cluster specific information is removed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVchaClusterUndeployTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "400": { + "description": "If the SSL certificate of the management vCenter server cannot be validated.\n The value of the data field of Error will be a structure that contains all the fields defined in CertificateInfo.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnverifiedPeer" + } + }, + "404": { + "description": "If the passive virtual machine is not managed by the specified vCenter server.\nIf the witness virtual machine is not managed by the specified vCenter server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "undeploy$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vcha/operations": { + "get": { + "tags": [ + "vcha/operations" + ], + "summary": "Retrieves the current active and disabled operations of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the current running and disabled operations of a VCHA cluster.", + "schema": { + "$ref": "#/definitions/VcenterVchaOperationsInfo" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource Folder referenced by the attribute VM.InventoryPlacementSpec.folder requires VirtualMachine.Inventory.Create. \n - The resource ResourcePool referenced by the attribute VM.ComputePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource Datastore referenced by the attribute VM.StoragePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Network referenced by the attribute Ethernet.BackingSpec.network requires Network.Assign.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMCreate" + } + } + ], + "responses": { + "201": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if VM.CreateSpec.guest-os is not supported for the requested virtual hardware version and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if any of the resources needed to create the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "VM" + ], + "summary": "Returns information about at most 4000 visible (subject to permission checks) virtual machines in vCenter matching the VM.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "vms", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of virtual machines that can match the filter.\nIf unset or empty, virtual machines with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine." + }, + { + "in": "query", + "name": "names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that virtual machines must have to match the filter (see VM.Info.name).\nIf unset or empty, virtual machines with any name match the filter." + }, + { + "in": "query", + "name": "folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Hosts that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines on any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resource pools that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "power_states", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "POWERED_OFF", + "POWERED_ON", + "SUSPENDED" + ] + }, + "description": "Power states that a virtual machine must be in to match the filter (see Power.Info.state.\nIf unset or empty, virtual machines in any power state match the filter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the virtual machines matching the VM.FilterSpec.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVMSummary" + } + } + }, + "400": { + "description": "if the VM.FilterSpec.power-states field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if more than 4000 virtual machines match the VM.FilterSpec.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items": { + "post": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Creates a library item in content library from a virtual machine. This operation creates a library item in content library whose content is a virtual machine template created from the source virtual machine, using the supplied create specification. The virtual machine template is stored in a newly created library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.Library referenced by the attribute LibraryItems.CreateSpec.library requires ContentLibrary.AddLibraryItem. \n - The resource VirtualMachine referenced by the attribute LibraryItems.CreateSpec.source-vm requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.CreateSpecVmHomeStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.CreateSpecVmHomeStoragePolicy.policy requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.CreateSpecDiskStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.CreateSpecDiskStoragePolicy.policy requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.CreateSpec.disk-storage-overrides requires System.Read. \n - The resource Folder referenced by the attribute LibraryItems.CreatePlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItems.CreatePlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItems.CreatePlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute LibraryItems.CreatePlacementSpec.cluster requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreate" + } + } + ], + "responses": { + "201": { + "description": "Identifier of the newly created library item.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the source virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "500": { + "description": "if any of the resources needed to create the virtual machine template could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the source virtual machine specified by LibraryItems.CreateSpec.source-vm does not exist.\n if the library specified by LibraryItems.CreateSpec.library does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}": { + "get": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Returns information about a virtual machine template contained in the library item specified by templateLibraryItem\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "identifier of the library item containing the virtual machine template.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "Information about the virtual machine template item contained in the library item.\nIf unset, the library item specified by templateLibraryItem does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsInfo" + } + }, + "500": { + "description": "if the virtual machine template's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the library item could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/check-outs": { + "get": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Returns commonly used information about the virtual machines that are checked out of the library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the check outs.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsSummary" + } + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library item does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/check-outs/{vm}": { + "get": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Returns the information about a checked out virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the checked out virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about a check out.", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsInfo" + } + }, + "404": { + "description": "if the library item or virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not checked out of the library item.\n if the library item does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Deletes the checked out virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Delete. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the checked out virtual machine to delete.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library item or virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is running (powered on).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/check-outs/{vm}?action=check-in": { + "post": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Checks in a virtual machine into the library item. This operation updates the library item to contain the virtual machine being checked in as a template. This template becomes the latest version of the library item. The previous virtual machine template contained in the library item is available as a backup and its information can be queried using the Versions service. At most one previous version of a virtual machine template is retained in the library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckInTemplate. \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the content library item in which the virtual machine is checked in.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine to check into the library item.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsCheckIn" + } + } + ], + "responses": { + "200": { + "description": "The new version of the library item.\nThe result will be an identifier for the resource type: content.library.item.Version.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the operation cannot be performed because of the virtual machine's current state. For example, if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the item specified by templateLibraryItem does not exist.\n if the virtual machine specified by vm does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check_in", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/check-outs?action=check-out": { + "post": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Checks out a library item containing a virtual machine template. This operation makes a copy of the source virtual machine template contained in the library item as a virtual machine. The virtual machine is copied with the same storage specification as the source virtual machine template. Changes to the checked out virtual machine do not affect the virtual machine template contained in the library item. To save these changes back into the library item, CheckOuts.check-in the virtual machine. To discard the changes, CheckOuts.delete the virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckOutTemplate. \n - The resource Folder referenced by the attribute CheckOuts.PlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute CheckOuts.PlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute CheckOuts.PlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute CheckOuts.PlacementSpec.cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the content library item containing the source virtual machine template to be checked out.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsCheckOut" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the virtual machine that was checked out of the library item.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if spec contains invalid arguments.\n if the library item is a member of a subscribed library.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the library item specified by templateLibraryItem cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check_out", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/versions": { + "get": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Returns commonly used information about the live versions of a virtual machine template library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the library item versions.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsVersionsSummary" + } + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library item does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/versions/{version}": { + "get": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Returns information about the live version of a library item containing a virtual machine template.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "200": { + "description": "Information about the specified library item version.", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsVersionsInfo" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the library item does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Deletes the virtual machine template contained in the library item at the specified version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.DeleteLibraryItem. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item to delete.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the specified version is the latest version of the library item.\n if the library item does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}/versions/{version}?action=rollback": { + "post": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Rollbacks a library item containing a virtual machine template to a previous version. The virtual machine template at the specified version becomes the latest virtual machine template with a new version identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckInTemplate. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item to rollback.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsVersionsRollback" + } + } + ], + "responses": { + "200": { + "description": "The new version of the library item.\nThe result will be an identifier for the resource type: content.library.item.Version.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if a virtual machine is checked out of the library item.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + } + }, + "operationId": "rollback", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm-template/library-items/{template_library_item}?action=deploy": { + "post": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Deploys a virtual machine as a copy of the source virtual machine template contained in the library item specified by templateLibraryItem. It uses the deployment specification in spec. If LibraryItems.DeploySpec.powered-on and/or LibraryItems.DeploySpec.guest-customization are specified, the server triggers the power on and/or guest customization operations, which are executed asynchronously.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires VirtualMachine.Provisioning.DeployTemplate. \n - The resource Datastore referenced by the attribute LibraryItems.DeploySpecVmHomeStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.DeploySpecVmHomeStoragePolicy.policy requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.DeploySpecDiskStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.DeploySpecDiskStoragePolicy.policy requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.DeploySpec.disk-storage-overrides requires System.Read. \n - The resource Folder referenced by the attribute LibraryItems.DeployPlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItems.DeployPlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItems.DeployPlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute LibraryItems.DeployPlacementSpec.cluster requires System.Read. \n - The resource vcenter.vm.hardware.Ethernet referenced by the map key of attribute LibraryItems.HardwareCustomizationSpec.nics requires System.Read. \n - The resource Network referenced by the attribute LibraryItems.EthernetUpdateSpec.network requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the attribute LibraryItems.HardwareCustomizationSpec.disks-to-remove requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.HardwareCustomizationSpec.disks-to-update requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "identifier of the content library item containing the source virtual machine template to be deployed.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploy" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the deployed virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if either a specified host or a specified datastore is in an invalid state for the deployment, such as maintenance mode.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if there was an error in allocating any of the resources required by the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the library item specified by templateLibraryItem cannot be found.\n if any resource specified by a field of the LibraryItems.DeploySpec structure, specified by spec cannot be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "deploy", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}": { + "get": { + "tags": [ + "VM" + ], + "summary": "Returns information about a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVMInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "VM" + ], + "summary": "Deletes a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the virtual machine is running (powered on).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/compute/policies/{policy}": { + "get": { + "tags": [ + "vm/compute/policies" + ], + "summary": "Returns information about the compliance of a virtual machine with a compute policy.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine to query the status for.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "Identifier of the policy to query the status for.\nThe parameter must be an identifier for the resource type: vcenter.compute.Resources.COMPUTE_POLICY." + } + ], + "responses": { + "200": { + "description": "Information about the compliance of the specified virtual machine with the specified compute policy.", + "schema": { + "$ref": "#/definitions/VcenterVmComputePoliciesInfo" + } + }, + "404": { + "description": "if a virtual machine with the given identifier does not exist, or if a policy with the given identifier does not exist.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/console/tickets": { + "post": { + "tags": [ + "vm/console/tickets" + ], + "summary": "Creates a virtual machine console ticket of a given ticket type. The created ticket is a one time use URI. The validity of the ticket is 30 minutes, if not used with in the time frame the ticket expires. \n The VMRC ticket contains the IP address or the DNS resolvable name of the vCenter server. This ticket requires installation of VMware Workstation, VMware Fusion or VMRC to be installed on the machine where the ticket has to be opened. This ticket can be acquired even when the VM is turned off. \n\n The WEBMKS ticket contains the IP address of the DNS resolvable name of the ESX server. This ticket requires user to embed this ticket in a HTML page using VMware HTML Console SDK - https://www.vmware.com/support/developer/html-console This ticket can be acquired only when the VM is turned on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmConsoleTicketsCreate" + } + } + ], + "responses": { + "201": { + "description": "Commonly used information about the virtual machine console ticket.", + "schema": { + "$ref": "#/definitions/VcenterVmConsoleTicketsSummary" + } + }, + "500": { + "description": "if the virtual machine's configuration or execution state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the virtual machine is powered off and requested ticket type is WEBMKS", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/data-sets": { + "post": { + "tags": [ + "vm/data_sets" + ], + "summary": "Creates a new data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetCreate.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmDataSetsCreate" + } + } + ], + "responses": { + "201": { + "description": "The identifier of the new data set.\nThe result will be an identifier for the resource type: vcenter.vm.DataSet.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "500": { + "description": "if the new data set requires more resources than are available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/data_sets" + ], + "summary": "Lists the data sets of a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetList.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "The list of data sets.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmDataSetsSummary" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/data-sets/{data_set}": { + "get": { + "tags": [ + "vm/data_sets" + ], + "summary": "Returns information describing a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetGet.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set to be queried.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + } + ], + "responses": { + "200": { + "description": "Details about the data set.", + "schema": { + "$ref": "#/definitions/VcenterVmDataSetsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/data_sets" + ], + "summary": "Modifies the attributes of a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetUpdate.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set to be queried.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmDataSetsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the new data set attributes requires more resources than are available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/data_sets" + ], + "summary": "Delete a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetDelete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + }, + { + "required": false, + "type": "boolean", + "in": "query", + "name": "force", + "description": "If true, delete the data set even if it is not empty.\nIf unset a ResourceInUse error will be reported if the data set is not empty. This is the equivalent of passing the value false." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/data-sets/{data_set}/entries": { + "get": { + "tags": [ + "vm/data_sets/entries" + ], + "summary": "Lists all entry keys in a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetEntryList.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + } + ], + "responses": { + "200": { + "description": "The keys belonging to the data set.\nThe result will contain identifiers for the resource type: vcenter.vm.data_sets.Entry.", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the data set access mode prevents the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/data-sets/{data_set}/entries/{key}": { + "put": { + "tags": [ + "vm/data_sets/entries" + ], + "summary": "Creates or updates an entry in a data set. If an entry whose key matches key already exists, it will replace the existing value, otherwise it will create a new entry.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetEntrySet.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "key", + "description": "The key of the entry to set. A key can be at most 4096 bytes.\nThe parameter must be an identifier for the resource type: vcenter.vm.data_sets.Entry." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmDataSetsEntriesSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the new data set requires more resources than are available.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the data set access mode prevents the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/data_sets/entries" + ], + "summary": "Retrieves the value of an entry in a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetEntryGet.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "key", + "description": "The key of the entry to retrieve.\nThe parameter must be an identifier for the resource type: vcenter.vm.data_sets.Entry." + } + ], + "responses": { + "200": { + "description": "the value of the entry.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.\nif there is no entry associated with key in the dataSet.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the data set access mode prevents the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/data_sets/entries" + ], + "summary": "Deletes an entry in a data set.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.DataSets.DataSetEntryDelete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "data_set", + "description": "Identifier of the data set.\nThe parameter must be an identifier for the resource type: vcenter.vm.DataSet." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "key", + "description": "The key of the entry to delete.\nThe parameter must be an identifier for the resource type: vcenter.vm.data_sets.Entry." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the virtual hardware version of the virtual machine does not support DataSets\nif the ESXi host version does not support DataSets", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif the data set is not found.\nif there is no entry associated with key in the dataSet.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if the data set access mode prevents the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/customization": { + "put": { + "tags": [ + "vm/guest/customization" + ], + "summary": "Applies a customization specification in spec on the virtual machine in vm. This operation only sets the specification settings for the virtual machine. The actual customization happens inside the guest when the virtual machine is powered on. If spec has unset values, then any pending customization settings for the virtual machine are cleared. If there is a pending customization for the virtual machine and spec has valid content, then the existing customization setting will be overwritten with the new settings.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Provisioning.Customize.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "The unique identifier of the virtual machine that needs to be customized.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmGuestCustomizationSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the virtual machine vm is not in a powered off state.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if a customization specification is not found with the unique name in spec.\nIf the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/guest/customization" + ], + "summary": "Returns the status of the customization operation that has been applied for the virtual machine in vm.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "The unique identifier of the virtual machine that needs to be queried.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "The status of the customization operation applied for the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestCustomizationInfo" + } + }, + "404": { + "description": "If the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/environment/{name}?action=get": { + "post": { + "tags": [ + "vm/guest/environment" + ], + "summary": "Reads a single environment variable from the guest operating system. \n If the authentication uses Credentials.interactive-session, then the environment being read will be that of the user logged into the desktop. Otherwise it's the environment of the system user. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the environment variable to be read." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestEnvironmentGet" + } + } + ], + "responses": { + "200": { + "description": "The value of the name environment variable.", + "schema": { + "type": "string" + } + }, + "404": { + "description": "if the virtual machine vm is not found.\nif the environment variable name is not not set in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine vm is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "401": { + "description": "if the credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/environment?action=list": { + "post": { + "tags": [ + "vm/guest/environment" + ], + "summary": "Reads a list of environment variables from the guest operating system. \n If the authentication uses Credentials.interactive-session, then the environment being read will be that of the user logged into the desktop. Otherwise it's the environment of the system user. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestEnvironmentList" + } + } + ], + "responses": { + "200": { + "description": "Mapping from environment variable names to environment variable values, or all environment variables if nothing is specified. If any specified environment variable contained in names is not set, then nothing is returned for that variable.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "404": { + "description": "if the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine vm is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "401": { + "description": "if the credentials are not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/directories?action=create": { + "post": { + "tags": [ + "vm/guest/filesystem/directories" + ], + "summary": "Creates a directory in the guest operating system. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemDirectoriesCreate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path does not exist and createParents is not set. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if path cannot be created because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/directories?action=createTemporary": { + "post": { + "tags": [ + "vm/guest/filesystem/directories" + ], + "summary": "Creates a temporary directory. \n Creates a new unique temporary directory for the user to use as needed. The guest operating system may clean up the directory after a guest specific amount of time if parentPath is not set, or the user can remove the directory when no longer needed. \n\n The new directory name will be created in a guest-specific format using prefix, a guest generated string and suffix in parentPath. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemDirectoriesCreateTemporary" + } + } + ], + "responses": { + "200": { + "description": "The absolute path of the temporary directory that is created.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif parentPath is set and does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if parentPath cannot be accessed.\nif a file cannot be created because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create_temporary", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/directories?action=delete": { + "post": { + "tags": [ + "vm/guest/filesystem/directories" + ], + "summary": "Deletes a directory in the guest operating system. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemDirectoriesDelete" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if path cannot be accessed.\nif path cannot be deleted because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/directories?action=move": { + "post": { + "tags": [ + "vm/guest/filesystem/directories" + ], + "summary": "Renames a directory in the guest. \n Renames the directory, or copies and deletes the old contents as required by the underlying filsystem. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemDirectoriesMove" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.\nif the parent directory of newPath does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if a path cannot be accessed.\nif a path cannot be renamed or moved because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "move", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files/{path}?action=delete": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Deletes a file in the guest operating system \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "path", + "description": "The complete path to the file or symbolic link to be deleted." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesDelete" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if path cannot be accessed.\nif path cannot be deleted because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files/{path}?action=get": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Returns information about a file or directory in the guest. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "path", + "description": "The complete path to the file." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesGet" + } + } + ], + "responses": { + "200": { + "description": "Files.Info object containing information for the file.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesInfo" + } + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if path cannot be accessed.\nif path cannot be listed because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files?action=createTemporary": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Creates a temporary file. \n Creates a new unique temporary file for the user to use as needed. The user is responsible for removing it when it is no longer needed. \n\n The new file name will be created in a guest-specific format using prefix, a guest generated string and suffix in parentPath. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesCreateTemporary" + } + } + ], + "responses": { + "200": { + "description": "The absolute path of the temporary file that is created.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if parentPath is set and does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.\nif the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if parentPath cannot be accessed.\nif a file cannot be created because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create_temporary", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files?action=list": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Returns information about files and directories in the guest. \n Files are returned in operating system-specific (inode) order. If the directory is modified between queries, missing or duplicate results can occur. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesList" + } + } + ], + "responses": { + "200": { + "description": "A Files.ListResult object containing information for all the matching files in filter and the total number of files that can be returned.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesListResult" + } + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "403": { + "description": "if path cannot be accessed.\nif path cannot be listed because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files?action=move": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Renames a file in the guest. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesMove" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.\nif the parent directory of newPath does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if a path cannot be accessed.\nif a path cannot be renamed because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "move", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem/files?action=update": { + "post": { + "tags": [ + "vm/guest/filesystem/files" + ], + "summary": "Changes the file attributes of a specified file or directory inside the guest. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest operating system.\nif the operation is disabled by the VMware Tools in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif path is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if path cannot be accessed.\nif path cannot be updated because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/filesystem?action=create": { + "post": { + "tags": [ + "vm/guest/filesystem/transfers" + ], + "summary": "Initiates an operation to transfer a file to or from the guest. \n If the power state of the Virtual Machine is changed when the file transfer is in progress, or the Virtual Machine is migrated, then the transfer operation is aborted. \n\n When transferring a file into the guest and overwriting an existing file, the old file attributes are not preserved. \n\n In order to ensure a secure connection to the host when transferring a file using HTTPS, the X.509 certificate for the host must be used to authenticate the remote end of the connection. The certificate of the host that the virtual machine is running on can be retrieved using the following fields: XXX insert link to certificate in Host config XXX \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Modify.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual Machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestFilesystemTransfersCreate" + } + } + ], + "responses": { + "201": { + "description": "The URL to which the user has to send an HTTP request. The URL will become invalid once a successful request is sent. If the file is being transferred from the guest, an HTTP GET should be used. If the file is being transferred to the guest, HTTP PUT should be used. \n The URL is valid only for 10 minutes from the time it is generated. The URL becomes invalid whenever the virtual machine is powered off, suspended, unregistered or migrated to a new host. The host part of the URL is returned as * if the hostname to be used is the name of the server to which the call was made. For example, if the call is made to esx-svr-1.domain1.com, and the file is available for download from https://esx-svr-1.domain1.com/guestFile?id=1&token=1234, the URL returned may be {@literal aHR0cHM6Ly8mIzQyOy9ndWVzdEZpbGU/aWQ9MSZ0b2tlbj0xMjM0}. The client replaces the asterisk with the server name on which it invoked the call.", + "schema": { + "type": "string", + "format": "uri" + } + }, + "400": { + "description": "if the operation is not supported by the VMware Tools in the guest OS.\nif the operation is disabled by the VMware Tools in the guest OS.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.\nif Transfers.CreateSpec.path in spec is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if is insuffcient space for the new file when transferring a file to the guest.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials object was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if Transfers.CreateSpec.path in spec cannot be accessed.\nif Transfers.CreateSpec.path in spec cannot be copied because the guest authentication will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/identity": { + "get": { + "tags": [ + "vm/guest/identity" + ], + "summary": "Return information about the guest.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "guest identification information.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestIdentityInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if VMware Tools is not running.\nif VMware Tools has not provided any data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/local-filesystem": { + "get": { + "tags": [ + "vm/guest/local_filesystem" + ], + "summary": "Returns details of the local file systems in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the local file systems configured in the guest operating system.", + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmGuestLocalFilesystemInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if VMware Tools is not running.\nif VMware Tools has not provided any data.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/networking": { + "get": { + "tags": [ + "vm/guest/networking" + ], + "summary": "Returns information about the network configuration in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the networking configuration in the guest operating system.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestNetworkingInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/networking/interfaces": { + "get": { + "tags": [ + "vm/guest/networking/interfaces" + ], + "summary": "Returns information about the networking interfaces in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the interfaces configured in the guest operating system. Interfaces are ordered in a guest operating system specific determined order.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestNetworkingInterfacesInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/networking/routes": { + "get": { + "tags": [ + "vm/guest/networking/routes" + ], + "summary": "Returns information about network routing in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the network routes configured in the guest operating system.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestNetworkingRoutesInfo" + } + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/operations": { + "get": { + "tags": [ + "vm/guest/operations" + ], + "summary": "Get information about the guest operation status.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "guest operations readiness.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestOperationsInfo" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the state of VMware Tools is unknown.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/power": { + "get": { + "tags": [ + "vm/guest/power" + ], + "summary": "Returns information about the guest operating system power state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Guest OS powerstate information.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestPowerInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/power?action=reboot": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a reboot. This request returns immediately and does not wait for the guest operating system to complete the operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "reboot", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/power?action=shutdown": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a clean shutdown of all services. This request returns immediately and does not wait for the guest operating system to complete the operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "shutdown", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/power?action=standby": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a suspend operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + } + }, + "operationId": "standby", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/processes/{pid}?action=delete": { + "post": { + "tags": [ + "vm/guest/processes" + ], + "summary": "Terminates a process in the guest OS. \n On Posix guests, the process is sent a SIGTERM signal. If that doesn't terminate the process, a SIGKILL signal is sent. A process may still be running if it's stuck. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Execute.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "integer", + "format": "int64", + "required": true, + "in": "path", + "name": "pid", + "description": "Process ID of the process to be terminated" + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestProcessesDelete" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the operation is not supported by the VMware tools in the guest OS.\nif the operation is disabled by the VMware tools in the guest OS.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine vm is not found.\nif the pid is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the Processes.ProcessErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if credentials is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if credentials does not have permission to terminate the process.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/processes/{pid}?action=get": { + "post": { + "tags": [ + "vm/guest/processes" + ], + "summary": "Returns the status of a process running in the guest operating system, including those started by Processes.create that may have recently completed. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "integer", + "format": "int64", + "required": true, + "in": "path", + "name": "pid", + "description": "Specifies the process to query." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestProcessesGet" + } + } + ], + "responses": { + "200": { + "description": "The #Info for the process with id pid.", + "schema": { + "$ref": "#/definitions/VcenterVmGuestProcessesInfo" + } + }, + "400": { + "description": "if the operation is not supported by the VMware tools in the guest OS.\nif the operation is disabled by the VMware tools in the guest OS.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine vm is not found.\nif the process pid is not found. The value of vapi.std.errors.Error#data will contain all the fields defined in the Processes.ProcessErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/processes?action=create": { + "post": { + "tags": [ + "vm/guest/processes" + ], + "summary": "Starts a program in the guest operating system. \n A process started this way can have its status queried with Processes.list or Processes.get. When the process completes, its exit code and end time will be available for 5 minutes after completion. \n\n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Execute.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestProcessesCreate" + } + } + ], + "responses": { + "201": { + "description": "The process id of the program started.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + "400": { + "description": "if the operation is not supported by the VMware tools in the guest OS.\nif the operation is disabled by the VMware tools in the guest OS.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine vm is not found.\nif the program path does not exist. The value of vapi.std.errors.Error#data will contain all the fields defined in the FileErrorDetails providing additional information about the failure.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the program fails to start.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials was not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the path field of spec cannot be accessed.\nif the path field of spec cannot be run because credentials will not allow the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/guest/processes?action=list": { + "post": { + "tags": [ + "vm/guest/processes" + ], + "summary": "List the processes running in the guest operating system, plus those started by Processes.create that have recently completed. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.GuestOperations.Query.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine to perform the operation on.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmGuestProcessesList" + } + } + ], + "responses": { + "200": { + "description": "The list of running processes is returned in an array of #Summary structures.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestProcessesSummary" + } + } + }, + "400": { + "description": "if the operation is not supported by the VMware tools in the guest OS.\nif the operation is disabled by the VMware tools in the guest OS.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the VMware tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the credentials is not valid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware": { + "get": { + "tags": [ + "vm/hardware" + ], + "summary": "Returns the virtual hardware settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Virtual hardware settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware" + ], + "summary": "Updates the virtual hardware settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the requested virtual hardware version is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/nvme": { + "post": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Adds a virtual NVMe adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual NVMe adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Returns commonly used information about the virtual NVMe adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual NVMe adapters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/nvme/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Returns information about a virtual NVMe adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual NVMe adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual NVMe adapter.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual NVMe adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Removes a virtual NVMe adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual NVMe adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the virtual machine is suspended", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine or virtual NVMe adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/sata": { + "post": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Adds a virtual SATA adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual SATA adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Returns commonly used information about the virtual SATA adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual SATA adapters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/sata/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Returns information about a virtual SATA adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SATA adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual SATA adapter.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual SATA adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Removes a virtual SATA adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SATA adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the virtual machine is suspended", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine or virtual SATA adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/scsi": { + "post": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Adds a virtual SCSI adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual SCSI adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Returns commonly used information about the virtual SCSI adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual SCSI adapters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/adapter/scsi/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Returns information about a virtual SCSI adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual SCSI adapter.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Updates the configuration of a virtual SCSI adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual SCSI adapter.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Removes a virtual SCSI adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if the virtual machine is suspended", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/boot": { + "get": { + "tags": [ + "vm/hardware/boot" + ], + "summary": "Returns the boot-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Boot-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareBootInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/boot" + ], + "summary": "Updates the boot-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareBootUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one of the provided settings is not permitted; for example, specifying a negative value for Boot.UpdateSpec.delay.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/boot/device": { + "put": { + "tags": [ + "vm/hardware/boot/device" + ], + "summary": "Sets the virtual devices that will be used to boot the virtual machine. The virtual machine will check the devices in order, attempting to boot from each, until the virtual machine boots successfully. If the list is empty, the virtual machine will use a default boot sequence. There should be no more than one instance of Device.Entry for a given device type except ETHERNET in the list.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/VcenterVmHardwareBootDeviceSet" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found, or if any of the specified virtual devices is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if a any of the Device.Type values appears in more than one Device.Entry with the exception of ETHERNET, which may appear multiple times if the virtual machine has been configured with multiple Ethernet adapters.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/boot/device" + ], + "summary": "Returns an ordered list of boot devices for the virtual machine. If the list is empty, the virtual machine uses a default boot sequence.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Ordered list of configured boot devices.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareBootDeviceEntry" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/cdrom": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Adds a virtual CD-ROM device to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareCdromCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual CD-ROM device identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Returns commonly used information about the virtual CD-ROM devices belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual CD-ROM devices.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareCdromSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/cdrom/{cdrom}": { + "get": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Returns information about a virtual CD-ROM device.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual CD-ROM device.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareCdromInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Updates the configuration of a virtual CD-ROM device.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareCdromUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual CD-ROM device.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Removes a virtual CD-ROM device from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is suspended or if the virtual machine is powered on and virtual CD-ROM type is IDE.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/cdrom/{cdrom}?action=connect": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Connects a virtual CD-ROM device of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Cdrom.update operation may be used to configure the virtual CD-ROM device to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/cdrom/{cdrom}?action=disconnect": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Disconnects a virtual CD-ROM device of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the CD-ROM device is not connected to its backing resource. \n For a powered-off virtual machine, the Cdrom.update operation may be used to configure the virtual CD-ROM device to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/cpu": { + "get": { + "tags": [ + "vm/hardware/cpu" + ], + "summary": "Returns the CPU-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "CPU-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareCpuInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/cpu" + ], + "summary": "Updates the CPU-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareCpuUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if Cpu.UpdateSpec.hot-add-enabled or Cpu.UpdateSpec.hot-remove-enabled is specified and the virtual machine is not powered off.\nif Cpu.UpdateSpec.count is specified and is greater than Cpu.Info.count, Cpu.Info.hot-add-enabled is false, and the virtual machine is not powered off.\nif Cpu.UpdateSpec.count is specified and is less than Cpu.Info.count, Cpu.Info.hot-remove-enabled is false, and the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/disk": { + "post": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Adds a virtual disk to the virtual machine. While adding the virtual disk, a new VMDK file may be created or an existing VMDK file may be used to back the virtual disk.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareDiskCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual disk identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Returns commonly used information about the virtual disks belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the virtual disks.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareDiskSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/disk/{disk}": { + "get": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Returns information about a virtual disk.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual disk.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareDiskInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Updates the configuration of a virtual disk. An update operation can be used to detach the existing VMDK file and attach another VMDK file to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareDiskUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual disk.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Removes a virtual disk from the virtual machine. This operation does not destroy the VMDK file that backs the virtual disk. It only detaches the VMDK file from the virtual machine. Once detached, the VMDK file will not be destroyed when the virtual machine to which it was associated is deleted.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is suspended or if the virtual machine is powered on and virtual disk type is IDE.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/ethernet": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Adds a virtual Ethernet adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareEthernetCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual Ethernet adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or network backing is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Returns commonly used information about the virtual Ethernet adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual Ethernet adapters.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareEthernetSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/ethernet/{nic}": { + "get": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Returns information about a virtual Ethernet adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual Ethernet adapter.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareEthernetInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Updates the configuration of a virtual Ethernet adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareEthernetUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if HOST_DEVICE is specified as the type.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the virtual machine, virtual Ethernet adapter, or backing network is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Removes a virtual Ethernet adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/ethernet/{nic}?action=connect": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Connects a virtual Ethernet adapter of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Ethernet.update operation may be used to configure the virtual Ethernet adapter to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/ethernet/{nic}?action=disconnect": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Disconnects a virtual Ethernet adapter of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the Ethernet adapter is not connected to its backing resource. \n For a powered-off virtual machine, the Ethernet.update operation may be used to configure the virtual Ethernet adapter to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/floppy": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Adds a virtual floppy drive to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareFloppyCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual floppy drive identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Returns commonly used information about the virtual floppy drives belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual floppy drives.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareFloppySummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/floppy/{floppy}": { + "get": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Returns information about a virtual floppy drive.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual floppy drive.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareFloppyInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Updates the configuration of a virtual floppy drive.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareFloppyUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual floppy drive.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Removes a virtual floppy drive from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/floppy/{floppy}?action=connect": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Connects a virtual floppy drive of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Floppy.update operation may be used to configure the virtual floppy drive to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/floppy/{floppy}?action=disconnect": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Disconnects a virtual floppy drive of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the floppy drive is not connected to its backing resource. \n For a powered-off virtual machine, the Floppy.update operation may be used to configure the virtual floppy floppy to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/memory": { + "get": { + "tags": [ + "vm/hardware/memory" + ], + "summary": "Returns the memory-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Memory-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareMemoryInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/memory" + ], + "summary": "Updates the memory-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareMemoryUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if Memory.UpdateSpec.hot-add-enabled is specified and the virtual machine is not powered off.\nif Memory.UpdateSpec.size-mib is specified, Memory.Info.hot-add-enabled is false, and the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/parallel": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Adds a virtual parallel port to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareParallelCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual parallel port identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Returns commonly used information about the virtual parallel ports belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual parallel ports.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareParallelSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/parallel/{port}": { + "get": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Returns information about a virtual parallel port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual parallel port.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareParallelInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Updates the configuration of a virtual parallel port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareParallelUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual parallel port.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Removes a virtual parallel port from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/parallel/{port}?action=connect": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Connects a virtual parallel port of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Parallel.update operation may be used to configure the virtual parallel port to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/parallel/{port}?action=disconnect": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Disconnects a virtual parallel port of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the parallel port is not connected to its backing. \n For a powered-off virtual machine, the Parallel.update operation may be used to configure the virtual parallel port to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/serial": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Adds a virtual serial port to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareSerialCreate" + } + } + ], + "responses": { + "201": { + "description": "Virtual serial port identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ] + }, + "get": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Returns commonly used information about the virtual serial ports belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual serial ports.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareSerialSummary" + } + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/serial/{port}": { + "get": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Returns information about a virtual serial port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual serial port.", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareSerialInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Updates the configuration of a virtual serial port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareSerialUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if one or more of the fields specified in the spec parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual serial port.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + }, + "delete": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Removes a virtual serial port from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/serial/{port}?action=connect": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Connects a virtual serial port of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Serial.update operation may be used to configure the virtual serial port to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware/serial/{port}?action=disconnect": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Disconnects a virtual serial port of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the serial port is not connected to its backing. \n For a powered-off virtual machine, the Serial.update operation may be used to configure the virtual serial port to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/hardware?action=upgrade": { + "post": { + "tags": [ + "vm/hardware" + ], + "summary": "Upgrades the virtual machine to a newer virtual hardware version.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmHardwareUpgrade" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if version is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnsupported" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "upgrade", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/library-item": { + "get": { + "tags": [ + "vm/library_item" + ], + "summary": "Returns the information about the library item associated with the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the library item associated with the virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmLibraryItemInfo" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/power": { + "get": { + "tags": [ + "vm/power" + ], + "summary": "Returns the power state information of a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Power state information for the specified virtual machine.", + "schema": { + "$ref": "#/definitions/VcenterVmPowerInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration or execution state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/power?action=reset": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Resets a powered-on virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.Reset.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is powered off or suspended.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "reset", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/power?action=start": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Powers on a powered-off or suspended virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.PowerOn.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if resources required by the virtual machine are in use (e.g. virtual machine configuration files or virtual disks are locked, host containing the virtual machine is an HA failover host).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInUse" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/power?action=stop": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Powers off a powered-on or suspended virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.PowerOff.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is already powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/power?action=suspend": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Suspends a powered-on virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.Suspend.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is powered off.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "suspend", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/storage/policy": { + "get": { + "tags": [ + "vm/storage/policy" + ], + "summary": "Returns Information about Storage Policy associated with a virtual machine's home directory and/or its virtual hard disks.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Overview of Storage Policy associated with a virtual machine's home directory and/or its associated virtual hard disks.", + "schema": { + "$ref": "#/definitions/VcenterVmStoragePolicyInfo" + } + }, + "500": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/storage/policy" + ], + "summary": "Updates the storage policy configuration of a virtual machine and/or its associated virtual hard disks.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmStoragePolicyUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the virtual machine or disk's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required priveleges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + }, + "400": { + "description": "if the storage policy specified is invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/storage/policy/compliance": { + "get": { + "tags": [ + "vm/storage/policy/compliance" + ], + "summary": "Returns the cached storage policy compliance information of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Virtual machine storage policy compliance Info Compliance.Info.\nIf unset, neither the virtual machine home directory nor any of it's virtual disks are associated with a storage policy.", + "schema": { + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/storage/policy/compliance?action=check": { + "post": { + "tags": [ + "vm/storage/policy/compliance" + ], + "summary": "Returns the storage policy Compliance Compliance.Info of a virtual machine after explicitly re-computing compliance check.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceCheck" + } + } + ], + "responses": { + "200": { + "description": "Virtual machine storage policy compliance Compliance.Info structure .\nIf unset, neither the virtual machine home directory nor any of it's virtual disks are associated with a storage policy.", + "schema": { + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "503": { + "description": "if the system is unable to communicate with a service necessary to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/tools": { + "get": { + "tags": [ + "vm/tools" + ], + "summary": "Get the properties of VMware Tools.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "VMware Tools properties.", + "schema": { + "$ref": "#/definitions/VcenterVmToolsInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + }, + "patch": { + "tags": [ + "vm/tools" + ], + "summary": "Update the properties of VMware Tools.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmToolsUpdate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "400": { + "description": "if the Tools.UpdateSpec.upgrade-policy field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/tools/installer": { + "get": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Get information about the VMware Tools installer.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "information about the VMware Tools installer.", + "schema": { + "$ref": "#/definitions/VcenterVmToolsInstallerInfo" + } + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/tools/installer?action=connect": { + "post": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Connects the VMware Tools CD installer as a CD-ROM for the guest operating system. On Windows guest operating systems with autorun, this should cause the installer to initiate the Tools installation which will need user input to complete. On other (non-Windows) guest operating systems this will make the Tools installation available, and a a user will need to do guest-specific actions. On Linux, this includes opening an archive and running the installer. To monitor the status of the Tools install, clients should check the Tools.Info.version-status and Tools.Info.run-state from Tools.get", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the VMware Tools CD is already connected.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "if the Tools installation fails in the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/tools/installer?action=disconnect": { + "post": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Disconnect the VMware Tools installer CD image.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}/tools?action=upgrade": { + "post": { + "tags": [ + "vm/tools" + ], + "summary": "Begins the Tools upgrade process. To monitor the status of the Tools upgrade, clients should check the Tools status by calling Tools.get and examining Tools.Info.version-status and Tools.Info.run-state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVmToolsUpgrade" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the VMware Tools are not running.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "400": { + "description": "is an upgrade is already in progress.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsAlreadyInDesiredState" + } + }, + "500": { + "description": "if the upgrade process fails inside the guest operating system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsError" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + } + }, + "operationId": "upgrade", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}?action=relocate": { + "post": { + "tags": [ + "VM" + ], + "summary": "Relocates a virtual machine based on the specification. The parts of the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, CLUSTER and DATASTORE of home of the virtual machine and disks. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires Resource.ColdMigrate. \n - The resource ResourcePool referenced by the attribute VM.RelocatePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Existing Virtual machine to relocate.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMRelocate" + } + } + ], + "responses": { + "204": { + "description": "" + }, + "500": { + "description": "if a specified resource (eg. host) is not accessible.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if any of the resources specified in spec or the given \"vm\" could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "relocate", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}?action=relocate&vmw-task=true": { + "post": { + "tags": [ + "VM" + ], + "summary": "Relocates a virtual machine based on the specification. The parts of the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, CLUSTER and DATASTORE of home of the virtual machine and disks. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires Resource.ColdMigrate. \n - The resource ResourcePool referenced by the attribute VM.RelocatePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Existing Virtual machine to relocate.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMRelocateTask" + } + } + ], + "responses": { + "202": { + "description": "", + "schema": { + "type": "string" + } + }, + "500": { + "description": "if a specified resource (eg. host) is not accessible.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceInaccessible" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "404": { + "description": "if any of the resources specified in spec or the given \"vm\" could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "relocate$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm/{vm}?action=unregister": { + "post": { + "tags": [ + "VM" + ], + "summary": "Removes the virtual machine corresponding to vm from the vCenter inventory without removing any of the virtual machine's files from storage. All high-level information stored with the management server (ESXi or vCenter) is removed, including information such as statistics, resource pool association, permissions, and alarms.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Unregister.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine to be unregistered.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "204": { + "description": "" + }, + "400": { + "description": "if the virtual machine is running (powered on).", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotAllowedInCurrentState" + } + }, + "404": { + "description": "if there is no virtual machine associated with vm in the system.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "500": { + "description": "if the virtual machine is busy performing another operation.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsResourceBusy" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "unregister", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm?action=clone": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from an existing virtual machine. \n\n\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.DiskCloneSpec.datastore requires Datastore.AllocateSpace. \n - The resource Datastore referenced by the attribute VM.ClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Folder referenced by the attribute VM.ClonePlacementSpec.folder requires VirtualMachine.Inventory.CreateFromExisting. \n - The resource ResourcePool referenced by the attribute VM.ClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource VirtualMachine referenced by the attribute VM.CloneSpec.source requires VirtualMachine.Provisioning.Clone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMClone" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any of the resources needed to clone the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "clone", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm?action=clone&vmw-task=true": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from an existing virtual machine. \n\n\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.DiskCloneSpec.datastore requires Datastore.AllocateSpace. \n - The resource Datastore referenced by the attribute VM.ClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Folder referenced by the attribute VM.ClonePlacementSpec.folder requires VirtualMachine.Inventory.CreateFromExisting. \n - The resource ResourcePool referenced by the attribute VM.ClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource VirtualMachine referenced by the attribute VM.CloneSpec.source requires VirtualMachine.Provisioning.Clone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMCloneTask" + } + } + ], + "responses": { + "202": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any of the resources needed to clone the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "clone$task", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm?action=instant-clone": { + "post": { + "tags": [ + "VM" + ], + "summary": "Create an instant clone of an existing virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the attribute VM.InstantCloneSpec.source requires VirtualMachine.Provisioning.Clone and VirtualMachine.Inventory.CreateFromExisting. \n - The resource Folder referenced by the attribute VM.InstantClonePlacementSpec.folder requires VirtualMachine.Interact.PowerOn. \n - The resource ResourcePool referenced by the attribute VM.InstantClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource Datastore referenced by the attribute VM.InstantClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Network referenced by the attribute Ethernet.BackingSpec.network requires Network.Assign.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMInstantClone" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any of the resources needed to create an instant clone could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "instant_clone", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/api/vcenter/vm?action=register": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from existing virtual machine files on storage.\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.RegisterSpec.datastore requires System.Read. \n - The resource Folder referenced by the attribute VM.InventoryPlacementSpec.folder requires VirtualMachine.Inventory.Register. \n - The resource ResourcePool referenced by the attribute VM.ComputePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/VcenterVMRegister" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "type": "string" + } + }, + "400": { + "description": "if any of the specified parameters are invalid.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsInvalidArgument" + } + }, + "500": { + "description": "if any of the resources needed to register the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnableToAllocateResource" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsNotFound" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsServiceUnavailable" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthenticated" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/VapiStdErrorsUnauthorized" + } + } + }, + "operationId": "register", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/com/vmware/vcenter/inventory/datastore?~action=find": { + "post": { + "tags": [ + "inventory/datastore" + ], + "summary": "Returns datastore information for the specified datastores. The key in the result map is the datastore identifier and the value in the map is the datastore information.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.inventory.datastore_find" + } + } + ], + "responses": { + "200": { + "description": "Datastore information for the specified datastores. The key in the result map is the datastore identifier and the value in the map is the datastore information.\nThe key in the result map will be an identifier for the resource type: Datastore.", + "schema": { + "$ref": "#/definitions/vcenter.inventory.datastore.find_resp" + } + }, + "404": { + "description": "if no datastore can be found for one or more of the datastore identifiers in datastores", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1inventory~1datastore/get" + } + } + }, + "/rest/com/vmware/vcenter/inventory/network?~action=find": { + "post": { + "tags": [ + "inventory/network" + ], + "summary": "Returns network information for the specified vCenter Server networks. The key in the result map is the network identifier and the value in the map is the network information.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.inventory.network_find" + } + } + ], + "responses": { + "200": { + "description": "Network information for the specified vCenter Server networks. The key in the result map is the network identifier and the value in the map is the network information.\nThe key in the result map will be an identifier for the resource type: Network.", + "schema": { + "$ref": "#/definitions/vcenter.inventory.network.find_resp" + } + }, + "404": { + "description": "if no datastore can be found for one or more of the vCenter Server network identifiers in networks", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "find", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1inventory~1network/get" + } + } + }, + "/rest/com/vmware/vcenter/iso/image/id:{library_item}?~action=mount": { + "post": { + "tags": [ + "iso/image" + ], + "summary": "Mounts an ISO image from a content library on a virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Config.AddRemoveDevice. \n - The resource content.library.Item referenced by the parameter libraryItem requires ContentLibrary.DownloadSession.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "library_item", + "description": "The identifier of the library item having the ISO image to mount on the virtual machine.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.iso.image_mount" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the newly created virtual CD-ROM backed by the specified ISO image.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "schema": { + "$ref": "#/definitions/vcenter.iso.image.mount_resp" + } + }, + "404": { + "description": "If either vm or the libraryItem is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + } + }, + "operationId": "mount", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1iso~1image?action=mount/post" + } + } + }, + "/rest/com/vmware/vcenter/iso/image/id:{vm}?~action=unmount": { + "post": { + "tags": [ + "iso/image" + ], + "summary": "Unmounts a previously mounted CD-ROM using an ISO image as a backing.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Config.AddRemoveDevice. \n - The resource vcenter.vm.hardware.Cdrom referenced by the parameter cdrom requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "The identifier of the virtual machine from which to unmount the virtual CD-ROM.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.iso.image_unmount" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the virtual machine identified by vm is not found or the cdrom does not identify a virtual CD-ROM in the virtual machine.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "When the operation is not allowed on the virtual machine in its current state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "unmount", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1iso~1image?action=unmount/post" + } + } + }, + "/rest/com/vmware/vcenter/ovf/export-flag": { + "get": { + "tags": [ + "ovf/export_flag" + ], + "summary": "Returns information about the supported export flags by the server. \n The supported flags are: \n\n PRESERVE_MAC:\n Include MAC addresses for network adapters.\n EXTRA_CONFIG:\n Include extra configuration in OVF export.\n \n Future server versions might support additional flags.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "A list of supported export flags.", + "schema": { + "$ref": "#/definitions/vcenter.ovf.export_flag.list_resp" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1ovf~1export-flag/get" + } + } + }, + "/rest/com/vmware/vcenter/ovf/import-flag": { + "get": { + "tags": [ + "ovf/import_flag" + ], + "summary": "Returns information about the import flags supported by the deployment platform. \n The supported flags are: \n\n LAX:\n Lax mode parsing of the OVF descriptor.\n \n Future server versions might support additional flags.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource ResourcePool referenced by the parameter rp requires System.Read.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "rp", + "description": "The identifier of resource pool target for retrieving the import flag(s).\nThe parameter must be an identifier for the resource type: ResourcePool.", + "required": true + } + ], + "responses": { + "200": { + "description": "A list of supported import flags.", + "schema": { + "$ref": "#/definitions/vcenter.ovf.import_flag.list_resp" + } + }, + "404": { + "description": "If the resource pool associated with rp does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1ovf~1import-flag/get" + } + } + }, + "/rest/com/vmware/vcenter/ovf/library-item": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Creates a library item in content library from a virtual machine or virtual appliance. \n This operation creates a library item in content library whose content is an OVF package derived from a source virtual machine or virtual appliance, using the supplied create specification. The OVF package may be stored as in a newly created library item or in an in an existing library item. For an existing library item whose content is updated by this operation, the original content is overwritten. Meta data such as name and description is not updated for the exisitng library item. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine or VirtualApp referenced by the attribute LibraryItem.DeployableIdentity.id requires VApp.Export. \n - The resource content.Library referenced by the attribute LibraryItem.CreateTarget.library-id requires ContentLibrary.AddLibraryItem. \n - The resource content.library.Item referenced by the attribute LibraryItem.CreateTarget.library-item-id requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item_create" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the operation, along with the details of the result or failure.", + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item.create_resp" + } + }, + "400": { + "description": "if the specified virtual machine or virtual appliance is busy.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the virtual machine or virtual appliance specified by source does not exist.\n if the library or library item specified by target does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1ovf~1library-item/post" + } + } + }, + "/rest/com/vmware/vcenter/ovf/library-item/id:{ovf_library_item_id}?~action=deploy": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Deploys an OVF package stored in content library to a newly created virtual machine or virtual appliance. \n This operation deploys an OVF package which is stored in the library item specified by ovfLibraryItemId. It uses the deployment specification in deploymentSpec to deploy the OVF package to the location specified by target. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter ovfLibraryItemId requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItem.DeploymentTarget.host-id requires System.Read. \n - The resource Network referenced by the map value of attribute LibraryItem.ResourcePoolDeploymentSpec.network-mappings requires System.Read. \n - The resource StorageProfile referenced by the attribute LibraryItem.ResourcePoolDeploymentSpec.storage-profile-id requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItem.ResourcePoolDeploymentSpec.default-datastore-id requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItem.DeploymentTarget.resource-pool-id requires VApp.Import. \n - The resource Folder referenced by the attribute LibraryItem.DeploymentTarget.folder-id requires VApp.Import.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "ovf_library_item_id", + "description": "Identifier of the content library item containing the OVF package to be deployed.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item_deploy" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the operation, along with the details of the result or failure.", + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item.deploy_resp" + } + }, + "400": { + "description": "if there was an error accessing the OVF package stored in the library item specified by ovfLibraryItemId.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the library item specified by ovfLibraryItemId does not exist.\n if any resource specified by a field of the LibraryItem.DeploymentTarget structure, specified by target, does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if you do not have all of the privileges described as follows : \n - Operation execution requires VirtualMachine.Config.AddNewDisk if the OVF descriptor has a disk drive (type 17) section. \n - Operation execution requires VirtualMachine.Config.AdvancedConfig if the OVF descriptor has an ExtraConfig section. \n - Operation execution requires Extension.Register for specified resource group if the OVF descriptor has a vServiceDependency section. \n - Operation execution requires Network.Assign for target network if specified. \n - Operation execution requires Datastore.AllocateSpace for target datastore if specified.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "deploy", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1ovf~1library-item~1{ovf_library_item_id}?action=deploy/post" + } + } + }, + "/rest/com/vmware/vcenter/ovf/library-item/id:{ovf_library_item_id}?~action=filter": { + "post": { + "tags": [ + "ovf/library_item" + ], + "summary": "Queries an OVF package stored in content library to retrieve information to use when deploying the package. See LibraryItem.deploy. \n This operation retrieves information from the descriptor of the OVF package stored in the library item specified by ovfLibraryItemId. The information returned by the operation can be used to populate the deployment specification (see LibraryItem.ResourcePoolDeploymentSpec when deploying the OVF package to the deployment target specified by target. \n\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter ovfLibraryItemId requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItem.DeploymentTarget.resource-pool-id requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItem.DeploymentTarget.host-id requires System.Read. \n - The resource Folder referenced by the attribute LibraryItem.DeploymentTarget.folder-id requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "ovf_library_item_id", + "description": "Identifier of the content library item containing the OVF package to query.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item_filter" + } + } + ], + "responses": { + "200": { + "description": "Information that can be used to populate the deployment specification (see LibraryItem.ResourcePoolDeploymentSpec) when deploying the OVF package to the deployment target specified by target.", + "schema": { + "$ref": "#/definitions/vcenter.ovf.library_item.filter_resp" + } + }, + "400": { + "description": "if there was an error accessing the OVF package at the specified ovfLibraryItemId.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the library item specified by ovfLibraryItemId does not exist.\n if any resource specified by a field of the LibraryItem.DeploymentTarget structure, specified by target, does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "filter", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1ovf~1library-item~1{ovf_library_item_id}?action=filter/post" + } + } + }, + "/rest/hvc/links": { + "post": { + "tags": [ + "hvc/links" + ], + "summary": "Creates a new hybrid link between the local and foreign PSC. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.hvc.links_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the newly linked domain.\nThe result will be an identifier for the resource type: vcenter.hvc.Links.", + "schema": { + "$ref": "#/definitions/vcenter.hvc.links.create_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1links/post" + } + }, + "get": { + "tags": [ + "hvc/links" + ], + "summary": "Enumerates the list of registered hybrid links. Usage beyond VMware Cloud on AWS is not supported.", + "parameters": [], + "responses": { + "200": { + "description": "The list of hybrid link information.", + "schema": { + "$ref": "#/definitions/vcenter.hvc.links.list_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1links/get" + } + } + }, + "/rest/hvc/links/{link}": { + "get": { + "tags": [ + "hvc/links" + ], + "summary": "Gets information for a link. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Unique identifier of the link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + } + ], + "responses": { + "200": { + "description": "Information about the link.", + "schema": { + "$ref": "#/definitions/vcenter.hvc.links_resp" + } + }, + "400": { + "description": "if the service is busy.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if the user is not authorized to perform this operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1links~1{link}/get" + } + }, + "delete": { + "tags": [ + "hvc/links" + ], + "summary": "Deletes an existing hybrid link. This API should be used when unlink is initiated from Cloud Gateway.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Identifier of the hybrid link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "delete", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1links~1{link}/delete" + } + } + }, + "/rest/hvc/links/{link}?action=delete": { + "post": { + "tags": [ + "hvc/links" + ], + "summary": "Deletes an existing hybrid link. This API should be used when unlink is initiated from cloud vCenter. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "link", + "description": "Identifier of the hybrid link.\nThe parameter must be an identifier for the resource type: vcenter.hvc.Links." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.hvc.links_delete_with_credentials" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the hybrid link associated with link does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "if the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "delete_with_credentials", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1links~1{link}?action=delete/post" + } + } + }, + "/rest/hvc/management/administrators": { + "put": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Sets the groups in the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.hvc.management.administrators_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1management~1administrators/put" + } + }, + "get": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Enumerates the set of all the groups in the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The set of all the groups.", + "schema": { + "$ref": "#/definitions/vcenter.hvc.management.administrators_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1management~1administrators/get" + } + } + }, + "/rest/hvc/management/administrators?action=add": { + "post": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Add the local sso group with the new group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.hvc.management.administrators_add" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "add", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1management~1administrators?action=add/post" + } + } + }, + "/rest/hvc/management/administrators?action=remove": { + "post": { + "tags": [ + "hvc/management/administrators" + ], + "summary": "Remove the group from the local sso group. Usage beyond VMware Cloud on AWS is not supported.\nif you do not have all of the privileges described as follows: \n - Operation execution requires HLM.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.hvc.management.administrators_remove" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "If the user is not authorized.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "remove", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1hvc~1management~1administrators?action=remove/post" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/tls": { + "put": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Replaces the rhttpproxy TLS certificate with the specified certificate. This operation can be used in three scenarios : \n 1. When the CSR is created and the private key is already stored, this operation can replace the certificate. The Tls.Spec.cert (but not Tls.Spec.key and Tls.Spec.root-cert) must be provided as input. \n 2. When the certificate is signed by a third party certificate authority/VMCA and the root certificate of the third party certificate authority/VMCA is already one of the trusted roots in the trust store, this operation can replace the certificate and private key. The Tls.Spec.cert and Tls.Spec.key (but not Tls.Spec.root-cert) must be provided as input. \n 3. When the certificate is signed by a third party certificate authority and the root certificate of the third party certificate authority is not one of the trusted roots in the trust store, this operation can replace the certificate, private key and root CA certificate. The Tls.Spec.cert,Tls.Spec.key and Tls.Spec.root-cert must be provided as input. \n After this operation completes, the services using the certificate will be restarted for the new certificate to take effect. \nThe above three scenarios are only supported from vsphere 7.0 onwards.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "If the private key is not present in the VECS store.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "If the system failed to replace the TLS certificate.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1tls/put" + } + }, + "get": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Returns the rhttpproxy TLS certificate.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "TLS certificate.", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_resp" + } + }, + "404": { + "description": "if the rhttpproxy certificate is not present in VECS store.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if failed due to generic exception.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1tls/get" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/tls-csr": { + "post": { + "tags": [ + "certificate_management/vcenter/tls_csr" + ], + "summary": "Generates a CSR with the given Spec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_csr_create" + } + } + ], + "responses": { + "200": { + "description": "A Certificate Signing Request.", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_csr.create_resp" + } + }, + "400": { + "description": "If CSR could not be created for given spec for a generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1tls-csr/post" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/tls?action=renew": { + "post": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Renews the TLS certificate for the given duration period. \nAfter this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_renew" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the system failed to renew the TLS certificate.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "renew", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1tls?action=renew/post" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/tls?action=replace-vmca-signed": { + "post": { + "tags": [ + "certificate_management/vcenter/tls" + ], + "summary": "Replace MACHINE SSL with VMCA signed one with the given Spec.The system will go for restart. \n After this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_replace_vmca_signed" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the system failed to replace the machine ssl certificate", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "replace_vmca_signed", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1tls?action=replace-vmca-signed/post" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/trusted-root-chains": { + "post": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Creates a new trusted root certificate chain from the CreateSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains_create" + } + } + ], + "responses": { + "200": { + "description": "The unique identifier for the new trusted root chain.", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains.create_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if a trusted root certificate chain exists with id in given spec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1trusted-root-chains/post" + } + }, + "get": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Returns summary information for each trusted root certificate chain.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "List of trusted root certificate chains summaries.", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains.list_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1trusted-root-chains/get" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/trusted-root-chains/{chain}": { + "get": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Retrieve a trusted root certificate chain for a given identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "chain", + "description": "Unique identifier for a trusted root cert chain." + } + ], + "responses": { + "200": { + "description": "TrustedRootChain.", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if a trusted root certificate chain does not exist for given id.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1trusted-root-chains~1{chain}/get" + } + }, + "delete": { + "tags": [ + "certificate_management/vcenter/trusted_root_chains" + ], + "summary": "Deletes trusted root certificate chain for a given identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Manage and CertificateManagement.Administer.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "chain", + "description": "Unique identifier for a trusted root cert chain." + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if a trusted root certificate chain does not exist for given id.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1trusted-root-chains~1{chain}/delete" + } + } + }, + "/rest/vcenter/certificate-management/vcenter/vmca-root": { + "post": { + "tags": [ + "certificate_management/vcenter/vmca_root" + ], + "summary": "Replace Root Certificate with VMCA signed one using the given Spec. \nAfter this operation completes, the services using the certificate will be restarted for the new certificate to take effect.\n\nif you do not have all of the privileges described as follows: \n - Operation execution requires CertificateManagement.Administer.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.vmca_root_create" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the operation is executed on a platform where it is not supported.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1certificate-management~1vcenter~1vmca-root/post" + } + } + }, + "/rest/vcenter/cluster": { + "get": { + "tags": [ + "cluster" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) clusters in vCenter matching the Cluster.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of clusters that can match the filter.\nIf unset or empty, clusters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that clusters must have to match the filter (see Cluster.Info.name).\nIf unset or empty, clusters with any name match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the clusters matching the Cluster.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.cluster.list_resp" + } + }, + "400": { + "description": "if more than 1000 clusters match the Cluster.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1cluster/get" + } + } + }, + "/rest/vcenter/cluster/{cluster}": { + "get": { + "tags": [ + "cluster" + ], + "summary": "Retrieves information about the cluster corresponding to cluster.\nif you do not have all of the privileges described as follows: \n - The resource ClusterComputeResource referenced by the parameter cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier of the cluster.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Information about the cluster associated with cluster.", + "schema": { + "$ref": "#/definitions/vcenter.cluster_resp" + } + }, + "404": { + "description": "if there is no cluster associated with cluster in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the session id is missing from the request or the corresponding session object cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't not have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1cluster~1{cluster}/get" + } + } + }, + "/rest/vcenter/content/registries/harbor": { + "post": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Creates a Harbor registry in the cluster.\nif you do not have all of the privileges described as follows: \n - Operation execution requires ContentLibrary.ManageRegistry. \n - The resource ClusterComputeResource referenced by the attribute Harbor.CreateSpec.cluster requires ContentLibrary.ManageClusterRegistryResource. \n - The resource SpsStorageProfile referenced by the attribute Harbor.StorageSpec.policy requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the deployed registry.\nThe result will be an identifier for the resource type: vcenter.content.Registry.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.create_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if resources/objects could not be located.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistry and/or CertificateAuthority.Manage privilege, or user does not have ContentLibrary.ManageClusterRegistryResource privilege on Harbor.CreateSpec.cluster.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor/post" + } + }, + "get": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Returns basic information of all Harbor registries.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [], + "responses": { + "200": { + "description": "The list of basic information of all Harbor registries.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.list_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor/get" + } + } + }, + "/rest/vcenter/content/registries/harbor/{registry}": { + "get": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Get detailed information of the Harbor registry.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "Information about the registry.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor_resp" + } + }, + "404": { + "description": "if a Harbor registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}/get" + } + }, + "delete": { + "tags": [ + "content/registries/harbor" + ], + "summary": "Delete the Harbor registry in the cluster. All Harbor projects, repositories and images will be deleted upon Harbor registry deletion.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistry.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if a registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistry privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}/delete" + } + } + }, + "/rest/vcenter/content/registries/harbor/{registry}/projects": { + "post": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Creates a project in a Harbor registry using the supplied specification. In vSphere 7.0, a Harbor registry is deployed in a vSphere cluster with vSphere namespaces enabled. When a namespace is created, a project with same name as the namespace is created in the Harbor registry, so this operation should not be called.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the Registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly created Harbor project.\nThe result will be an identifier for the resource type: vcenter.content.Registry.Harbor.Project.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.create_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if a registry specified by registry could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}~1projects/post" + } + }, + "get": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Returns basic information of all projects in a Harbor registry.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "The list of summary information of all Harbor projects.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.list_resp" + } + }, + "404": { + "description": "if registry cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}~1projects/get" + } + } + }, + "/rest/vcenter/content/registries/harbor/{registry}/projects/{project}": { + "get": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Returns detailed information about the specified Harbor project.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "200": { + "description": "Detailed information about the specified Harbor project.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects_resp" + } + }, + "404": { + "description": "if registry or project cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}~1projects~1{project}/get" + } + }, + "delete": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Deletes the specified project from Harbor registry. Repositories and images in the project will be removed upon project deletion. Storage space of deleted images in the project will be reclaimed through next scheduled Harbor registry garbage collection. In vSphere 7.0, a Harbor registry is deployed in a vSphere cluster with vSphere namespaces enabled. When a namespace is deleted, a project with same name as the namespace is deleted from the Harbor registry, so this operation should not be called.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if registry or project cannot be found. In vSphere 7.0, the existing project could have been deleted automatically when a namespace with the same name is deleted.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}~1projects~1{project}/delete" + } + } + }, + "/rest/vcenter/content/registries/harbor/{registry}/projects/{project}?action=purge": { + "post": { + "tags": [ + "content/registries/harbor/projects" + ], + "summary": "Remove all repositories, images and members in the project. Storage space of deleted images in the project will be reclaimed through next scheduled Harbor registry garbage collection.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires ContentLibrary.ManageRegistryProject. \n - The resource vcenter.content.Registry.Harbor.Project referenced by the parameter project requires ContentLibrary.ManageRegistryProject.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "project", + "description": "Identifier of the Harbor project.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if registry or project cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have ContentLibrary.ManageRegistryProject privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "purge", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1harbor~1{registry}~1projects~1{project}?action=purge/post" + } + } + }, + "/rest/vcenter/content/registries/{registry}/health": { + "get": { + "tags": [ + "content/registries/health" + ], + "summary": "Returns the health information of a container registry in the vCenter.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource vcenter.content.Registry referenced by the parameter registry requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "registry", + "description": "Identifier of the registry.\nThe parameter must be an identifier for the resource type: vcenter.content.Registry." + } + ], + "responses": { + "200": { + "description": "Health information of the registry.", + "schema": { + "$ref": "#/definitions/vcenter.content.registries.health_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the registry does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user is not a member of the Administrators", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1content~1registries~1{registry}~1health/get" + } + } + }, + "/rest/vcenter/datacenter": { + "post": { + "tags": [ + "datacenter" + ], + "summary": "Create a new datacenter in the vCenter inventory", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.datacenter_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the newly created datacenter\nThe result will be an identifier for the resource type: Datacenter.", + "schema": { + "$ref": "#/definitions/vcenter.datacenter.create_resp" + } + }, + "400": { + "description": "if the datacenter name is empty or invalid as per the underlying implementation.\nif the folder is not specified and the system cannot choose a suitable one.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the datacenter folder cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datacenter/post" + } + }, + "get": { + "tags": [ + "datacenter" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) datacenters in vCenter matching the Datacenter.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of datacenters that can match the filter.\nIf unset or empty, datacenters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that datacenters must have to match the filter (see Datacenter.Info.name).\nIf unset or empty, datacenters with any name match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the datacenters for the datacenter to match the filter.\nIf unset or empty, datacenters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the datacenters matching the Datacenter.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.datacenter.list_resp" + } + }, + "400": { + "description": "if more than 1000 datacenters match the Datacenter.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datacenter/get" + } + } + }, + "/rest/vcenter/datacenter/{datacenter}": { + "get": { + "tags": [ + "datacenter" + ], + "summary": "Retrieves information about the datacenter corresponding to datacenter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datacenter", + "description": "Identifier of the datacenter.\nThe parameter must be an identifier for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Information about the datacenter associated with datacenter.", + "schema": { + "$ref": "#/definitions/vcenter.datacenter_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if there is no datacenter associated with datacenter in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datacenter~1{datacenter}/get" + } + }, + "delete": { + "tags": [ + "datacenter" + ], + "summary": "Delete an empty datacenter from the vCenter Server", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datacenter", + "description": "Identifier of the datacenter to be deleted.\nThe parameter must be an identifier for the resource type: Datacenter." + }, + { + "required": false, + "type": "boolean", + "in": "query", + "name": "force", + "description": "If true, delete the datacenter even if it is not empty.\nIf unset a ResourceInUse error will be reported if the datacenter is not empty. This is the equivalent of passing the value false." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the datacenter associated with datacenter is not empty.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_in_use_error" + } + }, + "404": { + "description": "if there is no datacenter associated with datacenter in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datacenter~1{datacenter}/delete" + } + } + }, + "/rest/vcenter/datastore": { + "get": { + "tags": [ + "datastore" + ], + "summary": "Returns information about at most 2500 visible (subject to permission checks) datastores in vCenter matching the Datastore.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.datastores", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of datastores that can match the filter.\nIf unset or empty, datastores with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datastore. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datastore." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that datastores must have to match the filter (see Datastore.Info.name).\nIf unset or empty, datastores with any name match the filter." + }, + { + "in": "query", + "name": "filter.types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "VMFS", + "NFS", + "NFS41", + "CIFS", + "VSAN", + "VFFS", + "VVOL" + ] + }, + "description": "Types that datastores must have to match the filter (see Datastore.Summary.type).\nIf unset or empty, datastores with any type match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the datastores matching the Datastore.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.datastore.list_resp" + } + }, + "400": { + "description": "if more than 2500 datastores match the Datastore.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datastore/get" + } + } + }, + "/rest/vcenter/datastore/{datastore}": { + "get": { + "tags": [ + "datastore" + ], + "summary": "Retrieves information about the datastore indicated by datastore.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datastore", + "description": "Identifier of the datastore for which information should be retrieved.\nThe parameter must be an identifier for the resource type: Datastore." + } + ], + "responses": { + "200": { + "description": "Information about the datastore associated with datastore.", + "schema": { + "$ref": "#/definitions/vcenter.datastore_resp" + } + }, + "404": { + "description": "if the datastore indicated by datastore does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datastore~1{datastore}/get" + } + } + }, + "/rest/vcenter/datastore/{datastore}/default-policy": { + "get": { + "tags": [ + "datastore/default_policy" + ], + "summary": "Returns the identifier of the current default storage policy associated with the specified datastore.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "datastore", + "description": "Identifier of the datastore for which the default policy is requested.\nThe parameter must be an identifier for the resource type: Datastore." + } + ], + "responses": { + "200": { + "description": "Identifier of the default storage policy associated with the specified datastore.\nthis field is unset if there is no default storage policy associated with the datastore.\nThe result will be an identifier for the resource type: vcenter.StoragePolicy.", + "schema": { + "$ref": "#/definitions/vcenter.datastore.default_policy_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the specified datastore does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have the required priveleges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1datastore~1{datastore}~1default-policy/get" + } + } + }, + "/rest/vcenter/deployment": { + "get": { + "tags": [ + "deployment" + ], + "summary": "Get the current status of the appliance deployment.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the appliance.", + "schema": { + "$ref": "#/definitions/vcenter.deployment_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "404": { + "description": "if appliance state cannot be determined.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment/get" + } + } + }, + "/rest/vcenter/deployment/history": { + "get": { + "tags": [ + "deployment/import_history" + ], + "summary": "Get the current status of the vCenter historical data import.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the status information about the historical data import status.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.import_history_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1history/get" + } + } + }, + "/rest/vcenter/deployment/history?action=cancel": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Cancels the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1history?action=cancel/post" + } + } + }, + "/rest/vcenter/deployment/history?action=pause": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Pauses the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "pause", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1history?action=pause/post" + } + } + }, + "/rest/vcenter/deployment/history?action=resume": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Resumes the task for importing vCenter historical data.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "Generic error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "resume", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1history?action=resume/post" + } + } + }, + "/rest/vcenter/deployment/history?action=start": { + "post": { + "tags": [ + "deployment/import_history" + ], + "summary": "Creates and starts task for importing vCenter historical data.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.deployment.import_history_start" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the caller is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "Generic error", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1history?action=start/post" + } + } + }, + "/rest/vcenter/deployment/install": { + "get": { + "tags": [ + "deployment/install" + ], + "summary": "Get the parameters used to configure the ongoing appliance installation.", + "parameters": [], + "responses": { + "200": { + "description": "InstallSpec parameters being used to configure appliance install.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if appliance is not in INSTALL_PROGRESS state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install/get" + } + } + }, + "/rest/vcenter/deployment/install/initial-config/remote-psc/thumbprint": { + "get": { + "tags": [ + "deployment/install/initial_config/remote_psc/thumbprint" + ], + "summary": "Gets the SHA1 thumbprint of the remote PSC.", + "parameters": [ + { + "in": "query", + "name": "spec.address", + "type": "string", + "description": "The IP address or DNS resolvable name of the remote PSC.", + "required": true + }, + { + "in": "query", + "name": "spec.https_port", + "type": "integer", + "description": "The HTTPS port of the remote PSC.\nIf unset, port 443 will be used.", + "required": false + } + ], + "responses": { + "200": { + "description": "The thumbprint of the specified remote PSC", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.initial_config.remote_psc.thumbprint_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "on exception.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install~1initial-config~1remote-psc~1thumbprint/get" + } + } + }, + "/rest/vcenter/deployment/install/psc/replicated?action=check": { + "post": { + "tags": [ + "deployment/install/psc/replicated" + ], + "summary": "Checks whether the provided remote PSC is reachable and can be replicated.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.psc.replicated_check" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.psc.replicated.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring PSC to replicate with an external existing PSC.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install~1psc~1replicated?action=check/post" + } + } + }, + "/rest/vcenter/deployment/install/psc/standalone?action=check": { + "post": { + "tags": [ + "deployment/install/psc/standalone" + ], + "summary": "Checks that the information to configure a non-replicated PSC satisfies the requirements.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.psc.standalone_check" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.psc.standalone.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install~1psc~1standalone?action=check/post" + } + } + }, + "/rest/vcenter/deployment/install/remote-psc?action=check": { + "post": { + "tags": [ + "deployment/install/remote_psc" + ], + "summary": "Checks whether the remote PSC is reachable and the deployed vCenter Server can be registered with the remote PSC.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.remote_psc_check" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.remote_psc.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install~1remote-psc?action=check/post" + } + } + }, + "/rest/vcenter/deployment/install?action=cancel": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Cancel the appliance installation that is in progress.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install?action=cancel/post" + } + } + }, + "/rest/vcenter/deployment/install?action=check": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Run sanity checks using the InstallSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.install_check" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.install.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid when configuring PSC to replicate with an external existing PSC.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install?action=check/post" + } + } + }, + "/rest/vcenter/deployment/install?action=start": { + "post": { + "tags": [ + "deployment/install" + ], + "summary": "Start the appliance installation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.install_start" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif the partner PSC credentials are not valid when configuring PSC to replicate with partner PSC.\nif external PSC credentials are not valid when configuring a VCSA_EXTERNAL appliance.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1install?action=start/post" + } + } + }, + "/rest/vcenter/deployment/migrate": { + "get": { + "tags": [ + "deployment/migrate" + ], + "summary": "Get the MigrateSpec parameters used to configure the ongoing appliance migration.", + "parameters": [], + "responses": { + "200": { + "description": "MigrateSpec parameters being used to configure appliance migration.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if appliance is not in MIGRATE_PROGRESS state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1migrate/get" + } + } + }, + "/rest/vcenter/deployment/migrate/active-directory?action=check": { + "post": { + "tags": [ + "deployment/migrate/active_directory" + ], + "summary": "Checks whether the provided Active Directory user has permission to join the migrated vCenter Server appliance to the domain.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate.active_directory_check" + } + } + ], + "responses": { + "200": { + "description": "Information about the success or failure of the checks that were performed.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate.active_directory.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1migrate~1active-directory?action=check/post" + } + } + }, + "/rest/vcenter/deployment/migrate?action=cancel": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Cancel the appliance migration that is in progress.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1migrate?action=cancel/post" + } + } + }, + "/rest/vcenter/deployment/migrate?action=check": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Run sanity checks using the MigrateSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate_check" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif migration assistant credentials are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1migrate?action=check/post" + } + } + }, + "/rest/vcenter/deployment/migrate?action=start": { + "post": { + "tags": [ + "deployment/migrate" + ], + "summary": "Start the appliance migration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.migrate_start" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif migration assistant credentials are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1migrate?action=start/post" + } + } + }, + "/rest/vcenter/deployment/question": { + "get": { + "tags": [ + "deployment/question" + ], + "summary": "Get the question that was raised during the configuration.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the question.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.question_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "500": { + "description": "if questions could not be retrieved although the appliance is in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.internal_server_error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1question/get" + } + } + }, + "/rest/vcenter/deployment/question?action=answer": { + "post": { + "tags": [ + "deployment/question" + ], + "summary": "Supply answer to the raised question.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.question_answer" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is NOT in QUESTION_RAISED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "500": { + "description": "if answer file could not be created.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.internal_server_error_error" + } + } + }, + "operationId": "answer", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1question?action=answer/post" + } + } + }, + "/rest/vcenter/deployment/upgrade": { + "get": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Get the UpgradeSpec parameters used to configure the ongoing appliance upgrade.", + "parameters": [], + "responses": { + "200": { + "description": "UpgradeSpec parameters being used to configure appliance upgrade.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.upgrade_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if appliance is not in UPGRADE_PROGRESS state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1upgrade/get" + } + } + }, + "/rest/vcenter/deployment/upgrade?action=cancel": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Cancel the appliance upgrade that is in progress.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in CONFIG_IN_PROGRESS state and if the operation is not INSTALL.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "cancel", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1upgrade?action=cancel/post" + } + } + }, + "/rest/vcenter/deployment/upgrade?action=check": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Run sanity checks using the UpgradeSpec parameters passed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.upgrade_check" + } + } + ], + "responses": { + "200": { + "description": "CheckInfo containing the check results.", + "schema": { + "$ref": "#/definitions/vcenter.deployment.upgrade.check_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif source credentials are not valid.\nif source container credentials are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1upgrade?action=check/post" + } + } + }, + "/rest/vcenter/deployment/upgrade?action=start": { + "post": { + "tags": [ + "deployment/upgrade" + ], + "summary": "Start the appliance installation.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.deployment.upgrade_start" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif source credentials are not valid.\nif source container credentials are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is not in INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment~1upgrade?action=start/post" + } + } + }, + "/rest/vcenter/deployment?action=rollback": { + "post": { + "tags": [ + "deployment" + ], + "summary": "Rollback a failed appliance so it can be configured once again.", + "parameters": [], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the appliance is not in FAILED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "rollback", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1deployment?action=rollback/post" + } + } + }, + "/rest/vcenter/folder": { + "get": { + "tags": [ + "folder" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) folders in vCenter matching the Folder.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of folders that can match the filter.\nIf unset or empty, folders with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that folders must have to match the filter (see Folder.Summary.name).\nIf unset or empty, folders with any name match the filter." + }, + { + "in": "query", + "name": "filter.type", + "type": "string", + "enum": [ + "DATACENTER", + "DATASTORE", + "HOST", + "NETWORK", + "VIRTUAL_MACHINE" + ], + "description": "The Folder.Type enumerated type defines the type of a vCenter Server folder. The type of a folder determines what what kinds of children can be contained in the folder." + }, + { + "in": "query", + "name": "filter.parent_folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the folders matching the Folder.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.folder.list_resp" + } + }, + "400": { + "description": "if more than 1000 folders match the Folder.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1folder/get" + } + } + }, + "/rest/vcenter/guest/customization-specs": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Creates a customization specification.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs_create" + } + } + ], + "responses": { + "200": { + "description": "The name of the customization specification that is created.\nThe result will be an identifier for the resource type: vcenter.guest.CustomizationSpec.", + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs.create_resp" + } + }, + "400": { + "description": "if the specified specification is not a valid one.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs/post" + } + }, + "get": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) guest customization specifications in vCenter matching the CustomizationSpecs.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.name).\nIf unset or empty, guest customization specifications with any name match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "query", + "name": "filter.OS_type", + "type": "string", + "enum": [ + "WINDOWS", + "LINUX" + ], + "description": "The CustomizationSpecs.OsType enumerated type defines the types of guest operating systems for which guest customization is supported." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the guest customization specifications matching the CustomizationSpecs.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs.list_resp" + } + }, + "400": { + "description": "if more than 1000 guest customization specifications match the CustomizationSpecs.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs/get" + } + } + }, + "/rest/vcenter/guest/customization-specs/{name}": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Sets an existing specification, possibly after retrieving (by using CustomizationSpecs.get) and editing it.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that needs to be set.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If, based on the item's fingerprint value, the set process detects that the specification has changed since its retrieval, then the operation throws InvalidArgument exception to warn the client that he might overwrite another client's change.\nIf the settings in spec are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs~1{name}/put" + } + }, + "get": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns the guest customization specification from vCenter with the specified identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + } + ], + "responses": { + "200": { + "description": "A customization spec with the specified identifier.", + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs_resp" + } + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs~1{name}/get" + } + }, + "delete": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Deletes a customization specification with the specified identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that needs to be deleted.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if a customization specification is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs~1{name}/delete" + } + } + }, + "/rest/vcenter/guest/customization-specs/{name}?action=export": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Returns the content of the customization specification in the specified format. Note that any passwords in the customization specification will be set to blank values during the export operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ReadCustSpecs.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "name", + "description": "The name of the customization specification that has to be returned.\nThe parameter must be an identifier for the resource type: vcenter.guest.CustomizationSpec." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs_export" + } + } + ], + "responses": { + "200": { + "description": "The string representation of the customization specification in the specified format.", + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs.export_resp" + } + }, + "400": { + "description": "If value of format is not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the customization specification is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "export", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs~1{name}?action=export/post" + } + } + }, + "/rest/vcenter/guest/customization-specs?action=import": { + "post": { + "tags": [ + "guest/customization_specs" + ], + "summary": "Converts a well formatted string to a CustomizationSpecs.CreateSpec. The resulting object can be passed to CustomizationSpecs.create operation.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VirtualMachine.Provisioning.ModifyCustSpecs.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs_import_specification" + } + } + ], + "responses": { + "200": { + "description": "A proper specification of type CustomizationSpecs.CreateSpec", + "schema": { + "$ref": "#/definitions/vcenter.guest.customization_specs.import_specification_resp" + } + }, + "400": { + "description": "if the specified content cannot be properly converted into a proper valid CustomizationSpecs.CreateSpec object.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "import_specification", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1guest~1customization-specs?action=import/post" + } + } + }, + "/rest/vcenter/host": { + "post": { + "tags": [ + "host" + ], + "summary": "Add a new standalone host in the vCenter inventory. The newly connected host will be in connected state. The vCenter Server will verify the SSL certificate before adding the host to its inventory. In the case where the SSL certificate cannot be verified because the Certificate Authority is not recognized or the certificate is self signed, the vCenter Server will fall back to thumbprint verification mode as defined by Host.CreateSpec.ThumbprintVerification.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.host_create" + } + } + ], + "responses": { + "200": { + "description": "The newly created identifier of the host in vCenter.\nThe result will be an identifier for the resource type: HostSystem.", + "schema": { + "$ref": "#/definitions/vcenter.host.create_resp" + } + }, + "400": { + "description": "if the software version on the host is not supported.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if there is no folder associated with the Host.CreateSpec.folder field in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user name or password for the administration account on the host are invalid.\nif the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1host/post" + } + }, + "get": { + "tags": [ + "host" + ], + "summary": "Returns information about at most 2500 visible (subject to permission checks) hosts in vCenter matching the Host.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of hosts that can match the filter.\nIf unset or empty, hosts with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that hosts must have to match the filter (see Host.Summary.name).\nIf unset or empty, hosts with any name match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "filter.standalone", + "type": "boolean", + "description": "If true, only hosts that are not part of a cluster can match the filter, and if false, only hosts that are are part of a cluster can match the filter.\nIf unset Hosts can match filter independent of whether they are part of a cluster or not. If this field is true and Host.FilterSpec.clusters os not empty, no hosts will match the filter." + }, + { + "in": "query", + "name": "filter.clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any cluster and hosts that are not in a cluster match the filter. If this field is not empty and Host.FilterSpec.standalone is true, no hosts will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "filter.connection_states", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "CONNECTED", + "DISCONNECTED", + "NOT_RESPONDING" + ] + }, + "description": "Connection states that a host must be in to match the filter (see Host.Summary.connection-state.\nIf unset or empty, hosts in any connection state match the filter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the hosts matching the Host.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.host.list_resp" + } + }, + "400": { + "description": "if more than 2500 hosts match the Host.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1host/get" + } + } + }, + "/rest/vcenter/host/{host}": { + "delete": { + "tags": [ + "host" + ], + "summary": "Remove a standalone host from the vCenter Server.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be deleted.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the host associated with host is in a vCenter cluster", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_in_use_error" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1host~1{host}/delete" + } + } + }, + "/rest/vcenter/host/{host}/connect": { + "post": { + "tags": [ + "host" + ], + "summary": "Connect to the host corresponding to host previously added to the vCenter server.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be reconnected.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1host~1{host}?action=connect/post" + } + } + }, + "/rest/vcenter/host/{host}/disconnect": { + "post": { + "tags": [ + "host" + ], + "summary": "Disconnect the host corresponding to host from the vCenter server", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "host", + "description": "Identifier of the host to be disconnected.\nThe parameter must be an identifier for the resource type: HostSystem." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if there is no host associated with host in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1host~1{host}?action=disconnect/post" + } + } + }, + "/rest/vcenter/identity/providers": { + "post": { + "tags": [ + "identity/providers" + ], + "summary": "Create a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Create and VcIdentityProviders.Manage.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.identity.providers_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the created identity provider.\nThe result will be an identifier for the resource type: vcenter.identity.Providers.", + "schema": { + "$ref": "#/definitions/vcenter.identity.providers.create_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if provider exists for provider ID in given spec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + } + }, + "operationId": "create", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1identity~1providers/post" + } + }, + "get": { + "tags": [ + "identity/providers" + ], + "summary": "Retrieve all identity providers.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Read and VcIdentityProviders.Manage.", + "parameters": [], + "responses": { + "200": { + "description": "Commonly used information about the identity providers.", + "schema": { + "$ref": "#/definitions/vcenter.identity.providers.list_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1identity~1providers/get" + } + } + }, + "/rest/vcenter/identity/providers/{provider}": { + "get": { + "tags": [ + "identity/providers" + ], + "summary": "Retrieve detailed information of the specified identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Read and VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + } + ], + "responses": { + "200": { + "description": "Detailed information of the specified identity provider.", + "schema": { + "$ref": "#/definitions/vcenter.identity.providers_resp" + } + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1identity~1providers~1{provider}/get" + } + }, + "patch": { + "tags": [ + "identity/providers" + ], + "summary": "Update a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider to update\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.identity.providers_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if invalid arguments are provided in updateSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "update", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1identity~1providers~1{provider}/patch" + } + }, + "delete": { + "tags": [ + "identity/providers" + ], + "summary": "Delete a vCenter Server identity provider.\nif you do not have all of the privileges described as follows: \n - Operation execution requires VcIdentityProviders.Manage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "provider", + "description": "the identifier of the provider to delete\nThe parameter must be an identifier for the resource type: vcenter.identity.Providers." + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "if authorization is not given to caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if no provider found with the given provider identifier.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "delete", + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1identity~1providers~1{provider}/delete" + } + } + }, + "/rest/vcenter/namespaces/namespace-templates/clusters/{cluster}": { + "post": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Creates a namespace template on a cluster on which vSphere Namespaces are enabled in this vCenter Server. This release supports creating a single namespace template, and the call fails if there is a request to make another one. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates_create" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the namespace template with given name already exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + }, + "404": { + "description": "if cluster doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1clusters~1{cluster}/post" + } + }, + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Returns information about all the namespace templates associated with a cluster on which vSphere Namespaces are enabled in this vCenter Server. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "List of summary of all namespace templates associated with cluster with vSphere Namespaces enabled.", + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.list_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if cluster doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1clusters~1{cluster}/get" + } + } + }, + "/rest/vcenter/namespaces/namespace-templates/clusters/{cluster}/templates/{template}": { + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Get the information about a namespace template on given cluster. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for the cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + } + ], + "responses": { + "200": { + "description": "Information about the namespace template.", + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if cluster doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1clusters~1{cluster}~1{template}/get" + } + }, + "patch": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Updates a namespace template associated with cluster on which vSphere Namespaces are enabled in this vCenter Server. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is. A Supervisor can be running on one or multiple vSphere Zones, and each vSphere Zone is associated with one or more vSphere Clusters. If a Supervisor running on the specified vSphere Cluster is running on additional vSphere Clusters, this operation will apply to Supervisor components running on the other vSphere Clusters in addition to the specified vSphere Cluster. To call this API on a Supervisor with multiple vSphere Clusters, use vcenter.namespace_management.supervisors.Topology#get to get the vSphere Clusters associated with the given Supervisor. Any cluster from the list returned can be used as the input of this API.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "cluster", + "description": "Identifier for cluster on which vSphere Namespaces are enabled.\nThe parameter must be an identifier for the resource type: ClusterComputeResource." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if trying to grant access to a user or group from an external identity provider.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if cluster doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1clusters~1{cluster}~1{template}/patch" + } + } + }, + "/rest/vcenter/namespaces/namespace-templates/supervisors/{supervisor}": { + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Returns information about all the namespace templates associated with a Supervisor.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Anonymous.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + } + ], + "responses": { + "200": { + "description": "List of summary of all namespace templates associated with the Supervisor.", + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.list_v2_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the Supervisor doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list_v2", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1supervisors~1{supervisor}/get" + } + }, + "post": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Creates a namespace template on a Supervisor. This release supports creating a single namespace template, and the call fails if there is a request to make another one.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates_create_v2" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the namespace template with given name already exists.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.already_exists_error" + } + }, + "404": { + "description": "if the Supervisor doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create_v2", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1supervisors~1{supervisor}/post" + } + } + }, + "/rest/vcenter/namespaces/namespace-templates/supervisors/{supervisor}/templates/{template}": { + "patch": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Updates a namespace template associated with a Supervisor. The specified configuration is applied partially and unset fields in spec will leave those parts of configuration as-is.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires Namespaces.SelfServiceManage.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates_update_v2" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if trying to grant access to a user or group from an external identity provider.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the Supervisor doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have Namespaces.SelfServiceManage privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update_v2", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1supervisors~1{supervisor}~1{template}/patch" + } + }, + "get": { + "tags": [ + "namespaces/namespace_templates" + ], + "summary": "Get the information about a namespace template on a Supervisor.\nif you do not have all of the privileges described as follows: \n - The resource vcenter.namespaces.NamespaceTemplate referenced by the parameter template requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "supervisor", + "description": "Identifier for the Supervisor.\nThe parameter must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "template", + "description": "Name of the namespace template.\nThe parameter must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate." + } + ], + "responses": { + "200": { + "description": "Information about the namespace template.", + "schema": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.get_v2_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the Supervisor doesn't exist or if template doesn't exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get_v2", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1namespaces~1namespace-templates~1supervisors~1{supervisor}~1{template}/get" + } + } + }, + "/rest/vcenter/network": { + "get": { + "tags": [ + "network" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) networks in vCenter matching the Network.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.networks", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of networks that can match the filter.\nIf unset or empty, networks with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Network." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that networks must have to match the filter (see Network.Summary.name).\nIf unset or empty, networks with any name match the filter." + }, + { + "in": "query", + "name": "filter.types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "description": "Types that networks must have to match the filter (see Network.Summary.type).\nIf unset, networks with any type match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the network for the network to match the filter.\nIf unset or empty, networks in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the network for the network to match the filter.\nIf unset or empty, networks in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the networks matching the Network.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.network.list_resp" + } + }, + "400": { + "description": "if more than 1000 networks match the Network.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1network/get" + } + } + }, + "/rest/vcenter/resource-pool": { + "post": { + "tags": [ + "resource_pool" + ], + "summary": "Creates a resource pool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the attribute ResourcePool.CreateSpec.parent requires Resource.CreatePool.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.resource_pool_create" + } + } + ], + "responses": { + "200": { + "description": "The identifier of the newly created resource pool.\nThe result will be an identifier for the resource type: ResourcePool.", + "schema": { + "$ref": "#/definitions/vcenter.resource_pool.create_resp" + } + }, + "400": { + "description": "if any of the resources needed to create the resource pool could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "If the resource specified in parent could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1resource-pool/post" + } + }, + "get": { + "tags": [ + "resource_pool" + ], + "summary": "Returns information about at most 1000 visible (subject to permission checks) resource pools in vCenter matching the ResourcePool.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of resource pools that can match the filter.\nIf unset or empty, resource pools with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that resource pools must have to match the filter (see ResourcePool.Info.name).\nIf unset or empty, resource pools with any name match the filter." + }, + { + "in": "query", + "name": "filter.parent_resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resource pools that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "filter.hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Hosts that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "filter.clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the resource pools matching the ResourcePool.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.resource_pool.list_resp" + } + }, + "400": { + "description": "If more than 1000 resource pools match the ResourcePool.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1resource-pool/get" + } + } + }, + "/rest/vcenter/resource-pool/{resource_pool}": { + "get": { + "tags": [ + "resource_pool" + ], + "summary": "Retrieves information about the resource pool indicated by resourcePool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the parameter resourcePool requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool for which information should be retrieved.\nThe parameter must be an identifier for the resource type: ResourcePool." + } + ], + "responses": { + "200": { + "description": "Information about the resource pool.", + "schema": { + "$ref": "#/definitions/vcenter.resource_pool_resp" + } + }, + "404": { + "description": "If the resource pool indicated by resourcePool does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1resource-pool~1{resource_pool}/get" + } + }, + "patch": { + "tags": [ + "resource_pool" + ], + "summary": "Updates the configuration of a resource pool.\nif you do not have all of the privileges described as follows: \n - The resource ResourcePool referenced by the parameter resourcePool requires Resource.EditPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool.\nThe parameter must be an identifier for the resource type: ResourcePool." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.resource_pool_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If any of the resources needed to reconfigure the resource pool could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "If the resource pool is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1resource-pool~1{resource_pool}/patch" + } + }, + "delete": { + "tags": [ + "resource_pool" + ], + "summary": "Deletes a resource pool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "resource_pool", + "description": "Identifier of the resource pool to be deleted.\nThe parameter must be an identifier for the resource type: ResourcePool." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "If the resource pool is a root resource pool.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "If the resource pool is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "If the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "If the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "If the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1resource-pool~1{resource_pool}/delete" + } + } + }, + "/rest/vcenter/services": { + "get": { + "tags": [ + "services/service" + ], + "summary": "Lists details of vCenter services.", + "parameters": [], + "responses": { + "200": { + "description": "Map of service identifiers to service Info structures.\nThe key in the result map will be an identifier for the resource type: vcenter.services.Service.", + "schema": { + "$ref": "#/definitions/vcenter.services.service.list_details_resp" + } + }, + "400": { + "description": "if any error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "list_details", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services/get" + } + } + }, + "/rest/vcenter/services/{service}": { + "get": { + "tags": [ + "services/service" + ], + "summary": "Returns the state of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose state is being queried.\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "200": { + "description": "Service Info structure.", + "schema": { + "$ref": "#/definitions/vcenter.services.service_resp" + } + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services~1{service}/get" + } + }, + "patch": { + "tags": [ + "services/service" + ], + "summary": "Updates the properties of a service.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service whose properties are being updated.\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.services.service_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a start, stop or restart operation is in progress, update operation will fail with this error.\nif a request to set the Service.UpdateSpec.startup-type field of spec to DISABLED comes in for a service that is not in STOPPED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services~1{service}/patch" + } + } + }, + "/rest/vcenter/services/{service}/restart": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Restarts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to restart\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the restart operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "restart", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services~1{service}?action=restart/post" + } + } + }, + "/rest/vcenter/services/{service}/start": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Starts a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to start\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if any other error occurs during the execution of the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "504": { + "description": "if any timeout occurs during the execution of the start operation. Timeout occurs when the service takes longer than StartTimeout to start.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.timed_out_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services~1{service}?action=start/post" + } + } + }, + "/rest/vcenter/services/{service}/stop": { + "post": { + "tags": [ + "services/service" + ], + "summary": "Stops a service", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "service", + "description": "identifier of the service to stop\nThe parameter must be an identifier for the resource type: vcenter.services.Service." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the service associated with service does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the operation is denied in the current state of the service. If a stop operation is in progress, issuing another stop operation will lead to this error.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1services~1{service}?action=stop/post" + } + } + }, + "/rest/vcenter/storage/policies": { + "get": { + "tags": [ + "storage/policies" + ], + "summary": "Returns information about at most 1024 visible (subject to permission checks) storage solicies availabe in vCenter. These storage policies can be used for provisioning virtual machines or disks.", + "parameters": [ + { + "in": "query", + "name": "filter.policies", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of storage policies that can match the filter.\nIf unset or empty, storage policies with any identifiers match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.StoragePolicy." + } + ], + "responses": { + "200": { + "description": "Commonly used Information about the storage policies.", + "schema": { + "$ref": "#/definitions/vcenter.storage.policies.list_resp" + } + }, + "400": { + "description": "if more than 1024 storage policies exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1storage~1policies/get" + } + } + }, + "/rest/vcenter/storage/policies/compliance/vm": { + "get": { + "tags": [ + "storage/policies/compliance/VM" + ], + "summary": "Returns compliance information about at most 1000 virtual machines matching the filter VM.FilterSpec. If there are no virtual machines matching the VM.FilterSpec an empty List is returned. Virtual machines without storage policy association are not returned.", + "parameters": [ + { + "in": "query", + "name": "filter.status", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "description": "Compliance Status that a virtual machine must have to match the filter. Atleast one status must be specified." + }, + { + "in": "query", + "name": "filter.vms", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of virtual machines that can match the filter\nIf unset or empty, virtual machines with any identifier matches the filter\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "compliance information about virtual machines matching the filter VM.FilterSpec.\nThe key in the result map will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.VM.list_resp" + } + }, + "400": { + "description": "If more than 1000 results match the VM.FilterSpec", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1storage~1policies~1compliance~1vm/get" + } + } + }, + "/rest/vcenter/storage/policies/entities/compliance": { + "get": { + "tags": [ + "storage/policies/compliance" + ], + "summary": "Returns compliance information about entities matching the filter Compliance.FilterSpec. Entities without storage policy association are not returned.", + "parameters": [ + { + "in": "query", + "name": "filter.status", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "description": "Compliance Status that a virtual machine must have to match the filter." + } + ], + "responses": { + "200": { + "description": "compliance information about entities matching the filter Compliance.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.list_resp" + } + }, + "400": { + "description": "if the Compliance.FilterSpec.status field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1storage~1policies~1entities~1compliance/get" + } + } + }, + "/rest/vcenter/storage/policies/{policy}/vm": { + "get": { + "tags": [ + "storage/policies/VM" + ], + "summary": "Returns information about the virtual machines and/or their virtual disks that are associated with the given storage policy.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "storage policy identifier.\nThe parameter must be an identifier for the resource type: vcenter.StoragePolicy." + } + ], + "responses": { + "200": { + "description": "Information about the virtual machines and/or their virtual disks that are associated with the given storage policy.\nThe key in the result map will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.storage.policies.VM.list_resp" + } + }, + "404": { + "description": "if there is no policy associated with policy in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the backend server encounters some an error while processing the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service necessary to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "403": { + "description": "if the user does not have the required priveleges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1storage~1policies~1{policy}~1vm/get" + } + } + }, + "/rest/vcenter/storage/policies/{policy}?action=check-compatibility": { + "post": { + "tags": [ + "storage/policies" + ], + "summary": "Returns datastore compatibility summary about a specific storage policy.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "policy", + "description": "The storage policy identifier\nThe parameter must be an identifier for the resource type: vcenter.StoragePolicy." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.storage.policies_check_compatibility" + } + } + ], + "responses": { + "200": { + "description": "datastore compatibility summary about a specific storage policy.", + "schema": { + "$ref": "#/definitions/vcenter.storage.policies.check_compatibility_resp" + } + }, + "400": { + "description": "if input more than 1024 datastores.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if the storage policy specified does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check_compatibility", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1storage~1policies~1{policy}?action=check-compatibility/post" + } + } + }, + "/rest/vcenter/system-config/deployment-type": { + "get": { + "tags": [ + "system_config/deployment_type" + ], + "summary": "Get the type of the vCenter appliance.", + "parameters": [], + "responses": { + "200": { + "description": "The type of the vCenter appliance.", + "schema": { + "$ref": "#/definitions/vcenter.system_config.deployment_type_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if appliance is not in CONFIGURED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1system-config~1deployment-type/get" + } + }, + "post": { + "tags": [ + "system_config/deployment_type" + ], + "summary": "Reconfigure the type of the vCenter appliance.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.system_config.deployment_type_reconfigure" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the appliance is not in INITIALIZED or CONFIGURED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "401": { + "description": "if the caller is not authenticated.\nif external PSC credentials are not valid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "reconfigure", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1system-config~1deployment-type/put" + } + } + }, + "/rest/vcenter/system-config/psc-registration": { + "post": { + "tags": [ + "system_config/psc_registration" + ], + "summary": "Repoint this vCenter Server appliance to a different external PSC.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.system_config.psc_registration_repoint" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "401": { + "description": "if the caller is not authenticated.\nif the passed external PSC credentials is invalid.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is NOT in CONFIGURED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "repoint", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1system-config~1psc-registration?action=repoint/post" + } + }, + "get": { + "tags": [ + "system_config/psc_registration" + ], + "summary": "Get information of the PSC that this appliance is registered with.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing information about the external PSC node this appliance is registered with.", + "schema": { + "$ref": "#/definitions/vcenter.system_config.psc_registration_resp" + } + }, + "401": { + "description": "if the caller is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "400": { + "description": "if the appliance is in NOT_INITIALIZED state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1system-config~1psc-registration/get" + } + } + }, + "/rest/vcenter/tokenservice/token-exchange": { + "post": { + "tags": [ + "tokenservice/token_exchange" + ], + "summary": "Exchanges incoming token based on the spec and current client authorization data. \nThis operation has been deprecated in the vSphere 7.0 U2 release. Use vcenter.authentication.Token#issue instead.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.tokenservice.token_exchange_exchange" + } + } + ], + "responses": { + "200": { + "description": "TokenExchange.Info structure that contains new token.", + "schema": { + "$ref": "#/definitions/vcenter.tokenservice.token_exchange.exchange_resp" + } + }, + "400": { + "description": "", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_request_error" + } + }, + "500": { + "description": "If the server is unwilling or unable to issue a token for all the target services indicated by the TokenExchange.ExchangeSpec.resource or TokenExchange.ExchangeSpec.audience parameters.", + "schema": { + "$ref": "#/definitions/vcenter.tokenservice.invalid_scope_error" + } + }, + "403": { + "description": "if authorization is not given to a caller.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "exchange", + "security": [ + { + "session_id": [] + } + ] + } + }, + "/rest/vcenter/topology/nodes": { + "get": { + "tags": [ + "topology/nodes" + ], + "summary": "Returns information about all vCenter and Platform Services Controller nodes matching the Nodes.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "filter.types", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "description": "Types of the appliance that a vCenter and Platform Services Controller node must be to match the filter (see Nodes.ApplianceType.\nIf unset or empty, node of any ApplianceType match the filter." + } + ], + "responses": { + "200": { + "description": "commonly used information for all vCenter and Platform Services Controller nodes matching the Nodes.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.topology.nodes.list_resp" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the Nodes.FilterSpec.types field contains a value that is not supported.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1topology~1nodes/get" + } + } + }, + "/rest/vcenter/topology/nodes/{node}": { + "get": { + "tags": [ + "topology/nodes" + ], + "summary": "Retrieve details for a given identifier of the vCenter or Platform Services Controller node.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "node", + "description": "Identifier of the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nThe parameter must be an identifier for the resource type: vcenter.VCenter.name." + } + ], + "responses": { + "200": { + "description": "vCenter or Platform Services Controller node details with replication partners and client affinity information as applicable. See Nodes.Info.", + "schema": { + "$ref": "#/definitions/vcenter.topology.nodes_resp" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "if a node doesn't exist for given node identifier.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1topology~1nodes~1{node}/get" + } + } + }, + "/rest/vcenter/topology/replication-status": { + "get": { + "tags": [ + "topology/replication_status" + ], + "summary": "Returns the replication information of vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL (see Nodes.Info.type) matching the ReplicationStatus.FilterSpec.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read.", + "parameters": [ + { + "in": "query", + "name": "filter.nodes", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifier that a vCenter and Platform Services Controller node must have to match the filter. (see ReplicationStatus.Summary.node).\nIf unset or empty, all vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name." + } + ], + "responses": { + "200": { + "description": "Commonly used replication information about vCenter and Platform Services Controller nodes matching the ReplicationStatus.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.topology.replication_status.list_resp" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "if the ReplicationStatus.FilterSpec.nodes field contains a invalid value.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1topology~1replication-status/get" + } + } + }, + "/rest/vcenter/vcha/cluster/active?action=get": { + "post": { + "tags": [ + "vcha/cluster/active" + ], + "summary": "Retrieves information about the active node of a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.active_get" + } + } + ], + "responses": { + "200": { + "description": "Info Information about the VCHA network and placement of the active node.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.active_resp" + } + }, + "400": { + "description": "If the management interface IP address assignment is not static.\nIf any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. \n - If partial is false or unset, then the operation execution requires the Global.VCServer privilege.\n - If partial is true, then the operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1active?action=get/post" + } + } + }, + "/rest/vcenter/vcha/cluster/deployment-type": { + "get": { + "tags": [ + "vcha/cluster/deployment_type" + ], + "summary": "Retrieves the deployment type of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the deployment type information of the the VCHA cluster.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.deployment_type_resp" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1deployment-type/get" + } + } + }, + "/rest/vcenter/vcha/cluster/mode": { + "get": { + "tags": [ + "vcha/cluster/mode" + ], + "summary": "Retrieves the current mode of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the mode of the the VCHA cluster.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.mode_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1mode/get" + } + } + }, + "/rest/vcenter/vcha/cluster/mode?vmw-task=true": { + "put": { + "tags": [ + "vcha/cluster/mode" + ], + "summary": "Manipulates the mode of a VCHA Cluster. Following mode transitions are allowed:\n enabled -> disabled - Allowed only in healthy and degraded states.\n enabled -> maintenance - Allowed only in healthy state.\n disabled -> enabled - Allowed only in healthy state.\n maintenance -> enabled - Allowed only in healthy state with all nodes are running the same version.\n maintenance -> disabled - Allowed only in healthy state with all nodes are running the same version.\n All other transitions are not allowed. \n VCHA Cluster configuration remains intact in any of the cluster modes.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.mode_set_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.mode.set_task_resp" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "set$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1mode/put" + } + } + }, + "/rest/vcenter/vcha/cluster/passive?action=check": { + "post": { + "tags": [ + "vcha/cluster/passive" + ], + "summary": "Validates the specified passive node's placement configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive_check" + } + } + ], + "responses": { + "200": { + "description": "CheckResult structure containing errors and warnings.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive.check_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1passive?action=check/post" + } + } + }, + "/rest/vcenter/vcha/cluster/passive?action=redeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster/passive" + ], + "summary": "Creates the passive node in a degraded cluster with node location information and pre-existing VCHA cluster configuration from the active node.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive_redeploy_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive.redeploy_task_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "redeploy$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1passive?action=redeploy/post" + } + } + }, + "/rest/vcenter/vcha/cluster/witness?action=check": { + "post": { + "tags": [ + "vcha/cluster/witness" + ], + "summary": "Validates the specified witness node's placement configuration.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness_check" + } + } + ], + "responses": { + "200": { + "description": "CheckResult structure containing errors and warnings.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness.check_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "If the active virtual machine is not managed by the specified vCenter server for the active node.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1witness?action=check/post" + } + } + }, + "/rest/vcenter/vcha/cluster/witness?action=redeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster/witness" + ], + "summary": "Creates the witness node in a degraded cluster with node location information and pre-existing VCHA cluster configuration from the active node.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness_redeploy_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness.redeploy_task_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "redeploy$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster~1witness?action=redeploy/post" + } + } + }, + "/rest/vcenter/vcha/cluster?action=deploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Prepares, clones, and configures a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster_deploy_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.deploy_task_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "deploy$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster?action=deploy/post" + } + } + }, + "/rest/vcenter/vcha/cluster?action=failover&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Initiates failover from the active vCenter node to the passive node. \n For forced failover, Active node immediately initiates a failover. This may result into a data loss after failover. \n\n For planned failover, Active node flushes all the state to the Passive node, waits for the flush to complete before causing a failover. After the failover, Passive node starts without any data loss. \n\n A failover is allowed only in the following cases: \n\n 1. Cluster's mode is enabled and all cluster members are present.\n 2. Cluster's mode is maintenance and all cluster members are present.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster_failover_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.failover_task_resp" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "failover$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster?action=failover/post" + } + } + }, + "/rest/vcenter/vcha/cluster?action=get": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Retrieves the status of a VCHA cluster.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster_get" + } + } + ], + "responses": { + "200": { + "description": "Info structure containing the VCHA configuration and health information.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. \n - If partial is false or unset, then the operation execution requires the Global.VCServer privilege.\n - If partial is true, then the operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster?action=get/post" + } + } + }, + "/rest/vcenter/vcha/cluster?action=undeploy&vmw-task=true": { + "post": { + "tags": [ + "vcha/cluster" + ], + "summary": "Destroys the VCHA cluster and removes all VCHA specific information from the VCVA appliance. Optionally, the passive and witness node virtual machines will be deleted only if VCHA was deployed using automatic deployment. The active node in the cluster continues to run as a standalone VCVA appliance after the destroy operation has been performed. \n If the VCHA cluster is in a transition state and not configured, then the VCHA cluster specific information is removed.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster_undeploy_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.vcha.cluster.undeploy_task_resp" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "If the passive virtual machine is not managed by the specified vCenter server.\nIf the witness virtual machine is not managed by the specified vCenter server.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the Global.VCServer privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "undeploy$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1cluster?action=undeploy/post" + } + } + }, + "/rest/vcenter/vcha/operations": { + "get": { + "tags": [ + "vcha/operations" + ], + "summary": "Retrieves the current active and disabled operations of a VCHA cluster.", + "parameters": [], + "responses": { + "200": { + "description": "Info structure containing the current running and disabled operations of a VCHA cluster.", + "schema": { + "$ref": "#/definitions/vcenter.vcha.operations_resp" + } + }, + "403": { + "description": "If the user has insufficient privilege to perform the operation. Operation execution requires the System.Read privilege.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + }, + "400": { + "description": "If any other error occurs.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vcha~1operations/get" + } + } + }, + "/rest/vcenter/vm": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource Folder referenced by the attribute VM.InventoryPlacementSpec.folder requires VirtualMachine.Inventory.Create. \n - The resource ResourcePool referenced by the attribute VM.ComputePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource Datastore referenced by the attribute VM.StoragePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Network referenced by the attribute Ethernet.BackingSpec.network requires Network.Assign.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_create" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.VM.create_resp" + } + }, + "400": { + "description": "if VM.CreateSpec.guest-os is not supported for the requested virtual hardware version and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm/post" + } + }, + "get": { + "tags": [ + "VM" + ], + "summary": "Returns information about at most 4000 visible (subject to permission checks) virtual machines in vCenter matching the VM.FilterSpec.", + "parameters": [ + { + "in": "query", + "name": "filter.vms", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Identifiers of virtual machines that can match the filter.\nIf unset or empty, virtual machines with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine." + }, + { + "in": "query", + "name": "filter.names", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Names that virtual machines must have to match the filter (see VM.Info.name).\nIf unset or empty, virtual machines with any name match the filter." + }, + { + "in": "query", + "name": "filter.folders", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Folders that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder." + }, + { + "in": "query", + "name": "filter.datacenters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Datacenters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter." + }, + { + "in": "query", + "name": "filter.hosts", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Hosts that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines on any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem." + }, + { + "in": "query", + "name": "filter.clusters", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Clusters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource." + }, + { + "in": "query", + "name": "filter.resource_pools", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "description": "Resource pools that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool." + }, + { + "in": "query", + "name": "filter.power_states", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "POWERED_OFF", + "POWERED_ON", + "SUSPENDED" + ] + }, + "description": "Power states that a virtual machine must be in to match the filter (see Power.Info.state.\nIf unset or empty, virtual machines in any power state match the filter." + } + ], + "responses": { + "200": { + "description": "Commonly used information about the virtual machines matching the VM.FilterSpec.", + "schema": { + "$ref": "#/definitions/vcenter.VM.list_resp" + } + }, + "400": { + "description": "if more than 4000 virtual machines match the VM.FilterSpec.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm/get" + } + } + }, + "/rest/vcenter/vm-template/library-items": { + "post": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Creates a library item in content library from a virtual machine. This operation creates a library item in content library whose content is a virtual machine template created from the source virtual machine, using the supplied create specification. The virtual machine template is stored in a newly created library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.Library referenced by the attribute LibraryItems.CreateSpec.library requires ContentLibrary.AddLibraryItem. \n - The resource VirtualMachine referenced by the attribute LibraryItems.CreateSpec.source-vm requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.CreateSpecVmHomeStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.CreateSpecVmHomeStoragePolicy.policy requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.CreateSpecDiskStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.CreateSpecDiskStoragePolicy.policy requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.CreateSpec.disk-storage-overrides requires System.Read. \n - The resource Folder referenced by the attribute LibraryItems.CreatePlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItems.CreatePlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItems.CreatePlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute LibraryItems.CreatePlacementSpec.cluster requires System.Read.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items_create" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly created library item.\nThe result will be an identifier for the resource type: content.library.Item.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.create_resp" + } + }, + "400": { + "description": "if any of the resources needed to create the virtual machine template could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if the source virtual machine specified by LibraryItems.CreateSpec.source-vm does not exist.\n if the library specified by LibraryItems.CreateSpec.library does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items/post" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}": { + "get": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Returns information about a virtual machine template contained in the library item specified by templateLibraryItem\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "identifier of the library item containing the virtual machine template.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "Information about the virtual machine template item contained in the library item.\nIf unset, the library item specified by templateLibraryItem does not contain a virtual machine template.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items_resp" + } + }, + "400": { + "description": "if the virtual machine template's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the library item could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}/get" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/check-outs": { + "get": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Returns commonly used information about the virtual machines that are checked out of the library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the check outs.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.list_resp" + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1check-outs/get" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/check-outs/{vm}": { + "get": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Returns the information about a checked out virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the checked out virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about a check out.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs_resp" + } + }, + "404": { + "description": "if the library item or virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1check-outs~1{vm}/get" + } + }, + "delete": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Deletes the checked out virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Delete. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the checked out virtual machine to delete.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library item or virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1check-outs~1{vm}/delete" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/check-outs/{vm}?action=check-in": { + "post": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Checks in a virtual machine into the library item. This operation updates the library item to contain the virtual machine being checked in as a template. This template becomes the latest version of the library item. The previous virtual machine template contained in the library item is available as a backup and its information can be queried using the Versions service. At most one previous version of a virtual machine template is retained in the library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckInTemplate. \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the content library item in which the virtual machine is checked in.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine to check into the library item.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs_check_in" + } + } + ], + "responses": { + "200": { + "description": "The new version of the library item.\nThe result will be an identifier for the resource type: content.library.item.Version.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.check_in_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the item specified by templateLibraryItem does not exist.\n if the virtual machine specified by vm does not exist.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check_in", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1check-outs~1{vm}?action=check-in/post" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/check-outs?action=check-out": { + "post": { + "tags": [ + "vm_template/library_items/check_outs" + ], + "summary": "Checks out a library item containing a virtual machine template. This operation makes a copy of the source virtual machine template contained in the library item as a virtual machine. The virtual machine is copied with the same storage specification as the source virtual machine template. Changes to the checked out virtual machine do not affect the virtual machine template contained in the library item. To save these changes back into the library item, CheckOuts.check-in the virtual machine. To discard the changes, CheckOuts.delete the virtual machine.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckOutTemplate. \n - The resource Folder referenced by the attribute CheckOuts.PlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute CheckOuts.PlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute CheckOuts.PlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute CheckOuts.PlacementSpec.cluster requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the content library item containing the source virtual machine template to be checked out.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs_check_out" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the virtual machine that was checked out of the library item.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.check_out_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the library item specified by templateLibraryItem cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check_out", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1check-outs?action=check-out/post" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/versions": { + "get": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Returns commonly used information about the live versions of a virtual machine template library item.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the library item versions.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions.list_resp" + } + }, + "404": { + "description": "if the library item is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1versions/get" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/versions/{version}": { + "get": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Returns information about the live version of a library item containing a virtual machine template.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires System.Read. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "200": { + "description": "Information about the specified library item version.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions_resp" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1versions~1{version}/get" + } + }, + "delete": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Deletes the virtual machine template contained in the library item at the specified version.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.DeleteLibraryItem. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item to delete.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1versions~1{version}/delete" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}/versions/{version}?action=rollback": { + "post": { + "tags": [ + "vm_template/library_items/versions" + ], + "summary": "Rollbacks a library item containing a virtual machine template to a previous version. The virtual machine template at the specified version becomes the latest virtual machine template with a new version identifier.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires ContentLibrary.CheckInTemplate. \n - The resource content.library.item.Version referenced by the parameter version requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "Identifier of the VM template library item.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "version", + "description": "Version of the library item to rollback.\nThe parameter must be an identifier for the resource type: content.library.item.Version." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions_rollback" + } + } + ], + "responses": { + "200": { + "description": "The new version of the library item.\nThe result will be an identifier for the resource type: content.library.item.Version.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions.rollback_resp" + } + }, + "404": { + "description": "if the library item or version is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "rollback", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}~1versions~1{version}?action=rollback/post" + } + } + }, + "/rest/vcenter/vm-template/library-items/{template_library_item}?action=deploy": { + "post": { + "tags": [ + "vm_template/library_items" + ], + "summary": "Deploys a virtual machine as a copy of the source virtual machine template contained in the library item specified by templateLibraryItem. It uses the deployment specification in spec. If LibraryItems.DeploySpec.powered-on and/or LibraryItems.DeploySpec.guest-customization are specified, the server triggers the power on and/or guest customization operations, which are executed asynchronously.\nif you do not have all of the privileges described as follows: \n - Operation execution requires System.Read. \n - The resource content.library.Item referenced by the parameter templateLibraryItem requires VirtualMachine.Provisioning.DeployTemplate. \n - The resource Datastore referenced by the attribute LibraryItems.DeploySpecVmHomeStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.DeploySpecVmHomeStoragePolicy.policy requires System.Read. \n - The resource Datastore referenced by the attribute LibraryItems.DeploySpecDiskStorage.datastore requires System.Read. \n - The resource spbm.StorageProfile referenced by the attribute LibraryItems.DeploySpecDiskStoragePolicy.policy requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.DeploySpec.disk-storage-overrides requires System.Read. \n - The resource Folder referenced by the attribute LibraryItems.DeployPlacementSpec.folder requires System.Read. \n - The resource ResourcePool referenced by the attribute LibraryItems.DeployPlacementSpec.resource-pool requires System.Read. \n - The resource HostSystem referenced by the attribute LibraryItems.DeployPlacementSpec.host requires System.Read. \n - The resource ClusterComputeResource referenced by the attribute LibraryItems.DeployPlacementSpec.cluster requires System.Read. \n - The resource vcenter.vm.hardware.Ethernet referenced by the map key of attribute LibraryItems.HardwareCustomizationSpec.nics requires System.Read. \n - The resource Network referenced by the attribute LibraryItems.EthernetUpdateSpec.network requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the attribute LibraryItems.HardwareCustomizationSpec.disks-to-remove requires System.Read. \n - The resource vcenter.vm.hardware.Disk referenced by the map key of attribute LibraryItems.HardwareCustomizationSpec.disks-to-update requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "template_library_item", + "description": "identifier of the content library item containing the source virtual machine template to be deployed.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items_deploy" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the deployed virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_resp" + } + }, + "400": { + "description": "if there was an error in allocating any of the resources required by the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if the library item specified by templateLibraryItem cannot be found.\n if any resource specified by a field of the LibraryItems.DeploySpec structure, specified by spec cannot be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if any of the services involved in the operation are unavailable.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "deploy", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm-template~1library-items~1{template_library_item}?action=deploy/post" + } + } + }, + "/rest/vcenter/vm/{vm}": { + "get": { + "tags": [ + "VM" + ], + "summary": "Returns information about a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.VM_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}/get" + } + }, + "delete": { + "tags": [ + "VM" + ], + "summary": "Deletes a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Delete.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/console/tickets": { + "post": { + "tags": [ + "vm/console/tickets" + ], + "summary": "Creates a virtual machine console ticket of a given ticket type. The created ticket is a one time use URI. The validity of the ticket is 30 minutes, if not used with in the time frame the ticket expires. \n The VMRC ticket contains the IP address or the DNS resolvable name of the vCenter server. This ticket requires installation of VMware Workstation, VMware Fusion or VMRC to be installed on the machine where the ticket has to be opened. This ticket can be acquired even when the VM is turned off. \n\n The WEBMKS ticket contains the IP address of the DNS resolvable name of the ESX server. This ticket requires user to embed this ticket in a HTML page using VMware HTML Console SDK - https://www.vmware.com/support/developer/html-console This ticket can be acquired only when the VM is turned on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.console.tickets_create" + } + } + ], + "responses": { + "200": { + "description": "Commonly used information about the virtual machine console ticket.", + "schema": { + "$ref": "#/definitions/vcenter.vm.console.tickets.create_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration or execution state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1console~1tickets/post" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/customization": { + "put": { + "tags": [ + "vm/guest/customization" + ], + "summary": "Applies a customization specification in spec on the virtual machine in vm. This operation only sets the specification settings for the virtual machine. The actual customization happens inside the guest when the virtual machine is powered on. If spec has unset values, then any pending customization settings for the virtual machine are cleared. If there is a pending customization for the virtual machine and spec has valid content, then the existing customization setting will be overwritten with the new settings.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Provisioning.Customize.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "The unique identifier of the virtual machine that needs to be customized.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.customization_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine vm is not in a powered off state.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "if a customization specification is not found with the unique name in spec.\nIf the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1customization/put" + } + }, + "get": { + "tags": [ + "vm/guest/customization" + ], + "summary": "Returns the status of the customization operation that has been applied for the virtual machine in vm.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.View.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "The unique identifier of the virtual machine that needs to be queried.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "The status of the customization operation applied for the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.customization_resp" + } + }, + "404": { + "description": "If the virtual machine vm is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1customization/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/identity": { + "get": { + "tags": [ + "vm/guest/identity" + ], + "summary": "Return information about the guest.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "guest identification information.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.identity_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if VMware Tools is not running.\nif VMware Tools has not provided any data.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1identity/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/local-filesystem": { + "get": { + "tags": [ + "vm/guest/local_filesystem" + ], + "summary": "Returns details of the local file systems in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the local file systems configured in the guest operating system.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.local_filesystem_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if VMware Tools is not running.\nif VMware Tools has not provided any data.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1local-filesystem/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/networking": { + "get": { + "tags": [ + "vm/guest/networking" + ], + "summary": "Returns information about the network configuration in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the networking configuration in the guest operating system.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.networking_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1networking/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/networking/interfaces": { + "get": { + "tags": [ + "vm/guest/networking/interfaces" + ], + "summary": "Returns information about the networking interfaces in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the interfaces configured in the guest operating system. Interfaces are ordered in a guest operating system specific determined order.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.list_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1networking~1interfaces/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/networking/routes": { + "get": { + "tags": [ + "vm/guest/networking/routes" + ], + "summary": "Returns information about network routing in the guest operating system.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the network routes configured in the guest operating system.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.networking.routes.list_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1networking~1routes/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/power": { + "get": { + "tags": [ + "vm/guest/power" + ], + "summary": "Returns information about the guest operating system power state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Guest OS powerstate information.", + "schema": { + "$ref": "#/definitions/vcenter.vm.guest.power_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1power/get" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/power?action=reboot": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a reboot. This request returns immediately and does not wait for the guest operating system to complete the operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "reboot", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1power?action=reboot/post" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/power?action=shutdown": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a clean shutdown of all services. This request returns immediately and does not wait for the guest operating system to complete the operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "shutdown", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1power?action=shutdown/post" + } + } + }, + "/rest/vcenter/vm/{vm}/guest/power?action=standby": { + "post": { + "tags": [ + "vm/guest/power" + ], + "summary": "Issues a request to the guest operating system asking it to perform a suspend operation.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine does not support being powered on (e.g. marked as a template, serving as a fault-tolerance secondary virtual machine).", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if VMware Tools is not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + } + }, + "operationId": "standby", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1guest~1power?action=standby/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware": { + "get": { + "tags": [ + "vm/hardware" + ], + "summary": "Returns the virtual hardware settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Virtual hardware settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware/get" + } + }, + "patch": { + "tags": [ + "vm/hardware" + ], + "summary": "Updates the virtual hardware settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/action/upgrade": { + "post": { + "tags": [ + "vm/hardware" + ], + "summary": "Upgrades the virtual machine to a newer virtual hardware version.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware_upgrade" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "upgrade", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware?action=upgrade/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/nvme": { + "post": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Adds a virtual NVMe adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual NVMe adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1nvme/post" + } + }, + "get": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Returns commonly used information about the virtual NVMe adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual NVMe adapters.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1nvme/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/nvme/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Returns information about a virtual NVMe adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual NVMe adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual NVMe adapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual NVMe adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1nvme~1{adapter}/get" + } + }, + "delete": { + "tags": [ + "vm/hardware/adapter/nvme" + ], + "summary": "Removes a virtual NVMe adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual NVMe adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual NVMe adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1nvme~1{adapter}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/sata": { + "post": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Adds a virtual SATA adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual SATA adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1sata/post" + } + }, + "get": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Returns commonly used information about the virtual SATA adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual SATA adapters.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1sata/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/sata/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Returns information about a virtual SATA adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SATA adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual SATA adapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual SATA adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1sata~1{adapter}/get" + } + }, + "delete": { + "tags": [ + "vm/hardware/adapter/sata" + ], + "summary": "Removes a virtual SATA adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SATA adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual SATA adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1sata~1{adapter}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/scsi": { + "post": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Adds a virtual SCSI adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual SCSI adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1scsi/post" + } + }, + "get": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Returns commonly used information about the virtual SCSI adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual SCSI adapters.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1scsi/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/adapter/scsi/{adapter}": { + "get": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Returns information about a virtual SCSI adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual SCSI adapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1scsi~1{adapter}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Updates the configuration of a virtual SCSI adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1scsi~1{adapter}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/adapter/scsi" + ], + "summary": "Removes a virtual SCSI adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "adapter", + "description": "Virtual SCSI adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual SCSI adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1adapter~1scsi~1{adapter}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/boot": { + "get": { + "tags": [ + "vm/hardware/boot" + ], + "summary": "Returns the boot-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Boot-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.boot_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1boot/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/boot" + ], + "summary": "Updates the boot-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.boot_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1boot/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/boot/device": { + "put": { + "tags": [ + "vm/hardware/boot/device" + ], + "summary": "Sets the virtual devices that will be used to boot the virtual machine. The virtual machine will check the devices in order, attempting to boot from each, until the virtual machine boots successfully. If the list is empty, the virtual machine will use a default boot sequence. There should be no more than one instance of Device.Entry for a given device type except ETHERNET in the list.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device_set" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found, or if any of the specified virtual devices is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "set", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1boot~1device/put" + } + }, + "get": { + "tags": [ + "vm/hardware/boot/device" + ], + "summary": "Returns an ordered list of boot devices for the virtual machine. If the list is empty, the virtual machine uses a default boot sequence.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Ordered list of configured boot devices.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1boot~1device/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/cdrom": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Adds a virtual CD-ROM device to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual CD-ROM device identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom/post" + } + }, + "get": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Returns commonly used information about the virtual CD-ROM devices belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual CD-ROM devices.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/cdrom/{cdrom}": { + "get": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Returns information about a virtual CD-ROM device.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual CD-ROM device.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom~1{cdrom}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Updates the configuration of a virtual CD-ROM device.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom~1{cdrom}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Removes a virtual CD-ROM device from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom~1{cdrom}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/cdrom/{cdrom}/connect": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Connects a virtual CD-ROM device of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Cdrom.update operation may be used to configure the virtual CD-ROM device to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom~1{cdrom}?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/cdrom/{cdrom}/disconnect": { + "post": { + "tags": [ + "vm/hardware/cdrom" + ], + "summary": "Disconnects a virtual CD-ROM device of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the CD-ROM device is not connected to its backing resource. \n For a powered-off virtual machine, the Cdrom.update operation may be used to configure the virtual CD-ROM device to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "cdrom", + "description": "Virtual CD-ROM device identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual CD-ROM device is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cdrom~1{cdrom}?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/cpu": { + "get": { + "tags": [ + "vm/hardware/cpu" + ], + "summary": "Returns the CPU-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "CPU-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cpu_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cpu/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/cpu" + ], + "summary": "Updates the CPU-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.cpu_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1cpu/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/disk": { + "post": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Adds a virtual disk to the virtual machine. While adding the virtual disk, a new VMDK file may be created or an existing VMDK file may be used to back the virtual disk.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.disk_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual disk identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1disk/post" + } + }, + "get": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Returns commonly used information about the virtual disks belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about the virtual disks.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1disk/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/disk/{disk}": { + "get": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Returns information about a virtual disk.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual disk.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.disk_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1disk~1{disk}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Updates the configuration of a virtual disk. An update operation can be used to detach the existing VMDK file and attach another VMDK file to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.disk_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1disk~1{disk}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/disk" + ], + "summary": "Removes a virtual disk from the virtual machine. This operation does not destroy the VMDK file that backs the virtual disk. It only detaches the VMDK file from the virtual machine. Once detached, the VMDK file will not be destroyed when the virtual machine to which it was associated is deleted.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "disk", + "description": "Virtual disk identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Disk." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual disk is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1disk~1{disk}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/ethernet": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Adds a virtual Ethernet adapter to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual Ethernet adapter identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.create_resp" + } + }, + "400": { + "description": "if the guest operating system of the virtual machine is not supported and spec includes unset fields that default to guest-specific values.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unsupported_error" + } + }, + "404": { + "description": "if the virtual machine or network backing is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet/post" + } + }, + "get": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Returns commonly used information about the virtual Ethernet adapters belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual Ethernet adapters.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/ethernet/{nic}": { + "get": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Returns information about a virtual Ethernet adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual Ethernet adapter.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet~1{nic}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Updates the configuration of a virtual Ethernet adapter.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine, virtual Ethernet adapter, or backing network is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet~1{nic}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Removes a virtual Ethernet adapter from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet~1{nic}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/ethernet/{nic}/connect": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Connects a virtual Ethernet adapter of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Ethernet.update operation may be used to configure the virtual Ethernet adapter to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet~1{nic}?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/ethernet/{nic}/disconnect": { + "post": { + "tags": [ + "vm/hardware/ethernet" + ], + "summary": "Disconnects a virtual Ethernet adapter of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the Ethernet adapter is not connected to its backing resource. \n For a powered-off virtual machine, the Ethernet.update operation may be used to configure the virtual Ethernet adapter to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "nic", + "description": "Virtual Ethernet adapter identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Ethernet." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual Ethernet adapter is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1ethernet~1{nic}?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/floppy": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Adds a virtual floppy drive to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual floppy drive identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.create_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy/post" + } + }, + "get": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Returns commonly used information about the virtual floppy drives belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual floppy drives.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/floppy/{floppy}": { + "get": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Returns information about a virtual floppy drive.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual floppy drive.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy~1{floppy}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Updates the configuration of a virtual floppy drive.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy~1{floppy}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Removes a virtual floppy drive from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy~1{floppy}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/floppy/{floppy}/connect": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Connects a virtual floppy drive of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Floppy.update operation may be used to configure the virtual floppy drive to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy~1{floppy}?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/floppy/{floppy}/disconnect": { + "post": { + "tags": [ + "vm/hardware/floppy" + ], + "summary": "Disconnects a virtual floppy drive of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the floppy drive is not connected to its backing resource. \n For a powered-off virtual machine, the Floppy.update operation may be used to configure the virtual floppy floppy to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "floppy", + "description": "Virtual floppy drive identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Floppy." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual floppy drive is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1floppy~1{floppy}?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/memory": { + "get": { + "tags": [ + "vm/hardware/memory" + ], + "summary": "Returns the memory-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Memory-related settings of the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.memory_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1memory/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/memory" + ], + "summary": "Updates the memory-related settings of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.memory_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1memory/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/parallel": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Adds a virtual parallel port to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual parallel port identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.create_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel/post" + } + }, + "get": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Returns commonly used information about the virtual parallel ports belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual parallel ports.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/parallel/{port}": { + "get": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Returns information about a virtual parallel port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual parallel port.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel~1{port}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Updates the configuration of a virtual parallel port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel~1{port}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Removes a virtual parallel port from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel~1{port}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/parallel/{port}/connect": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Connects a virtual parallel port of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Parallel.update operation may be used to configure the virtual parallel port to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel~1{port}?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/parallel/{port}/disconnect": { + "post": { + "tags": [ + "vm/hardware/parallel" + ], + "summary": "Disconnects a virtual parallel port of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the parallel port is not connected to its backing. \n For a powered-off virtual machine, the Parallel.update operation may be used to configure the virtual parallel port to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual parallel port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual parallel port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1parallel~1{port}?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/serial": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Adds a virtual serial port to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.serial_create" + } + } + ], + "responses": { + "200": { + "description": "Virtual serial port identifier.\nThe result will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.create_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "create", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial/post" + } + }, + "get": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Returns commonly used information about the virtual serial ports belonging to the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "List of commonly used information about virtual serial ports.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.list_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "list", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial/get" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/serial/{port}": { + "get": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Returns information about a virtual serial port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "200": { + "description": "Information about the specified virtual serial port.", + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.serial_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial~1{port}/get" + } + }, + "patch": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Updates the configuration of a virtual serial port.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.hardware.serial_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial~1{port}/patch" + } + }, + "delete": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Removes a virtual serial port from the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "delete", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial~1{port}/delete" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/serial/{port}/connect": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Connects a virtual serial port of a powered-on virtual machine to its backing. Connecting the virtual device makes the backing accessible from the perspective of the guest operating system. \n For a powered-off virtual machine, the Serial.update operation may be used to configure the virtual serial port to start in the connected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial~1{port}?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/hardware/serial/{port}/disconnect": { + "post": { + "tags": [ + "vm/hardware/serial" + ], + "summary": "Disconnects a virtual serial port of a powered-on virtual machine from its backing. The virtual device is still present and its backing configuration is unchanged, but from the perspective of the guest operating system, the serial port is not connected to its backing. \n For a powered-off virtual machine, the Serial.update operation may be used to configure the virtual serial port to start in the disconnected state when the virtual machine is powered on.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "type": "string", + "required": true, + "in": "path", + "name": "port", + "description": "Virtual serial port identifier.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.SerialPort." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine or virtual serial port is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1hardware~1serial~1{port}?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/library-item": { + "get": { + "tags": [ + "vm/library_item" + ], + "summary": "Returns the information about the library item associated with the virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Information about the library item associated with the virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.library_item_resp" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user that requested the operation cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user that requested the operation is not authorized to perform the operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1library-item/get" + } + } + }, + "/rest/vcenter/vm/{vm}/power": { + "get": { + "tags": [ + "vm/power" + ], + "summary": "Returns the power state information of a virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires System.Read.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Power state information for the specified virtual machine.", + "schema": { + "$ref": "#/definitions/vcenter.vm.power_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration or execution state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1power/get" + } + } + }, + "/rest/vcenter/vm/{vm}/power/reset": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Resets a powered-on virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.Reset.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is performing another operation", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "reset", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1power?action=reset/post" + } + } + }, + "/rest/vcenter/vm/{vm}/power/start": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Powers on a powered-off or suspended virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.PowerOn.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "start", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1power?action=start/post" + } + } + }, + "/rest/vcenter/vm/{vm}/power/stop": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Powers off a powered-on or suspended virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.PowerOff.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "stop", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1power?action=stop/post" + } + } + }, + "/rest/vcenter/vm/{vm}/power/suspend": { + "post": { + "tags": [ + "vm/power" + ], + "summary": "Suspends a powered-on virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Interact.Suspend.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is performing another operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "suspend", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1power?action=suspend/post" + } + } + }, + "/rest/vcenter/vm/{vm}/storage/policy": { + "get": { + "tags": [ + "vm/storage/policy" + ], + "summary": "Returns Information about Storage Policy associated with a virtual machine's home directory and/or its virtual hard disks.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Overview of Storage Policy associated with a virtual machine's home directory and/or its associated virtual hard disks.", + "schema": { + "$ref": "#/definitions/vcenter.vm.storage.policy_resp" + } + }, + "400": { + "description": "if the virtual machine's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1storage~1policy/get" + } + }, + "patch": { + "tags": [ + "vm/storage/policy" + ], + "summary": "Updates the storage policy configuration of a virtual machine and/or its associated virtual hard disks.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.storage.policy_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine or disk's configuration state cannot be accessed.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user is not authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required priveleges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1storage~1policy/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/storage/policy/compliance": { + "get": { + "tags": [ + "vm/storage/policy/compliance" + ], + "summary": "Returns the cached storage policy compliance information of a virtual machine.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "Virtual machine storage policy compliance Info Compliance.Info.\nIf unset, neither the virtual machine home directory nor any of it's virtual disks are associated with a storage policy.", + "schema": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1storage~1policy~1compliance/get" + } + } + }, + "/rest/vcenter/vm/{vm}/storage/policy/compliance?action=check": { + "post": { + "tags": [ + "vm/storage/policy/compliance" + ], + "summary": "Returns the storage policy Compliance Compliance.Info of a virtual machine after explicitly re-computing compliance check.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine identifier.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance_check" + } + } + ], + "responses": { + "200": { + "description": "Virtual machine storage policy compliance Compliance.Info structure .\nIf unset, neither the virtual machine home directory nor any of it's virtual disks are associated with a storage policy.", + "schema": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.check_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service necessary to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user does not have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "check", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1storage~1policy~1compliance?action=check/post" + } + } + }, + "/rest/vcenter/vm/{vm}/tools": { + "get": { + "tags": [ + "vm/tools" + ], + "summary": "Get the properties of VMware Tools.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "VMware Tools properties.", + "schema": { + "$ref": "#/definitions/vcenter.vm.tools_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools/get" + } + }, + "patch": { + "tags": [ + "vm/tools" + ], + "summary": "Update the properties of VMware Tools.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.vm.tools_update" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the Tools.UpdateSpec.upgrade-policy field contains a value that is not supported by the server.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "update", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools/patch" + } + } + }, + "/rest/vcenter/vm/{vm}/tools/installer": { + "get": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Get information about the VMware Tools installer.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "information about the VMware Tools installer.", + "schema": { + "$ref": "#/definitions/vcenter.vm.tools.installer_resp" + } + }, + "400": { + "description": "if the system reports an error while responding to the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "get", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools~1installer/get" + } + } + }, + "/rest/vcenter/vm/{vm}/tools/installer?action=connect": { + "post": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Connects the VMware Tools CD installer as a CD-ROM for the guest operating system. On Windows guest operating systems with autorun, this should cause the installer to initiate the Tools installation which will need user input to complete. On other (non-Windows) guest operating systems this will make the Tools installation available, and a a user will need to do guest-specific actions. On Linux, this includes opening an archive and running the installer. To monitor the status of the Tools install, clients should check the Tools.Info.version-status and Tools.Info.run-state from Tools.get", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "400": { + "description": "if the Tools installation fails in the guest operating system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "connect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools~1installer?action=connect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/tools/installer?action=disconnect": { + "post": { + "tags": [ + "vm/tools/installer" + ], + "summary": "Disconnect the VMware Tools installer CD image.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Virtual machine ID\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is not powered on.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state_error" + } + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "disconnect", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools~1installer?action=disconnect/post" + } + } + }, + "/rest/vcenter/vm/{vm}/tools?action=upgrade": { + "post": { + "tags": [ + "vm/tools" + ], + "summary": "Begins the Tools upgrade process. To monitor the status of the Tools upgrade, clients should check the Tools status by calling Tools.get and examining Tools.Info.version-status and Tools.Info.run-state.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "schema": { + "$ref": "#/definitions/vcenter.vm.tools_upgrade" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "if the virtual machine is not found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the VMware Tools are not running.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "400": { + "description": "if the upgrade process fails inside the guest operating system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.error_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + } + }, + "operationId": "upgrade", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}~1tools?action=upgrade/post" + } + } + }, + "/rest/vcenter/vm/{vm}?action=relocate": { + "post": { + "tags": [ + "VM" + ], + "summary": "Relocates a virtual machine based on the specification. The parts of the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, CLUSTER and DATASTORE of home of the virtual machine and disks. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires Resource.ColdMigrate. \n - The resource ResourcePool referenced by the attribute VM.RelocatePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Existing Virtual machine to relocate.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_relocate" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if a specified resource (eg. host) is not accessible.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if any of the resources specified in spec or the given \"vm\" could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "relocate", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}?action=relocate/post" + } + } + }, + "/rest/vcenter/vm/{vm}?action=relocate&vmw-task=true": { + "post": { + "tags": [ + "VM" + ], + "summary": "Relocates a virtual machine based on the specification. The parts of the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, CLUSTER and DATASTORE of home of the virtual machine and disks. \n\n\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires Resource.ColdMigrate. \n - The resource ResourcePool referenced by the attribute VM.RelocatePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Existing Virtual machine to relocate.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_relocate_task" + } + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/vcenter.VM.relocate_task_resp" + } + }, + "400": { + "description": "if a specified resource (eg. host) is not accessible.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible_error" + } + }, + "404": { + "description": "if any of the resources specified in spec or the given \"vm\" could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "relocate$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}?action=relocate/post" + } + } + }, + "/rest/vcenter/vm/{vm}?action=unregister": { + "post": { + "tags": [ + "VM" + ], + "summary": "Removes the virtual machine corresponding to vm from the vCenter inventory without removing any of the virtual machine's files from storage. All high-level information stored with the management server (ESXi or vCenter) is removed, including information such as statistics, resource pool association, permissions, and alarms.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the parameter vm requires VirtualMachine.Inventory.Unregister.", + "parameters": [ + { + "type": "string", + "required": true, + "in": "path", + "name": "vm", + "description": "Identifier of the virtual machine to be unregistered.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "if the virtual machine is busy performing another operation.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.resource_busy_error" + } + }, + "404": { + "description": "if there is no virtual machine associated with vm in the system.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "unregister", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm~1{vm}?action=unregister/post" + } + } + }, + "/rest/vcenter/vm?action=clone": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from an existing virtual machine. \n\n\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.DiskCloneSpec.datastore requires Datastore.AllocateSpace. \n - The resource Datastore referenced by the attribute VM.ClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Folder referenced by the attribute VM.ClonePlacementSpec.folder requires VirtualMachine.Inventory.CreateFromExisting. \n - The resource ResourcePool referenced by the attribute VM.ClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource VirtualMachine referenced by the attribute VM.CloneSpec.source requires VirtualMachine.Provisioning.Clone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_clone" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.VM.clone_resp" + } + }, + "400": { + "description": "if any of the resources needed to clone the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "clone", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm?action=clone/post" + } + } + }, + "/rest/vcenter/vm?action=clone&vmw-task=true": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from an existing virtual machine. \n\n\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.DiskCloneSpec.datastore requires Datastore.AllocateSpace. \n - The resource Datastore referenced by the attribute VM.ClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Folder referenced by the attribute VM.ClonePlacementSpec.folder requires VirtualMachine.Inventory.CreateFromExisting. \n - The resource ResourcePool referenced by the attribute VM.ClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource VirtualMachine referenced by the attribute VM.CloneSpec.source requires VirtualMachine.Provisioning.Clone.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_clone_task" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.VM.clone_task_resp" + } + }, + "400": { + "description": "if any of the resources needed to clone the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "clone$task", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm?action=clone/post" + } + } + }, + "/rest/vcenter/vm?action=instant-clone": { + "post": { + "tags": [ + "VM" + ], + "summary": "Create an instant clone of an existing virtual machine.\nif you do not have all of the privileges described as follows: \n - The resource VirtualMachine referenced by the attribute VM.InstantCloneSpec.source requires VirtualMachine.Provisioning.Clone and VirtualMachine.Inventory.CreateFromExisting. \n - The resource Folder referenced by the attribute VM.InstantClonePlacementSpec.folder requires VirtualMachine.Interact.PowerOn. \n - The resource ResourcePool referenced by the attribute VM.InstantClonePlacementSpec.resource-pool requires Resource.AssignVMToPool. \n - The resource Datastore referenced by the attribute VM.InstantClonePlacementSpec.datastore requires Datastore.AllocateSpace. \n - The resource Network referenced by the attribute Ethernet.BackingSpec.network requires Network.Assign.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_instant_clone" + } + } + ], + "responses": { + "200": { + "description": "ID of newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.VM.instant_clone_resp" + } + }, + "400": { + "description": "if any of the resources needed to create an instant clone could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user can not be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "instant_clone", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm?action=instant-clone/post" + } + } + }, + "/rest/vcenter/vm?action=register": { + "post": { + "tags": [ + "VM" + ], + "summary": "Creates a virtual machine from existing virtual machine files on storage.\nif you do not have all of the privileges described as follows: \n - The resource Datastore referenced by the attribute VM.RegisterSpec.datastore requires System.Read. \n - The resource Folder referenced by the attribute VM.InventoryPlacementSpec.folder requires VirtualMachine.Inventory.Register. \n - The resource ResourcePool referenced by the attribute VM.ComputePlacementSpec.resource-pool requires Resource.AssignVMToPool.", + "parameters": [ + { + "in": "body", + "name": "request_body", + "required": true, + "schema": { + "$ref": "#/definitions/vcenter.VM_register" + } + } + ], + "responses": { + "200": { + "description": "Identifier of the newly-created virtual machine.\nThe result will be an identifier for the resource type: VirtualMachine.", + "schema": { + "$ref": "#/definitions/vcenter.VM.register_resp" + } + }, + "400": { + "description": "if any of the resources needed to register the virtual machine could not be allocated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource_error" + } + }, + "404": { + "description": "if any of the resources specified in spec could not be found.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.not_found_error" + } + }, + "503": { + "description": "if the system is unable to communicate with a service to complete the request.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable_error" + } + }, + "401": { + "description": "if the user cannot be authenticated.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated_error" + } + }, + "403": { + "description": "if the user doesn't have the required privileges.", + "schema": { + "$ref": "#/definitions/vapi.std.errors.unauthorized_error" + } + } + }, + "operationId": "register", + "security": [ + { + "session_id": [] + } + ], + "deprecated": true, + "x-vmw-deprecated": { + "replacement": "api_vcenter.json#/paths/~1api~1vcenter~1vm?action=register/post" + } + } + } + }, + "definitions": { + "CisTaskProgress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "CisTaskStatus": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "Oauth2ErrorsErrorType": { + "type": "string", + "description": "Enumeration of OAuth 2.0 errors.", + "enum": [ + "invalid_request", + "invalid_scope", + "invalid_grant" + ] + }, + "Oauth2ErrorsInvalidGrant": { + "type": "object", + "properties": { + "error": { + "description": "Discriminator field to help API consumers identify the structure type.", + "$ref": "#/definitions/Oauth2ErrorsErrorType" + }, + "error_description": { + "description": "Human-readable ASCII text providing additional information, used to assist the client developer in understanding the error that occurred. Values for the \"error_description\" parameter MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E.\nif no additional information is available.", + "type": "string" + }, + "error_uri": { + "description": "A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error.\nif no such web-page is available.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "error" + ] + }, + "Oauth2ErrorsInvalidRequest": { + "type": "object", + "properties": { + "error": { + "description": "Discriminator field to help API consumers identify the structure type.", + "$ref": "#/definitions/Oauth2ErrorsErrorType" + }, + "error_description": { + "description": "Human-readable ASCII text providing additional information, used to assist the client developer in understanding the error that occurred. Values for the \"error_description\" parameter MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E.\nif no additional information is available.", + "type": "string" + }, + "error_uri": { + "description": "A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error.\nif no such web-page is available.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "error" + ] + }, + "Oauth2ErrorsInvalidScope": { + "type": "object", + "properties": { + "error": { + "description": "Discriminator field to help API consumers identify the structure type.", + "$ref": "#/definitions/Oauth2ErrorsErrorType" + }, + "error_description": { + "description": "Human-readable ASCII text providing additional information, used to assist the client developer in understanding the error that occurred. Values for the \"error_description\" parameter MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E.\nif no additional information is available.", + "type": "string" + }, + "error_uri": { + "description": "A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error.\nif no such web-page is available.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "error" + ] + }, + "Oauth2TokenInfo": { + "type": "object", + "properties": { + "access_token": { + "description": "The access token issued by the authorization server.", + "type": "string" + }, + "token_type": { + "description": "A case-insensitive value specifying the method of using the access token issued.", + "type": "string" + }, + "expires_in": { + "description": "The validity lifetime, in seconds, of the token issued by the server.\nunset if not applicable for issued token.", + "type": "integer", + "format": "int64" + }, + "scope": { + "description": "Scope of the issued access token. The value of the scope parameter is expressed as a list of space- delimited, case-sensitive strings. The strings are defined by the authorization server. If the value contains multiple space-delimited strings, their order does not matter, and each string adds an additional access range to the requested scope.\nunset if the scope of the issued security token is identical to the scope requested by the client.", + "type": "string" + }, + "refresh_token": { + "description": "The refresh token, which can be used to obtain new access tokens.\nunset if not applicable to the specific request.", + "type": "string" + }, + "issued_token_type": { + "description": "An identifier which indicates the type of the access token in the TokenInfo.access-token field.\nunset if not the result of a token-exchange invocation; otherwise, required.", + "type": "string" + } + }, + "required": [ + "access_token", + "token_type" + ] + }, + "VapiStdDynamicID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "VapiStdErrorsAlreadyExists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsAlreadyInDesiredState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsErrorType": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "VapiStdErrorsInternalServerError": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidArgument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidElementConfiguration": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsInvalidElementType": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotAllowedInCurrentState": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsNotFound": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceBusy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInUse": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsResourceInaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsServiceUnavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsTimedOut": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnableToAllocateResource": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdErrorsUnverifiedPeer": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/VapiStdErrorsErrorType" + } + }, + "required": [ + "messages" + ] + }, + "VapiStdLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "VapiStdLocalizationParam": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/VapiStdNestedLocalizableMessage" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/VapiStdLocalizationParamDateTimeFormat" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "VapiStdLocalizationParamDateTimeFormat": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "VapiStdNestedLocalizableMessage": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VapiStdLocalizationParam" + } + } + }, + "required": [ + "id" + ] + }, + "VcenterAuthenticationTokenIssue": { + "$ref": "#/definitions/VcenterAuthenticationTokenIssueSpec", + "description": "Token.IssueSpec structure containing arguments that define the exchange process." + }, + "VcenterAuthenticationTokenIssueSpec": { + "type": "object", + "properties": { + "grant_type": { + "description": "The value of urn:ietf:params:oauth:grant-type:token-exchange indicates that a token exchange is being performed.\nWhen clients pass a value of this structure as a parameter, the field must be one of urn:ietf:params:oauth:grant-type:token-exchange. When operations return a value of this structure as a result, the field will be one of urn:ietf:params:oauth:grant-type:token-exchange.", + "type": "string" + }, + "resource": { + "description": "Indicates the location of the target service or resource where the client intends to use the requested security token.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + "audience": { + "description": "The logical name of the target service where the client intends to use the requested security token. This serves a purpose similar to the Token.IssueSpec.resource field, but with the client providing a logical name rather than a location.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + "scope": { + "description": "A list of space-delimited, case-sensitive strings, that allow the client to specify the desired scope of the requested security token in the context of the service or resource where the token will be used.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + "requested_token_type": { + "description": "An identifier for the type of the requested security token. If the requested type is unspecified, the issued token type is at the discretion of the server and may be dictated by knowledge of the requirements of the service or resource indicated by the Token.IssueSpec.resource or Token.IssueSpec.audience field.\nIf unset, it is inferred from other arguments.", + "type": "string" + }, + "subject_token": { + "description": "A security token that represents the identity of the party on behalf of whom exchange is being made. Typically, the subject of this token will be the subject of the security token issued. Token is base64-encoded. \nThe field is required when the value of the Token.IssueSpec.grant-type field is urn:ietf:params:oauth:grant-type:token-exchange.\n\nThis field is currently required. In the future, the structure may support grant-types other than urn:ietf:params:oauth:grant-type:token-exchange for which the value may be unset.", + "type": "string" + }, + "subject_token_type": { + "description": "An identifier, that indicates the type of the security token in the Token.IssueSpec.subject-token field. \nThe field is required when the value of the Token.IssueSpec.grant-type field is urn:ietf:params:oauth:grant-type:token-exchange.\n\nThis field is currently required. In the future, the structure may support grant-types other than urn:ietf:params:oauth:grant-type:token-exchange for which the value may be unset.", + "type": "string" + }, + "actor_token": { + "description": "A security token that represents the identity of the acting party. Typically, this will be the party that is authorized to use the requested security token and act on behalf of the subject.\nunset if not needed for the specific case of exchange.", + "type": "string" + }, + "actor_token_type": { + "description": "An identifier, that indicates the type of the security token in the Token.IssueSpec.actor-token field.\nunset if Token.IssueSpec.actor-token field is not present.", + "type": "string" + } + }, + "required": [ + "grant_type" + ] + }, + "VcenterAuthorizationPrivilegeChecksFilterSpec": { + "type": "object", + "properties": { + "objects": { + "description": "IDs of the objects on which the privilege check was performed.\nIf unset all objects match.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdDynamicID" + } + }, + "sessions": { + "description": "Sessions for which the check was performed.\nIf unset all sessions match.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "principals": { + "description": "Principles for which the privilege check was performed. The unset PrivilegeChecks.Principal value matches privilege checks for anonymous sessions.\nIf unset all principles match.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksPrincipal" + } + }, + "privileges": { + "description": "Privileges that were checked.\nIf unset all privileges match.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.authz.Privilege. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.authz.Privilege.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "op_ids": { + "description": "OpIDs of the requests for which the check was performed.\nIf unset all opIDs match.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterAuthorizationPrivilegeChecksInfo": { + "type": "object", + "properties": { + "object": { + "description": "Object for which the privilege was checked.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "principal": { + "description": "Principal for which the privilege was checked. Note that the username and domain specified are case-insensitive.\nIf unset the privilege was checked for an unauthenticated session.", + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksPrincipal" + }, + "privilege": { + "description": "Privilege that was checked.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.authz.Privilege. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.authz.Privilege.", + "type": "string" + } + }, + "required": [ + "object", + "privilege" + ] + }, + "VcenterAuthorizationPrivilegeChecksIterationSpec": { + "type": "object", + "properties": { + "size": { + "description": "Specifies the maximum number of results to return.\nIf unset defaults to default page size, which is controlled by config.vpxd.privilegeChecks.pageSize advanced option.", + "type": "integer", + "format": "int64" + }, + "marker": { + "description": "An opaque token which determines where the returned page should begin.\nIf unset or empty, privilege checks will be returned from the first record.", + "type": "string" + }, + "end_marker": { + "description": "An opaque token which determines where the returned page should end.\nIf unset or empty, privilege checks will be returned up to size, if set, or up to the default page size.", + "type": "string" + }, + "timeout_ms": { + "description": "Indicates how long the request should wait in ms for a matching check if PrivilegeChecks.IterationSpec.marker is set, and there no matching checks to be added to the result.\nIf unset or empty, the request will not wait for additional privilege checks and will return immediately.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterAuthorizationPrivilegeChecksList": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksFilterSpec", + "description": "Contains optional settings by which the privilege checks should be filtered.\nif unset, recorded privilege checks matching the iteration spec are returned." + } + } + }, + "VcenterAuthorizationPrivilegeChecksListResult": { + "type": "object", + "properties": { + "items": { + "description": "Privilege checks that match the specifiedPrivilegeChecks.FilterSpec and PrivilegeChecks.IterationSpec in chronological order as they were performed. Each check is recorded only the first time it is made. If more than one privilege check matches a given PrivilegeChecks.FilterSpec (for example, two different opIDs checked System.Read for the same object and the same principal, a FilterSpec which specifies only the principal will only contain the first check).", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterAuthorizationPrivilegeChecksInfo" + } + }, + "marker": { + "description": "An opaque marker indicating the last returned privilege check. If there are more privilege checks collected than were returned, the next ones can be retrieved directly by passing this value to another call to vcenter.authorization.PrivilegeChecks.list.", + "type": "string" + }, + "truncated": { + "description": "In case PrivilegeChecks.IterationSpec.marker was specified and valid, but the privilege check indicated by it is no longer stored,", + "type": "boolean" + } + }, + "required": [ + "items", + "marker", + "truncated" + ] + }, + "VcenterAuthorizationPrivilegeChecksPrincipal": { + "type": "object", + "properties": { + "name": { + "description": "The principal's username.", + "type": "string" + }, + "domain": { + "description": "The principal's domain.", + "type": "string" + } + }, + "required": [ + "name", + "domain" + ] + }, + "VcenterCertificateManagementVcenterSigningCertificateInfo": { + "type": "object", + "properties": { + "active_cert_chain": { + "description": "The certificate chain that is actively being use by vCenter token service to sign tokens.", + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + }, + "signing_cert_chains": { + "description": "List of signing certificate chains for validating vCenter-issued tokens. The list contains X509 certificate chains, each of which is ordered and contains the leaf, intermediate and root certs needed for the complete chain of trust. The leaf certificate is first in the chain and should be used for verifying vCenter-issued tokens.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + } + } + }, + "required": [ + "active_cert_chain", + "signing_cert_chains" + ] + }, + "VcenterCertificateManagementVcenterSigningCertificateRefresh": { + "type": "object", + "properties": { + "force": { + "type": "boolean", + "description": "Will force refresh in environments that would otherwise prevent refresh from occurring, such as a mixed-version environment. Force refresh may leave systems in the local vCenter domain in a non-functional state until they are restarted.\nIf unset, then refresh will not be forced." + } + } + }, + "VcenterCertificateManagementVcenterSigningCertificateSet": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterSigningCertificateSetSpec", + "description": "Signing certificate chain and private key which the vCenter token service will actively use to sign tokens." + }, + "VcenterCertificateManagementVcenterSigningCertificateSetSpec": { + "type": "object", + "properties": { + "signing_cert_chain": { + "description": "Signing certificate chain that the vCenter token service will actively use to sign tokens. The chain must include a valid certificate chain with the leaf cert marked for digital signature key usage.", + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + }, + "private_key": { + "description": "The corresponding unencrypted PKCS#8 private key in base64-encoded PEM format.", + "type": "string" + } + }, + "required": [ + "signing_cert_chain", + "private_key" + ] + }, + "VcenterCertificateManagementVcenterTlsCsrCreate": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsCsrSpec", + "description": "The information needed to create a CSR." + }, + "VcenterCertificateManagementVcenterTlsCsrInfo": { + "type": "object", + "properties": { + "csr": { + "description": "Certificate Signing Request in PEM format.", + "type": "string" + } + }, + "required": [ + "csr" + ] + }, + "VcenterCertificateManagementVcenterTlsCsrSpec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset, the key size will be 3072 bits.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "Common name field in certificate subject.\nIf unset, the common name will be the PNID.", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject. \n CA Browser forum announced that \"CAs MUST NOT include the organizationalUnitName field\". So OU is no longer needed and an empty string should be used to leave it unset.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions", + "type": "string" + }, + "subject_alt_name": { + "description": "Subject Alternative Name field is list of Dns Names and Ip addresses.\nIf unset, the subject alternative name will contain the PNID.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "organization", + "organization_unit", + "locality", + "state_or_province", + "country", + "email_address" + ] + }, + "VcenterCertificateManagementVcenterTlsInfo": { + "type": "object", + "properties": { + "version": { + "description": "Version (version number) value from the certificate.", + "type": "integer", + "format": "int64" + }, + "serial_number": { + "description": "SerialNumber value from the certificate.", + "type": "string" + }, + "signature_algorithm": { + "description": "Signature algorithm name from the certificate.", + "type": "string" + }, + "issuer_dn": { + "description": "Issuer (issuer distinguished name) value from the certificate.", + "type": "string" + }, + "valid_from": { + "description": "validFrom specify the start date of the certificate.", + "type": "string", + "format": "date-time" + }, + "valid_to": { + "description": "validTo specify the end date of the certificate.", + "type": "string", + "format": "date-time" + }, + "subject_dn": { + "description": "Subject (subject distinguished name) value from the certificate.", + "type": "string" + }, + "thumbprint": { + "description": "Thumbprint value from the certificate.", + "type": "string" + }, + "is_CA": { + "description": "Certificate constraints isCA from the critical BasicConstraints extension, (OID = 2.5.29.19).", + "type": "boolean" + }, + "path_length_constraint": { + "description": "Certificate constraints path length from the critical BasicConstraints extension, (OID = 2.5.29.19).", + "type": "integer", + "format": "int64" + }, + "key_usage": { + "description": "Collection of keyusage contained in the certificate.", + "type": "array", + "items": { + "type": "string" + } + }, + "extended_key_usage": { + "description": "Collection of extended keyusage that contains details for which the certificate can be used for.", + "type": "array", + "items": { + "type": "string" + } + }, + "subject_alternative_name": { + "description": "Collection of subject alternative names.", + "type": "array", + "items": { + "type": "string" + } + }, + "authority_information_access_uri": { + "description": "Collection of authority information access URI.", + "type": "array", + "items": { + "type": "string" + } + }, + "cert": { + "description": "TLS certificate in PEM format.", + "type": "string" + } + }, + "required": [ + "version", + "serial_number", + "signature_algorithm", + "issuer_dn", + "valid_from", + "valid_to", + "subject_dn", + "thumbprint", + "is_CA", + "path_length_constraint", + "key_usage", + "extended_key_usage", + "subject_alternative_name", + "authority_information_access_uri", + "cert" + ] + }, + "VcenterCertificateManagementVcenterTlsRenew": { + "type": "object", + "properties": { + "duration": { + "type": "integer", + "format": "int64", + "description": "The duration (in days) of the new TLS certificate. The duration should be less than or equal to 730 days.\nIf unset, the duration will be 730 days (two years)." + } + } + }, + "VcenterCertificateManagementVcenterTlsReplaceSpec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset the key size will be '3072'.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "The common name of the host for which certificate is generated\nIf unset will default to PNID of host.", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject. \n CA Browser forum announced that \"CAs MUST NOT include the organizationalUnitName field\". So OU is no longer needed and an empty string should be used to leave it unset.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions", + "type": "string" + }, + "subject_alt_name": { + "description": "SubjectAltName is list of Dns Names and Ip addresses\nIf unset PNID of host will be used as IPAddress or Hostname for certificate generation .", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "organization", + "organization_unit", + "locality", + "state_or_province", + "country", + "email_address" + ] + }, + "VcenterCertificateManagementVcenterTlsReplaceVmcaSigned": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsReplaceSpec", + "description": "The information needed to generate VMCA signed Machine SSL" + }, + "VcenterCertificateManagementVcenterTlsSet": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTlsSpec", + "description": "The information needed to replace the TLS certificate." + }, + "VcenterCertificateManagementVcenterTlsSpec": { + "type": "object", + "properties": { + "cert": { + "description": "Certificate string in PEM format.", + "type": "string" + }, + "key": { + "description": "Private key string in PEM format.\nIf unset the private key from the certificate store will be used. It is required when replacing the certificate with a third party signed certificate.", + "type": "string", + "format": "password" + }, + "root_cert": { + "description": "Third party Root CA certificate in PEM format.\nIf unset the new third party root CA certificate will not be added to the trust store. It is required when replacing the certificate with a third party signed certificate if the root certificate of the third party is not already a trusted root.", + "type": "string" + } + }, + "required": [ + "cert" + ] + }, + "VcenterCertificateManagementVcenterTrustedRootChainsCreate": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterTrustedRootChainsCreateSpec", + "description": "The information needed to create a trusted root certificate chain." + }, + "VcenterCertificateManagementVcenterTrustedRootChainsCreateSpec": { + "type": "object", + "properties": { + "cert_chain": { + "description": "Certificate chain in base64 encoding", + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + }, + "chain": { + "description": "Unique identifier for this trusted root. Client can specify at creation as long as it is unique, otherwise one will be generated. An example of a client providing the identifier would be if this trusted root is associated with a VC trust. In this case the identifier would be the domain id.\nA unique id will be generated if not given.", + "type": "string" + } + }, + "required": [ + "cert_chain" + ] + }, + "VcenterCertificateManagementVcenterTrustedRootChainsInfo": { + "type": "object", + "properties": { + "cert_chain": { + "description": "A certificate chain in base64 encoding", + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + } + }, + "required": [ + "cert_chain" + ] + }, + "VcenterCertificateManagementVcenterTrustedRootChainsSummary": { + "type": "object", + "properties": { + "chain": { + "description": "Unique identifier for chain.", + "type": "string" + } + }, + "required": [ + "chain" + ] + }, + "VcenterCertificateManagementVcenterVmcaRootCreate": { + "$ref": "#/definitions/VcenterCertificateManagementVcenterVmcaRootCreateSpec", + "description": "The information needed to generate VMCA signed Root Certificate.\nDefault values will be set for all null parameters." + }, + "VcenterCertificateManagementVcenterVmcaRootCreateSpec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset the key size will be 3072.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "The common name of the host for which certificate is generated.\nIf unset the common name will be the primary network identifier (PNID) of the vCenter Virtual Server Appliance (VCSA).", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject.\nIf unset the organization will be 'VMware'.", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject.\nIf unset the organization unit will not be set in the certificate subject.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject.\nIf unset the locality will be 'Palo Alto'.", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject.\nIf unset the state will be 'California'.", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject.\nIf unset the country will be 'US'.", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions.\nIf unset the emailAddress will be 'email@acme.com'.", + "type": "string" + }, + "subject_alt_name": { + "description": "SubjectAltName is list of Dns Names and Ip addresses.\nIf unset PNID of host will be used as IPAddress or Hostname for certificate generation.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterCertificateManagementX509CertChain": { + "type": "object", + "properties": { + "cert_chain": { + "description": "Certificate chain in base64 format", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "cert_chain" + ] + }, + "VcenterClusterFilterSpec": { + "type": "object", + "properties": { + "clusters": { + "description": "Identifiers of clusters that can match the filter.\nIf unset or empty, clusters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that clusters must have to match the filter (see Cluster.Info.name).\nIf unset or empty, clusters with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterClusterInfo": { + "type": "object", + "properties": { + "name": { + "description": "The name of the cluster", + "type": "string" + }, + "resource_pool": { + "description": "Identifier of the root resource pool of the cluster\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + } + }, + "required": [ + "name", + "resource_pool" + ] + }, + "VcenterClusterSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "name": { + "description": "Name of the cluster.", + "type": "string" + }, + "ha_enabled": { + "description": "Flag indicating whether the vSphere HA feature is enabled for the cluster.", + "type": "boolean" + }, + "drs_enabled": { + "description": "Flag indicating whether the vSphere DRS service is enabled for the cluster.", + "type": "boolean" + } + }, + "required": [ + "cluster", + "name", + "ha_enabled", + "drs_enabled" + ] + }, + "VcenterComputePoliciesCapabilitiesInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the capability.", + "type": "string" + }, + "description": { + "description": "Description of the capability.", + "type": "string" + }, + "create_spec_type": { + "description": "Identifier of the structure used to create a policy based on this capability. See Policies.create.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "info_type": { + "description": "Identifier of the structure returned when retrieving information about a policy based on this capability. See Policies.get.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "create_spec_type", + "info_type" + ] + }, + "VcenterComputePoliciesCapabilitiesSummary": { + "type": "object", + "properties": { + "capability": { + "description": "Identifier of the capability.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.compute.policies.Capability. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.compute.policies.Capability.", + "type": "string" + }, + "name": { + "description": "Name of the capability.", + "type": "string" + }, + "description": { + "description": "Description of the capability.", + "type": "string" + } + }, + "required": [ + "capability", + "name", + "description" + ] + }, + "VcenterComputePoliciesCreate": { + "type": "object", + "description": "Specification for the new policy to be created. The new policy will be an instance of the capability that has the creation type (see Capabilities.Info.create-spec-type) equal to the type of the specified value (see spec).\nThe parameter must contain all the attributes defined in CreateSpec." + }, + "VcenterComputePoliciesObjectCompliance": { + "type": "string", + "description": "The ObjectCompliance enumerated type defines the compliance states a policy can be in on a particular object.", + "enum": [ + "UNKNOWN", + "NOT_APPLICABLE", + "COMPLIANT", + "NOT_COMPLIANT" + ] + }, + "VcenterComputePoliciesSummary": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.compute.Policy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.compute.Policy.", + "type": "string" + }, + "name": { + "description": "Name of the policy.", + "type": "string" + }, + "description": { + "description": "Description of the policy.", + "type": "string" + }, + "capability": { + "description": "Identifier of the capability this policy is based on.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.compute.policies.Capability. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.compute.policies.Capability.", + "type": "string" + } + }, + "required": [ + "policy", + "name", + "description", + "capability" + ] + }, + "VcenterComputePoliciesTagUsageFilterSpec": { + "type": "object", + "properties": { + "policies": { + "description": "Identifiers that compute policies must have to match the filter.\nIf unset or empty, then tags used by any policy match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.compute.Policy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.compute.Policy.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "tags": { + "description": "Identifiers that tags must have to match the filter.\nIf unset or empty, then tags with any tag identifier match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: cis.tagging.Tag.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "tag_types": { + "description": "Identifiers that tag types must have to match the filter.\nIf unset or empty, then tags of any type match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.resource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.resource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterComputePoliciesTagUsageSummary": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the policy that uses the tag indicated by TagUsage.Summary.tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.compute.Policy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.compute.Policy.", + "type": "string" + }, + "tag_type": { + "description": "Identifier of the tag type used by the policy indicated by TagUsage.Summary.policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.resource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.resource.", + "type": "string" + }, + "tag": { + "description": "Identifier of the tag used by the policy indicated by TagUsage.Summary.policy.\nWhen clients pass a value of this structure as a parameter, the field TagUsage.Summary.tag-type must contain the actual resource type. When operations return a value of this structure as a result, the field TagUsage.Summary.tag-type will contain the actual resource type.", + "type": "string" + }, + "tag_name": { + "description": "Name of the tag used by the policy indicated by TagUsage.Summary.policy.", + "type": "string" + }, + "category_name": { + "description": "Name of the category that has TagUsage.Summary.tag.", + "type": "string" + } + }, + "required": [ + "policy", + "tag_type", + "tag", + "tag_name", + "category_name" + ] + }, + "VcenterConfidentialComputingSgxHostsRegisterSpec": { + "type": "object", + "properties": { + "host_id": { + "description": "The host's identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + } + }, + "required": [ + "host_id" + ] + }, + "VcenterConfidentialComputingSgxHostsRegisterTask": { + "$ref": "#/definitions/VcenterConfidentialComputingSgxHostsRegisterSpec", + "description": "Described the host that need to be registered." + }, + "VcenterConsumptionDomainsZoneAssociationsClusterFilterSpec": { + "type": "object", + "properties": { + "clusters": { + "description": "Zone-cluster associations will be filtered such that each association that is returned will have a cluster identifier from this set of specified cluster identifiers.\nIf unset or empty, zone-cluster associations will not be filtered based on cluster identifiers. Associations with any cluster identifier will match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "zones": { + "description": "Zone-cluster associations will be filtered such that each association that is returned will have a zone identifier from this set of specified zone identifiers.\nIf unset or empty, zone-cluster associations will not be filtered based on zone identifiers. Associations with any zone identifier will match this filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterConsumptionDomainsZoneAssociationsClusterListItem": { + "type": "object", + "properties": { + "zone": { + "description": "Identifier of the zone.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "cluster": { + "description": "Identifier of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + }, + "required": [ + "zone", + "cluster" + ] + }, + "VcenterConsumptionDomainsZoneAssociationsClusterListResult": { + "type": "object", + "properties": { + "associations": { + "description": "The list of zone-cluster associations.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterConsumptionDomainsZoneAssociationsClusterListItem" + } + } + }, + "required": [ + "associations" + ] + }, + "VcenterConsumptionDomainsZonesClusterAssociationsAdd": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Set of identifiers of vSphere clusters to which the the specified zone should be mapped.\nThe parameter must contain identifiers for the resource type: ClusterComputeResource." + }, + "VcenterConsumptionDomainsZonesClusterAssociationsRemove": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Set of identifiers of vSphere clusters which need to be removed from the mapping.\nThe parameter must contain identifiers for the resource type: ClusterComputeResource." + }, + "VcenterConsumptionDomainsZonesClusterAssociationsStatus": { + "type": "object", + "properties": { + "success": { + "description": "This is true if the complete operation succeeded without any errors. Otherwise, it is false if all or some operations have failed.", + "type": "boolean" + }, + "failed_clusters": { + "description": "Associations between the identifiers of the clusters for which the operation failed and the reason of the failure.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: ClusterComputeResource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "success", + "failed_clusters" + ] + }, + "VcenterConsumptionDomainsZonesCreate": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesCreateSpec", + "description": "Specifications for the zone to be created." + }, + "VcenterConsumptionDomainsZonesCreateSpec": { + "type": "object", + "properties": { + "zone": { + "description": "Identifier of the zone. It has the following restrictions: 1. The ID must be 63 characters or less (cannot be empty), 2. The ID must begin and end with a lowercase alphanumeric character ([a-z0-9]), 3. The ID must only contain dashes (-), and lowercase alphanumerics in between, 4. The ID must be unique within the vCenter in which it is created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "description": { + "description": "Description of the zone.\nIf unset or empty, an empty description is set.", + "type": "string" + } + }, + "required": [ + "zone" + ] + }, + "VcenterConsumptionDomainsZonesFilterSpec": { + "type": "object", + "properties": { + "zones": { + "description": "Matches all zones corresponding to the specified set of zone identifiers.\nIf unset or empty, results will not be filtered for specific zone identifiers.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterConsumptionDomainsZonesInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the zone.", + "type": "string" + } + }, + "required": [ + "description" + ] + }, + "VcenterConsumptionDomainsZonesListItem": { + "type": "object", + "properties": { + "zone": { + "description": "Identifier of the zone.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "info": { + "description": "Information about the zone.", + "$ref": "#/definitions/VcenterConsumptionDomainsZonesInfo" + } + }, + "required": [ + "zone", + "info" + ] + }, + "VcenterConsumptionDomainsZonesListResult": { + "type": "object", + "properties": { + "items": { + "description": "The list of zones.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterConsumptionDomainsZonesListItem" + } + } + }, + "required": [ + "items" + ] + }, + "VcenterContentRegistriesDayOfWeek": { + "type": "string", + "description": "The DayOfWeek enumerated type describes the supported days of the week to run a specific operation for a container registry.", + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ] + }, + "VcenterContentRegistriesHarborCreate": { + "$ref": "#/definitions/VcenterContentRegistriesHarborCreateSpec", + "description": "Specification for creating the Harbor registry." + }, + "VcenterContentRegistriesHarborCreateSpec": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster hosting the registry.\nIf unset, registry will not be created on a specified cluster. This is required in current version, since Harbor can only be created on a cluster with Kubernetes enabled.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "garbage_collection": { + "description": "Garbage collection configuration for the Harbor registry.\nIf unset, a default configuration is set, Recurrence#WEEKLY, DayOfWeek#SATURDAY, GarbageCollection#hour is 2, GarbageCollection#minute is 0.", + "$ref": "#/definitions/VcenterContentRegistriesHarborGarbageCollection" + }, + "storage": { + "description": "Storage associated with the Harbor registry. The list contains only one storage backing in this version.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterContentRegistriesHarborStorageSpec" + } + } + }, + "required": [ + "storage" + ] + }, + "VcenterContentRegistriesHarborGarbageCollection": { + "type": "object", + "properties": { + "type": { + "description": "Frequency of garbage collection.", + "$ref": "#/definitions/VcenterContentRegistriesRecurrence" + }, + "day_of_week": { + "description": "Day of the week when garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is WEEKLY.", + "$ref": "#/definitions/VcenterContentRegistriesDayOfWeek" + }, + "hour": { + "description": "Hour at which garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is one of DAILY or WEEKLY.", + "type": "integer", + "format": "int64" + }, + "minute": { + "description": "Minute at which garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is one of DAILY or WEEKLY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "type" + ] + }, + "VcenterContentRegistriesHarborInfo": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nIf unset, container registry is not created on the cluster specified by Harbor.CreateSpec.cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the Harbor namespace in case it is created in a Kubernetes environment.\nIf unset, no Kubernetes namespace is created for the Harbor.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NamespaceInstance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NamespaceInstance.", + "type": "string" + }, + "version": { + "description": "Version of the registry.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when the harbor registry was created.", + "type": "string", + "format": "date-time" + }, + "ui_access_url": { + "description": "URL to access the UI of the registry.", + "type": "string", + "format": "uri" + }, + "cert_chain": { + "description": "Harbor certificate chain in base64 format.", + "type": "array", + "items": { + "type": "string" + } + }, + "garbage_collection": { + "description": "Garbage collection information for the registry.", + "$ref": "#/definitions/VcenterContentRegistriesHarborGarbageCollection" + }, + "storage": { + "description": "Storage information associated with the registry.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterContentRegistriesHarborStorageInfo" + } + }, + "health": { + "description": "Health status of the container registry.", + "$ref": "#/definitions/VcenterContentRegistriesHealthInfo" + } + }, + "required": [ + "version", + "creation_time", + "ui_access_url", + "cert_chain", + "garbage_collection", + "storage", + "health" + ] + }, + "VcenterContentRegistriesHarborProjectsConfigStatus": { + "type": "string", + "description": "The Projects.ConfigStatus enumerated type describes the status of reaching the desired configuration state for the Harbor project.", + "enum": [ + "PENDING", + "REMOVING", + "ERROR", + "READY" + ] + }, + "VcenterContentRegistriesHarborProjectsCreate": { + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsCreateSpec", + "description": "Information used to create the Harbor project." + }, + "VcenterContentRegistriesHarborProjectsCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "scope": { + "description": "Access type of a Harbor project.", + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsScope" + } + }, + "required": [ + "name", + "scope" + ] + }, + "VcenterContentRegistriesHarborProjectsInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "config_status": { + "description": "The status of the Harbor project.", + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsConfigStatus" + }, + "scope": { + "description": "The access type of a Harbor project.", + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsScope" + }, + "creation_time": { + "description": "The date and time when the harbor project creation API was triggered and project identifier generated.", + "type": "string", + "format": "date-time" + }, + "update_time": { + "description": "The date and time when the harbor project purge API was triggered. In case no purge was triggered, Projects.Info.update-time is same as Projects.Info.creation-time.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is READY.", + "type": "string", + "format": "date-time" + }, + "access_url": { + "description": "URL to access the harbor project through docker client.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is READY.", + "type": "string", + "format": "uri" + }, + "message": { + "description": "Details about the ERROR project status.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is ERROR.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "name", + "config_status", + "scope", + "creation_time" + ] + }, + "VcenterContentRegistriesHarborProjectsScope": { + "type": "string", + "description": "The Projects.Scope enumerated type in a project defines access levels of the project.", + "enum": [ + "PUBLIC", + "PRIVATE" + ] + }, + "VcenterContentRegistriesHarborProjectsSummary": { + "type": "object", + "properties": { + "project": { + "description": "Identifier of the harbor project.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.content.Registry.Harbor.Project.", + "type": "string" + }, + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "scope": { + "description": "Access type of a Harbor project.", + "$ref": "#/definitions/VcenterContentRegistriesHarborProjectsScope" + } + }, + "required": [ + "project", + "name", + "scope" + ] + }, + "VcenterContentRegistriesHarborStorageInfo": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "capacity": { + "description": "Total capacity for the registry storage (in mebibytes). This is the storage limit set on the Harbor registry. If a storage limit was not set on the registry, the default registry capacity - 204800 mebibytes is used.", + "type": "integer", + "format": "int64" + }, + "used": { + "description": "Overall storage used by the registry (in mebibytes). This is the sum of used storage associated with storage policies configured for the registry.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy", + "capacity", + "used" + ] + }, + "VcenterContentRegistriesHarborStorageSpec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "limit": { + "description": "The maximum amount of storage (in mebibytes) which can be utilized by the registry for this specification.\nIf unset, a default limit of 204800 mebibytes will be set as the registry's storage capacity.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy" + ] + }, + "VcenterContentRegistriesHarborSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nIf unset, container registry is not created on the cluster specified by Harbor.CreateSpec.cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "registry": { + "description": "Identifier of the registry.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.content.Registry. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.content.Registry.", + "type": "string" + }, + "version": { + "description": "Version of the registry.", + "type": "string" + }, + "ui_access_url": { + "description": "URL to access the UI of the registry.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "registry", + "version", + "ui_access_url" + ] + }, + "VcenterContentRegistriesHealthInfo": { + "type": "object", + "properties": { + "status": { + "description": "Container registry status.", + "$ref": "#/definitions/VcenterContentRegistriesHealthStatus" + }, + "details": { + "description": "Details about the status.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "status" + ] + }, + "VcenterContentRegistriesHealthStatus": { + "type": "string", + "description": "The Health.Status enumerated type describes the status of the container registry.", + "enum": [ + "STARTING", + "RUNNING", + "WARNING", + "ERROR", + "DELETING" + ] + }, + "VcenterContentRegistriesRecurrence": { + "type": "string", + "description": "The Recurrence enumerated type defines the supported values for how often to run a specific operation for a container registry.", + "enum": [ + "NONE", + "DAILY", + "WEEKLY" + ] + }, + "VcenterCryptoManagerHostsKmsProvidersFilterSpec": { + "type": "object", + "properties": { + "providers": { + "description": "Provider identifiers.\nIf unset or empty, the result will not be filtered by provider identifier.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "health": { + "description": "Provider health status.\nIf unset or empty, the result will not be filtered by provider health status.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersHealth" + } + }, + "types": { + "description": "Provider types.\nIf unset or empty, the result will not be filtered by provider type.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersType" + } + } + } + }, + "VcenterCryptoManagerHostsKmsProvidersHealth": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "VcenterCryptoManagerHostsKmsProvidersInfo": { + "type": "object", + "properties": { + "health": { + "description": "Health status of the provider", + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersHealth" + }, + "details": { + "description": "Details regarding the health status of the provider.\nWhen the provider Providers.Health is not OK or NONE, this field will provide actionable descriptions of the issues.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "type": { + "description": "Provider type", + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersType" + }, + "native_info": { + "description": "Native provider information\nThis field is optional and it is only relevant when the value of Providers.Info.type is NATIVE.", + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersNativeProviderInfo" + } + }, + "required": [ + "health", + "details", + "type" + ] + }, + "VcenterCryptoManagerHostsKmsProvidersNativeProviderInfo": { + "type": "object", + "properties": { + "key_id": { + "description": "Key identifier for the provider", + "type": "string" + } + }, + "required": [ + "key_id" + ] + }, + "VcenterCryptoManagerHostsKmsProvidersSummary": { + "type": "object", + "properties": { + "provider": { + "description": "Identifier of the provider\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "string" + }, + "type": { + "description": "Provider type", + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersType" + }, + "health": { + "description": "Health status of the provider", + "$ref": "#/definitions/VcenterCryptoManagerHostsKmsProvidersHealth" + } + }, + "required": [ + "provider", + "type", + "health" + ] + }, + "VcenterCryptoManagerHostsKmsProvidersType": { + "type": "string", + "enum": [ + "NATIVE", + "TRUST_AUTHORITY" + ] + }, + "VcenterCryptoManagerKmsProvidersConstraints": { + "type": "object", + "properties": { + "tpm_required": { + "description": "Determines if a provider is restricted to hosts with TPM 2.0 capability.", + "type": "boolean" + } + }, + "required": [ + "tpm_required" + ] + }, + "VcenterCryptoManagerKmsProvidersConstraintsSpec": { + "type": "object", + "properties": { + "tpm_required": { + "description": "Determines if a provider is restricted to hosts with TPM 2.0 capability.\nIf unset, the constraint does not apply to the provider.", + "type": "boolean" + } + } + }, + "VcenterCryptoManagerKmsProvidersCreate": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersCreateSpec", + "description": "Provider information." + }, + "VcenterCryptoManagerKmsProvidersCreateSpec": { + "type": "object", + "properties": { + "provider": { + "description": "Provider identifier. \n A unique string provided by the client.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "string" + }, + "constraints": { + "description": "The constraints on the provider.\nIf unset there are no constraints on the provider.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersConstraintsSpec" + }, + "native_spec": { + "description": "Native provider create spec.\nThis field is required when creating a NATIVE provider.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersNativeProviderCreateSpec" + } + }, + "required": [ + "provider" + ] + }, + "VcenterCryptoManagerKmsProvidersExport": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersExportSpec", + "description": "ExportSpec needed to export a provider." + }, + "VcenterCryptoManagerKmsProvidersExportResult": { + "type": "object", + "properties": { + "type": { + "description": "Type of provider export result", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersExportType" + }, + "location": { + "description": "Location of the exported configuration\nThis field is optional and it is only relevant when the value of Providers.ExportResult.type is LOCATION.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersLocation" + } + }, + "required": [ + "type" + ] + }, + "VcenterCryptoManagerKmsProvidersExportSpec": { + "type": "object", + "properties": { + "provider": { + "description": "Provider identifier\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "string" + }, + "password": { + "description": "Password used to encrypt the exported configuration.\nIf unset or empty, the configuration will not be encrypted.", + "type": "string", + "format": "password" + } + }, + "required": [ + "provider" + ] + }, + "VcenterCryptoManagerKmsProvidersExportType": { + "type": "string", + "description": "The Providers.ExportType enumerated type identifies the type of result that is returned when a provider is exported.", + "enum": [ + "LOCATION" + ] + }, + "VcenterCryptoManagerKmsProvidersFilterSpec": { + "type": "object", + "properties": { + "providers": { + "description": "Provider identifiers.\nIf unset or empty, the result will not be filtered by provider identifier.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "health": { + "description": "Provider health status.\nIf unset or empty, the result will not be filtered by provider health status.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersHealth" + } + } + } + }, + "VcenterCryptoManagerKmsProvidersHealth": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "VcenterCryptoManagerKmsProvidersImportProvider": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersImportSpec", + "description": "ImportSpec needed to import a provider." + }, + "VcenterCryptoManagerKmsProvidersImportResult": { + "type": "object", + "properties": { + "provider": { + "description": "Provider identifier\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "string" + }, + "type": { + "description": "Provider type", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersType" + }, + "native_info": { + "description": "Native provider information\nThis field is optional and it is only relevant when the value of Providers.ImportResult.type is NATIVE.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersNativeProviderInfo" + }, + "export_time": { + "description": "Time when the provider was exported", + "type": "string", + "format": "date-time" + }, + "constraints": { + "description": "The constraints on the provider.\nIf unset, there are no constraints on the provider.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersConstraints" + } + }, + "required": [ + "provider", + "type", + "export_time" + ] + }, + "VcenterCryptoManagerKmsProvidersImportSpec": { + "type": "object", + "properties": { + "config": { + "description": "Configuration to import.\nCurrently this is required. Other import methods may be supported in the future.", + "type": "string", + "format": "binary" + }, + "password": { + "description": "Password to decrypt the configuration to import.\nIf unset or empty, configuration to import must be unencrypted.", + "type": "string", + "format": "password" + }, + "constraints": { + "description": "Constraints to impose on the imported provider\nIf unset, the imported provider constraints will match the exported provider constraints.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersConstraintsSpec" + }, + "dry_run": { + "description": "Whether to perform a trial import without actuallly creating a provider.\nIf unset, a new provider will be created.", + "type": "boolean" + } + } + }, + "VcenterCryptoManagerKmsProvidersInfo": { + "type": "object", + "properties": { + "health": { + "description": "Health status of the provider", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersHealth" + }, + "details": { + "description": "Details regarding the health status of the provider. \n When the provider Providers.Health is not NONE or OK, this field will provide actionable descriptions of the issues.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "constraints": { + "description": "The constraints on the provider.\nIf unset, there are no constraints on the provider.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersConstraints" + }, + "type": { + "description": "Provider type", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersType" + }, + "native_info": { + "description": "Native provider information\nThis field is optional and it is only relevant when the value of Providers.Info.type is NATIVE.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersNativeProviderInfo" + } + }, + "required": [ + "health", + "details", + "type" + ] + }, + "VcenterCryptoManagerKmsProvidersLocation": { + "type": "object", + "properties": { + "url": { + "description": "Provider configuration download URL", + "type": "string", + "format": "uri" + }, + "download_token": { + "description": "Information about the token required in the HTTP GET request to download the provider configuration.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersToken" + } + }, + "required": [ + "url", + "download_token" + ] + }, + "VcenterCryptoManagerKmsProvidersNativeProviderCreateSpec": { + "type": "object", + "properties": { + "key_id": { + "description": "Key identifier for the provider. \n The key identifier is required to be a 128-bit UUID represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.\n\nIf unset, the key identifier will be generated automatically.", + "type": "string" + }, + "key_derivation_key": { + "description": "Key used to derive data encryption keys. Base64 encoded.\nIf unset, the key derivation key will be generated automatically.", + "type": "string", + "format": "password" + } + } + }, + "VcenterCryptoManagerKmsProvidersNativeProviderInfo": { + "type": "object", + "properties": { + "key_id": { + "description": "Key identifier for the provider", + "type": "string" + } + }, + "required": [ + "key_id" + ] + }, + "VcenterCryptoManagerKmsProvidersNativeProviderUpdateSpec": { + "type": "object", + "properties": { + "key_id": { + "description": "Key identifier for the provider. \n The key identifier is required to be a 128-bit UUID represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.\n\nIf unset, the key identifier will remain unchanged.", + "type": "string" + } + } + }, + "VcenterCryptoManagerKmsProvidersSummary": { + "type": "object", + "properties": { + "provider": { + "description": "Provider identifier\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.crypto_manager.kms.provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.crypto_manager.kms.provider.", + "type": "string" + }, + "type": { + "description": "Provider type", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersType" + }, + "health": { + "description": "Health status of the provider", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersHealth" + } + }, + "required": [ + "provider", + "type", + "health" + ] + }, + "VcenterCryptoManagerKmsProvidersToken": { + "type": "object", + "properties": { + "token": { + "description": "A one-time, short-lived token required in \"Authorization\" field of the HTTP header of the request to the url. \n After the token expires, any attempt to download the configuration with said token will fail.", + "type": "string", + "format": "password" + }, + "expiry": { + "description": "Expiry time of the token", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "token", + "expiry" + ] + }, + "VcenterCryptoManagerKmsProvidersType": { + "type": "string", + "description": "The Providers.Type enumerated type contains the types of providers.", + "enum": [ + "NATIVE" + ] + }, + "VcenterCryptoManagerKmsProvidersUpdate": { + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersUpdateSpec", + "description": "Provider information." + }, + "VcenterCryptoManagerKmsProvidersUpdateSpec": { + "type": "object", + "properties": { + "native_spec": { + "description": "New Configuration for NATIVE provider. \n\n\nIf unset, provider configuration will remain unchanged.", + "$ref": "#/definitions/VcenterCryptoManagerKmsProvidersNativeProviderUpdateSpec" + } + } + }, + "VcenterDatacenterCreate": { + "$ref": "#/definitions/VcenterDatacenterCreateSpec", + "description": "Specification for the new datacenter to be created." + }, + "VcenterDatacenterCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the datacenter to be created.", + "type": "string" + }, + "folder": { + "description": "Datacenter folder in which the new datacenter should be created.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the datacenter; if a folder cannot be chosen, the datacenter creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "VcenterDatacenterFilterSpec": { + "type": "object", + "properties": { + "datacenters": { + "description": "Identifiers of datacenters that can match the filter.\nIf unset or empty, datacenters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that datacenters must have to match the filter (see Datacenter.Info.name).\nIf unset or empty, datacenters with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the datacenters for the datacenter to match the filter.\nIf unset or empty, datacenters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterDatacenterInfo": { + "type": "object", + "properties": { + "name": { + "description": "The name of the datacenter.", + "type": "string" + }, + "datastore_folder": { + "description": "The root datastore folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "host_folder": { + "description": "The root host and cluster folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "network_folder": { + "description": "The root network folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "vm_folder": { + "description": "The root virtual machine folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "name", + "datastore_folder", + "host_folder", + "network_folder", + "vm_folder" + ] + }, + "VcenterDatacenterSummary": { + "type": "object", + "properties": { + "datacenter": { + "description": "Identifier of the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datacenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datacenter.", + "type": "string" + }, + "name": { + "description": "Name of the datacenter.", + "type": "string" + } + }, + "required": [ + "datacenter", + "name" + ] + }, + "VcenterDatastoreFilterSpec": { + "type": "object", + "properties": { + "datastores": { + "description": "Identifiers of datastores that can match the filter.\nIf unset or empty, datastores with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datastore. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datastore.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that datastores must have to match the filter (see Datastore.Info.name).\nIf unset or empty, datastores with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "types": { + "description": "Types that datastores must have to match the filter (see Datastore.Summary.type).\nIf unset or empty, datastores with any type match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterDatastoreType" + } + }, + "folders": { + "description": "Folders that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterDatastoreInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the datastore.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the datastore.", + "$ref": "#/definitions/VcenterDatastoreType" + }, + "accessible": { + "description": "Whether or not this datastore is accessible.", + "type": "boolean" + }, + "free_space": { + "description": "Available space of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the available space of this datastore is not known.", + "type": "integer", + "format": "int64" + }, + "multiple_host_access": { + "description": "Whether or not more than one host in the datacenter has been configured with access to the datastore.", + "type": "boolean" + }, + "thin_provisioning_supported": { + "description": "Whether or not the datastore supports thin provisioning on a per file basis. When thin provisioning is used, backing storage is lazily allocated.", + "type": "boolean" + } + }, + "required": [ + "name", + "type", + "accessible", + "multiple_host_access", + "thin_provisioning_supported" + ] + }, + "VcenterDatastoreSummary": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "name": { + "description": "Name of the datastore.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the datatore.", + "$ref": "#/definitions/VcenterDatastoreType" + }, + "free_space": { + "description": "Available space of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the available space of this datastore is not known.", + "type": "integer", + "format": "int64" + }, + "capacity": { + "description": "Capacity of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the capacity of this datastore is not known.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "datastore", + "name", + "type" + ] + }, + "VcenterDatastoreType": { + "type": "string", + "enum": [ + "VMFS", + "NFS", + "NFS41", + "CIFS", + "VSAN", + "VFFS", + "VVOL" + ] + }, + "VcenterDeploymentApplianceSize": { + "type": "string", + "description": "The ApplianceSize enumerated type defines the vCenter Server Appliance sizes.", + "enum": [ + "TINY", + "SMALL", + "MEDIUM", + "LARGE", + "XLARGE" + ] + }, + "VcenterDeploymentApplianceState": { + "type": "string", + "description": "The ApplianceState enumerated type defines the various states the vCenter Appliance can be in.", + "enum": [ + "NOT_INITIALIZED", + "INITIALIZED", + "CONFIG_IN_PROGRESS", + "QUESTION_RAISED", + "FAILED", + "CONFIGURED" + ] + }, + "VcenterDeploymentApplianceType": { + "type": "string", + "description": "The ApplianceType enumerated type defines the vCenter appliance types.", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "VcenterDeploymentCheckInfo": { + "type": "object", + "properties": { + "status": { + "description": "Status of the check.", + "$ref": "#/definitions/VcenterDeploymentCheckStatus" + }, + "result": { + "description": "Result of the check.\nThis field will be unset if result is not available at the current step of the task.", + "$ref": "#/definitions/VcenterDeploymentNotifications" + }, + "source_info": { + "description": "Information collected from the source machine.\nThis field is used only for upgrade and migrate.", + "$ref": "#/definitions/VcenterDeploymentSourceInfo" + } + }, + "required": [ + "status" + ] + }, + "VcenterDeploymentCheckStatus": { + "type": "string", + "description": "The CheckStatus enumerated type defines the status of the checks.", + "enum": [ + "SUCCESS", + "FAILED" + ] + }, + "VcenterDeploymentDataMigrationEstimate": { + "type": "object", + "properties": { + "estimated_export_time": { + "description": "The time estimated to export data from the source vCenter Server.", + "type": "integer", + "format": "int64" + }, + "estimated_import_time": { + "description": "The time estimated to import data to the upgraded vCenter Server.", + "type": "integer", + "format": "int64" + }, + "required_free_disk_space_on_source": { + "description": "The extra free space required on source vCenter Server.", + "type": "number", + "format": "double" + } + }, + "required": [ + "estimated_export_time", + "estimated_import_time", + "required_free_disk_space_on_source" + ] + }, + "VcenterDeploymentDataMigrationInfo": { + "type": "object", + "properties": { + "core": { + "description": "Migrate only core data and configuration from vCenter Server. Events, tasks, and stats will not be migrated.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationEstimate" + }, + "core_events_tasks": { + "description": "Migrate core, events, and tasks from vCenter Server. Stats will not be migrated.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationEstimate" + }, + "all": { + "description": "Migrate all data from vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationEstimate" + }, + "core_events_tasks_with_deferred": { + "description": "Migrate core, events, and tasks from vCenter Server. Events and tasks will be migrated after the upgrade. Stats will not be migrated.\nThis field will be available only if the source database is using an external database.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationEstimate" + }, + "all_with_deferred": { + "description": "Migrate all data from vCenter Server. Events, tasks, and stats will be migrated after the upgrade.\nThis field will be available only if the source database is using an external database.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationEstimate" + } + }, + "required": [ + "core", + "core_events_tasks", + "all" + ] + }, + "VcenterDeploymentHistoryMigrationOption": { + "type": "string", + "description": "The HistoryMigrationOption enumerated type defines the vCenter history migration option choices.", + "enum": [ + "EVENTS_TASKS", + "ALL" + ] + }, + "VcenterDeploymentHistoryMigrationSpec": { + "type": "object", + "properties": { + "data_set": { + "description": "Defines what part of vCenter historical data will be migrated along with core data.", + "$ref": "#/definitions/VcenterDeploymentHistoryMigrationOption" + }, + "defer_import": { + "description": "Defines how vCenter history will be migrated. If set to true, vCenter history will be migrated separately after successful upgrade(supported scenarios are upgrade from 6.0 or 6.5 to 6.7) or migration, otherwise it will be migrated along with core data during the upgrade or migration process. vCSA upgrade with deferred import is no longer supported for target version 7.0 and later.\nIf unset, vCenter historical data won't be deferred and will be migrated along with core data.", + "type": "boolean" + } + }, + "required": [ + "data_set" + ] + }, + "VcenterDeploymentImportHistoryCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter history import task", + "type": "string" + }, + "description": { + "description": "Description of the vCenter history import task.", + "type": "string" + } + }, + "required": [ + "name", + "description" + ] + }, + "VcenterDeploymentImportHistoryInfo": { + "type": "object", + "properties": { + "progress": { + "description": "The progress info of this task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, FAILED, BLOCKED, or SUCCEEDED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "result": { + "description": "Result of the operation. If an operation reports partial results before it completes, this field could be set before the cis.task.CommonInfo#status has the value SUCCEEDED. The value could change as the operation progresses.\nThis field will be unset if result is not available at the current step of the operation.", + "$ref": "#/definitions/VcenterDeploymentNotifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "VcenterDeploymentImportHistoryStart": { + "$ref": "#/definitions/VcenterDeploymentImportHistoryCreateSpec", + "description": "An optional ImportHistory.CreateSpec info that can be passed for creating a new historical data import task and starts it.\nIf unset, default value will be: \n - name : vcenter.deployment.history.import\n - description : vCenter Server history import" + }, + "VcenterDeploymentInfo": { + "type": "object", + "properties": { + "state": { + "description": "State of the vCenter Server Appliance.", + "$ref": "#/definitions/VcenterDeploymentApplianceState" + }, + "progress": { + "description": "The progress info of the current appliance status.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "subtask_order": { + "description": "The ordered list of subtasks for this deployment operation.\nOnly set when the appliance state is RUNNING_IN_PROGRESS, FAILED, CANCELLED and SUCCEEDED.", + "type": "array", + "items": { + "type": "string" + } + }, + "subtasks": { + "description": "The map of the deployment subtasks and their status infomation.\nOnly set when the appliance state is RUNNING_IN_PROGRESS, FAILED, CANCELLED and SUCCEEDED.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterDeploymentTask" + } + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "state", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "VcenterDeploymentInstallCheck": { + "$ref": "#/definitions/VcenterDeploymentInstallInstallSpec", + "description": "InstallSpec parameters to run sanity check with." + }, + "VcenterDeploymentInstallInitialConfigRemotePscThumbprintRemoteSpec": { + "type": "object", + "properties": { + "address": { + "description": "The IP address or DNS resolvable name of the remote PSC.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the remote PSC.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address" + ] + }, + "VcenterDeploymentInstallInstallSpec": { + "type": "object", + "properties": { + "vcsa_embedded": { + "description": "Spec used to configure an embedded vCenter Server. This field describes how the embedded vCenter Server appliance should be configured.", + "$ref": "#/definitions/VcenterDeploymentInstallVcsaEmbeddedSpec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "vcsa_embedded" + ] + }, + "VcenterDeploymentInstallPscReplicatedCheck": { + "$ref": "#/definitions/VcenterDeploymentReplicatedPscSpec", + "description": "Information to configure a replicated PSC." + }, + "VcenterDeploymentInstallPscStandaloneCheck": { + "$ref": "#/definitions/VcenterDeploymentStandalonePscSpec", + "description": "Information to configure a non-replicated PSC." + }, + "VcenterDeploymentInstallRemotePscCheck": { + "$ref": "#/definitions/VcenterDeploymentRemotePscSpec", + "description": "Information to connect to the remote PSC." + }, + "VcenterDeploymentInstallStart": { + "$ref": "#/definitions/VcenterDeploymentInstallInstallSpec", + "description": "InstallSpec parameters to configure the appliance install." + }, + "VcenterDeploymentInstallVcsaEmbeddedSpec": { + "type": "object", + "properties": { + "standalone": { + "description": "Spec used to configure a standalone embedded vCenter Server. This field describes how the standalone vCenter Server appliance should be configured.\nIf unset, will default to None.", + "$ref": "#/definitions/VcenterDeploymentStandaloneSpec" + }, + "replicated": { + "description": "Spec used to configure a replicated embedded vCenter Server. This field describes how the replicated vCenter Server appliance should be configured.\nIf unset, will default to None.", + "$ref": "#/definitions/VcenterDeploymentReplicatedSpec" + }, + "ceip_enabled": { + "description": "Whether CEIP should be enabled or disabled.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "VcenterDeploymentLocationSpec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the container.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the container.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if LocationSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled. If LocationSpec.ssl-verify is true and and LocationSpec.ssl-thumbprint is unset, the CA certificate will be used for verification. If LocationSpec.ssl-verify is true and LocationSpec.ssl-thumbprint is set then the thumbprint will be used for verification. No verification will be performed if LocationSpec.ssl-verify value is set to false.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + }, + "username": { + "description": "The administrator account on the host.", + "type": "string" + }, + "password": { + "description": "The administrator account password.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname", + "username", + "password" + ] + }, + "VcenterDeploymentMigrateActiveDirectoryCheck": { + "$ref": "#/definitions/VcenterDeploymentMigrateActiveDirectoryCheckSpec", + "description": "Information to connect to Active Directory." + }, + "VcenterDeploymentMigrateActiveDirectoryCheckSpec": { + "type": "object", + "properties": { + "dns_servers": { + "description": "IP addresses of the DNS servers of the Active Directory server.", + "type": "array", + "items": { + "type": "string" + } + }, + "domain": { + "description": "The domain name of the Active Directory server to which the migrated vCenter Server appliance should be joined.", + "type": "string" + }, + "username": { + "description": "Active Directory user that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + }, + "password": { + "description": "Active Directory user password that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + } + }, + "required": [ + "dns_servers", + "domain", + "username", + "password" + ] + }, + "VcenterDeploymentMigrateActiveDirectorySpec": { + "type": "object", + "properties": { + "domain": { + "description": "The domain name of the Active Directory server to which the migrated vCenter Server appliance should be joined.", + "type": "string" + }, + "username": { + "description": "Active Directory user that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + }, + "password": { + "description": "Active Directory user password that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + } + }, + "required": [ + "domain", + "username", + "password" + ] + }, + "VcenterDeploymentMigrateCheck": { + "$ref": "#/definitions/VcenterDeploymentMigrateMigrateSpec", + "description": "MigrateSpec parameters to run sanity check on." + }, + "VcenterDeploymentMigrateMigrateSpec": { + "type": "object", + "properties": { + "source_vc_windows": { + "description": "Information specific to the Windows vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentMigrateSourceVcWindows" + }, + "existing_migration_assistant": { + "description": "Information specific to the Migration Assistant that is running on the Windows vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentMigrateMigrationAssistantSpec" + }, + "history": { + "description": "Determines how vCenter history will be migrated during the migration process. vCenter history consists of: \n - Statistics\n - Events\n - Tasks\n By default only core data will be migrated. Use this spec to define which part of vCenter history data will be migrated and when.\nIf unset, only core database content will be migrated.", + "$ref": "#/definitions/VcenterDeploymentHistoryMigrationSpec" + }, + "vcsa_embedded": { + "description": "Information specific to an embedded vCenter Server.\nOnly required if the vCenter Server that is going to be migrated is an embedded vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentMigrateVcsaEmbeddedSpec" + }, + "psc": { + "description": "Information specific to a Platform Services Controller.\nOnly required if the vCenter Server that is going to be migrated is a Platform Services Controller.", + "$ref": "#/definitions/VcenterDeploymentMigratePscSpec" + }, + "active_directory": { + "description": "Information specific to the Active Directory server to which the source windows vCenter Server is joined.\nIf unset, existing appliance will not be joined to an Active Directory.", + "$ref": "#/definitions/VcenterDeploymentMigrateActiveDirectorySpec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "source_vc_windows", + "existing_migration_assistant" + ] + }, + "VcenterDeploymentMigrateMigrationAssistantSpec": { + "type": "object", + "properties": { + "https_port": { + "description": "The HTTPS port being used by Migration Assistant.\nIf unset, port 9123 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the Migration Assistant SSL certificate that will be used for verification.", + "type": "string" + } + }, + "required": [ + "ssl_thumbprint" + ] + }, + "VcenterDeploymentMigratePscSpec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this Platform Services Controller migration.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "VcenterDeploymentMigrateSourceVcWindows": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source Windows machine.", + "type": "string" + }, + "username": { + "description": "The SSO account with administrative privilege to perform the migration operation.", + "type": "string" + }, + "password": { + "description": "The SSO administrator account password.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname", + "username", + "password" + ] + }, + "VcenterDeploymentMigrateStart": { + "$ref": "#/definitions/VcenterDeploymentMigrateMigrateSpec", + "description": "MigrateSpec parameters to configure the appliance migration." + }, + "VcenterDeploymentMigrateVcsaEmbeddedSpec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this embedded vCenter Server migration.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "VcenterDeploymentNotification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.\nOnly set if the time information is available.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set for warnings and errors.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "id", + "message" + ] + }, + "VcenterDeploymentNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDeploymentNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDeploymentNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDeploymentNotification" + } + } + } + }, + "VcenterDeploymentQuestionAnswer": { + "$ref": "#/definitions/VcenterDeploymentQuestionAnswerSpec", + "description": "AnswerSpec with the answer to the raised question." + }, + "VcenterDeploymentQuestionAnswerSpec": { + "type": "object", + "properties": { + "question_id": { + "description": "Id of the question being answered.", + "type": "string" + }, + "answer_val": { + "description": "The answer value.", + "type": "string" + } + }, + "required": [ + "question_id", + "answer_val" + ] + }, + "VcenterDeploymentQuestionInfo": { + "type": "object", + "properties": { + "questions": { + "description": "One or more questions raised during the deployment.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterDeploymentQuestionQuestion" + } + } + }, + "required": [ + "questions" + ] + }, + "VcenterDeploymentQuestionQuestion": { + "type": "object", + "properties": { + "id": { + "description": "Id of the question raised.", + "type": "string" + }, + "question": { + "description": "Message describing the question.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "type": { + "description": "Type of the question raised.", + "$ref": "#/definitions/VcenterDeploymentQuestionQuestionType" + }, + "default_answer": { + "description": "Default answer value.", + "type": "string" + }, + "possible_answers": { + "description": "Possible answers values.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "question", + "type", + "default_answer", + "possible_answers" + ] + }, + "VcenterDeploymentQuestionQuestionType": { + "type": "string", + "description": "The Question.QuestionType enumerated type defines the type of the question raised.", + "enum": [ + "YES_NO", + "OK_CANCEL", + "ABORT_RETRY_IGNORE" + ] + }, + "VcenterDeploymentRemotePscSpec": { + "type": "object", + "properties": { + "psc_hostname": { + "description": "The IP address or DNS resolvable name of the remote PSC to which this configuring vCenter Server will be registered to.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification when ssl_verify field is set to true.\nThis field is only relevant if RemotePscSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled. If RemotePscSpec.ssl-verify is true and and RemotePscSpec.ssl-thumbprint is unset, the CA certificate will be used for verification. If RemotePscSpec.ssl-verify is true and RemotePscSpec.ssl-thumbprint is set then the thumbprint will be used for verification. No verification will be performed if RemotePscSpec.ssl-verify value is set to false.\nIf unset, RemotePscSpec.ssl-verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "psc_hostname", + "sso_admin_password" + ] + }, + "VcenterDeploymentReplicatedPscSpec": { + "type": "object", + "properties": { + "sso_site_name": { + "description": "The SSO sitename that will be used in PSC replication.\nIf unset, default-first-site will be used.", + "type": "string" + }, + "partner_hostname": { + "description": "The IP address or DNS resolvable name of the partner PSC appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if ReplicatedSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "partner_hostname", + "sso_admin_password" + ] + }, + "VcenterDeploymentReplicatedSpec": { + "type": "object", + "properties": { + "partner_hostname": { + "description": "The IP address or DNS resolvable name of the partner PSC appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if ReplicatedSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "partner_hostname", + "sso_admin_password" + ] + }, + "VcenterDeploymentSourceInfo": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source vCenter Server.", + "type": "string" + }, + "version": { + "description": "Source vCenter Server version.", + "type": "string" + }, + "deployment_type": { + "description": "Deployment type of the source vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentApplianceType" + }, + "deployment_size": { + "description": "Deployment size of the source vCenter Server.", + "$ref": "#/definitions/VcenterDeploymentApplianceSize" + }, + "sso_domain_name": { + "description": "The SSO domain name of the source vCenter Server.", + "type": "string" + }, + "active_directory_domain": { + "description": "The domain name of the Active Directory server to which the source vCenter Server is joined.", + "type": "string" + }, + "dns_servers": { + "description": "IP addresses of the DNS servers of the Active Directory server.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_migration_info": { + "description": "Contains all the available migrate options, estimated export and import time and the space required to migrate the data.\nThis field will be available if estimate data is available for the appliance.", + "$ref": "#/definitions/VcenterDeploymentDataMigrationInfo" + } + }, + "required": [ + "hostname", + "version", + "deployment_type", + "deployment_size", + "sso_domain_name", + "active_directory_domain", + "dns_servers" + ] + }, + "VcenterDeploymentStandalonePscSpec": { + "type": "object", + "properties": { + "sso_site_name": { + "description": "The SSO site name used for this PSC.\nIf unset, default-first-site will be used.", + "type": "string" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "sso_domain_name": { + "description": "The SSO domain name to be used to configure this appliance.\nIf unset, vsphere.local will be used.", + "type": "string" + } + }, + "required": [ + "sso_admin_password" + ] + }, + "VcenterDeploymentStandaloneSpec": { + "type": "object", + "properties": { + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "sso_domain_name": { + "description": "The SSO domain name to be used to configure this appliance.\nIf unset, vsphere.local will be used.", + "type": "string" + } + }, + "required": [ + "sso_admin_password" + ] + }, + "VcenterDeploymentTask": { + "type": "object", + "properties": { + "progress": { + "description": "The progress info of this deployment task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/CisTaskProgress" + }, + "result": { + "description": "Result of the task.\nThis field will be unset if result is not available at the current step of the task.", + "$ref": "#/definitions/VcenterDeploymentNotifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/VapiStdDynamicID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/CisTaskStatus" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "VcenterDeploymentUpgradeCheck": { + "$ref": "#/definitions/VcenterDeploymentUpgradeUpgradeSpec", + "description": "UpgradeSpec parameters to run sanity check on." + }, + "VcenterDeploymentUpgradePscSpec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this Platform Services Controller upgrade.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "VcenterDeploymentUpgradeSourceApplianceSpec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the source appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if Upgrade.SourceApplianceSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled for the source appliance validations. By default it is enabled and will use SSL certificate for verification. If thumbprint is provided, will use thumbprint for the verification.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + }, + "sso_admin_username": { + "description": "The SSO administrator account on the source appliance.", + "type": "string" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string", + "format": "password" + }, + "root_password": { + "description": "The password of the root user on the source appliance.", + "type": "string", + "format": "password" + }, + "ssh_verify": { + "description": "Appliance SSH verification should be enabled or disabled. By default it is disabled and will not use any verification. If thumbprint is provided, thumbprint verification will be performed.\nIf unset, ssh_verify true will be used.", + "type": "boolean" + }, + "ssh_thumbprint": { + "description": "MD5 thumbprint of the server SSH key will be used for verification.\nThis field is only relevant if Upgrade.SourceApplianceSpec.ssh-verify is unset or has the value true.", + "type": "string" + } + }, + "required": [ + "hostname", + "sso_admin_username", + "sso_admin_password", + "root_password" + ] + }, + "VcenterDeploymentUpgradeStart": { + "$ref": "#/definitions/VcenterDeploymentUpgradeUpgradeSpec", + "description": "UpgradeSpec parameters to configure the appliance upgrade." + }, + "VcenterDeploymentUpgradeUpgradeSpec": { + "type": "object", + "properties": { + "source_appliance": { + "description": "Source appliance spec.", + "$ref": "#/definitions/VcenterDeploymentUpgradeSourceApplianceSpec" + }, + "source_location": { + "description": "Source location spec.", + "$ref": "#/definitions/VcenterDeploymentLocationSpec" + }, + "history": { + "description": "Determines how vCenter history will be migrated during the upgrade process. vCenter history consists of: \n - Statistics\n - Events\n - Tasks\n By default only core data will be migrated. Use this spec to define which part of vCenter history data will be migrated and when.\nIf unset, only core database content will be migrated.", + "$ref": "#/definitions/VcenterDeploymentHistoryMigrationSpec" + }, + "vcsa_embedded": { + "description": "Information that are specific to this embedded vCenter Server.\nIf unset, ceip_enabled for embedded vcenter server upgrade will default to enabled.", + "$ref": "#/definitions/VcenterDeploymentUpgradeVcsaEmbeddedSpec" + }, + "psc": { + "description": "Information that are specific to this Platform Services Controller.\nIf unset, ceip_enabled for psc upgrade will default to enabled.", + "$ref": "#/definitions/VcenterDeploymentUpgradePscSpec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "source_appliance", + "source_location" + ] + }, + "VcenterDeploymentUpgradeVcsaEmbeddedSpec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this embedded vCenter Server upgrade.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "VcenterEnvironmentBrowserConfigOptionDescriptorsListParams": { + "type": "object", + "properties": { + "clusters": { + "description": "A set of Cluster IDs that specify for which Clusters the configuration option descriptors are requested.\nif unset or empty an error will be returned. Ability to pass unset value is left for future expansion.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterEnvironmentBrowserConfigOptionDescriptorsListResult": { + "type": "object", + "properties": { + "config_options_descriptors": { + "description": "List of configuration options matching the specified hardware.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterEnvironmentBrowserConfigOptionDescriptorsSummary" + } + } + }, + "required": [ + "config_options_descriptors" + ] + }, + "VcenterEnvironmentBrowserConfigOptionDescriptorsSummary": { + "type": "object", + "properties": { + "config_option": { + "description": "A unique key used to identify a ConfigOption object.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.config_option. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.config_option.", + "type": "string" + }, + "description": { + "description": "A description of the configOption object.\nwhen unset", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "hosts": { + "description": "List of hosts to which this descriptor applies. List of hosts is not set when descriptor is returned for a Datacenter.\nwhen unset\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_supported": { + "description": "Indicates whether the associated set of configuration options can be used for virtual machine creation on a given host or cluster.", + "type": "boolean" + }, + "default_config_option": { + "description": "Indicates whether the associated set of virtual machine configuration options is the default one for a given host or cluster. Latest version is marked as default unless other version is specified via the vim.ComputeResource.ConfigInfo or vim.Datacenter.ConfigInfo defaultHardwareVersionKey. \n If this setting is TRUE, virtual machine creates will use the associated set of configuration options, unless a config version is explicitly specified in the vim.vm.ConfigSpec.", + "type": "boolean" + }, + "run_supported": { + "description": "Indicates whether the associated set of configuration options can be used to power on a virtual machine on a given host or cluster.", + "type": "boolean" + }, + "upgrade_supported": { + "description": "Indicates whether the associated set of configuration options can be used as a virtual hardware upgrade target.", + "type": "boolean" + } + }, + "required": [ + "config_option", + "create_supported", + "default_config_option", + "run_supported", + "upgrade_supported" + ] + }, + "VcenterEnvironmentBrowserConfigOptionsGetParams": { + "type": "object", + "properties": { + "clusters": { + "description": "The clusters whose config option are requested.\nif unset or empty an InvalidArgument error is returned. unset is allowed for future extensibility e.g. generating options for hosts, VM etc.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "config_option": { + "description": "Query for a specific config option with the key obtained from ConfigOptionDescriptors.list.\nif unset then the default config option will be returned.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.config_option. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.config_option.", + "type": "string" + }, + "guest_ids": { + "description": "Filter the set of Guest OSs for which descriptors will be returned.\nif unset all guest OS descriptors are returned.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterEnvironmentBrowserConfigOptionsInfo": { + "type": "object", + "properties": { + "config_option": { + "description": "A vim.vm.ConfigOption data structure.\nmay be unset if none of the clusters specified in the #get operation contained a vim.vm.ConfigOption that matched the requested key and/or guest IDs.", + "type": "object" + } + } + }, + "VcenterEnvironmentBrowserConfigTargetsConfigTargetSpec": { + "type": "string", + "enum": [ + "DATASTORES", + "NETWORKS", + "DEVICES", + "DISKS" + ] + }, + "VcenterEnvironmentBrowserConfigTargetsGetParams": { + "type": "object", + "properties": { + "clusters": { + "description": "A set of Cluster IDs that specify for which Clusters the configuration target is requested.\nif unset or empty an error will be returned. Ability to pass unset value is left for future expansion.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "filter": { + "description": "Specify a filter to narrow the results.\nif unset or empty, all information for a given config target is returned.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterEnvironmentBrowserConfigTargetsConfigTargetSpec" + } + } + } + }, + "VcenterEnvironmentBrowserConfigTargetsInfo": { + "type": "object", + "properties": { + "config_target": { + "description": "A vim.vm.ConfigTarget matching the filter.", + "type": "object" + } + }, + "required": [ + "config_target" + ] + }, + "VcenterFolderFilterSpec": { + "type": "object", + "properties": { + "folders": { + "description": "Identifiers of folders that can match the filter.\nIf unset or empty, folders with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that folders must have to match the filter (see Folder.Summary.name).\nIf unset or empty, folders with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "type": { + "description": "Type that folders must have to match the filter (see Folder.Summary.type).\nIf unset, folders with any type match the filter.", + "$ref": "#/definitions/VcenterFolderType" + }, + "parent_folders": { + "description": "Folders that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterFolderSummary": { + "type": "object", + "properties": { + "folder": { + "description": "Identifier of the folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "name": { + "description": "Name of the vCenter Server folder.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the vCenter Server folder.", + "$ref": "#/definitions/VcenterFolderType" + } + }, + "required": [ + "folder", + "name", + "type" + ] + }, + "VcenterFolderType": { + "type": "string", + "description": "The Folder.Type enumerated type defines the type of a vCenter Server folder. The type of a folder determines what what kinds of children can be contained in the folder.", + "enum": [ + "DATACENTER", + "DATASTORE", + "HOST", + "NETWORK", + "VIRTUAL_MACHINE" + ] + }, + "VcenterGuestAdapterMapping": { + "type": "object", + "properties": { + "mac_address": { + "description": "The MAC address of a network adapter being customized. \n In vSphere 7.0 series, the MAC addresses must be specified in the ascending order of pciSlotNumber, otherwise a MAC address mismatch error will be reported. For further details, see the https://kb.vmware.com/s/article/87648 \n\n\n\nIf unset, the customization process maps the the settings from the list of AdapterMappings.IPSettings in the CustomizationSpec.interfaces to the virtual machine's network adapters, in PCI slot order. The first virtual network adapter on the PCI bus is assigned interfaces[0].IPSettings, the second adapter is assigned interfaces[1].IPSettings, and so on.", + "type": "string" + }, + "adapter": { + "description": "The IP settings for the associated virtual network adapter.", + "$ref": "#/definitions/VcenterGuestIPSettings" + } + }, + "required": [ + "adapter" + ] + }, + "VcenterGuestCloudConfiguration": { + "type": "object", + "properties": { + "type": { + "description": "The type of the cloud configuration.", + "$ref": "#/definitions/VcenterGuestCloudConfigurationType" + }, + "cloudinit": { + "description": "cloud-init configuration\nThis field is optional and it is only relevant when the value of CloudConfiguration.type is CLOUDINIT.", + "$ref": "#/definitions/VcenterGuestCloudinitConfiguration" + } + }, + "required": [ + "type" + ] + }, + "VcenterGuestCloudConfigurationType": { + "type": "string", + "description": "The CloudConfiguration.Type enumerated type specifies different types of the cloud configuration.", + "enum": [ + "CLOUDINIT" + ] + }, + "VcenterGuestCloudinitConfiguration": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata includes the network, instance id and hostname that cloud-init processes to configure the virtual machine. It is in json or yaml format. The max size of the metadata is 524288 bytes. See https://cloudinit.readthedocs.io/en/latest/topics/datasources/ovf.html about supported meta data formats.", + "type": "string" + }, + "userdata": { + "description": "Userdata is the user customized content that cloud-init processes to configure the virtual machine. See https://cloudinit.readthedocs.io/en/latest/topics/format.html about user data formats. See https://cloudinit.readthedocs.io/en/latest/topics/modules.html# about user data modules. The max size of the userdata is 524288 bytes.\nIf unset, no cloud-init user data will be used as part of the cloud-init configuration.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + }, + "VcenterGuestConfigurationSpec": { + "type": "object", + "properties": { + "windows_config": { + "description": "Guest customization specification for a Windows guest operating system\nIf unset, ConfigurationSpec.linux-config or ConfigurationSpec.cloud-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/VcenterGuestWindowsConfiguration" + }, + "linux_config": { + "description": "Guest customization specification for a linux guest operating system\nIf unset, ConfigurationSpec.windows-config or ConfigurationSpec.cloud-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/VcenterGuestLinuxConfiguration" + }, + "cloud_config": { + "description": "Guest customization specification with cloud configuration.\nIf unset, ConfigurationSpec.windows-config or ConfigurationSpec.linux-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/VcenterGuestCloudConfiguration" + } + } + }, + "VcenterGuestCustomizationSpec": { + "type": "object", + "properties": { + "configuration_spec": { + "description": "Settings to be applied to the guest during the customization.", + "$ref": "#/definitions/VcenterGuestConfigurationSpec" + }, + "global_DNS_settings": { + "description": "Global DNS settings constitute the DNS settings that are not specific to a particular virtual network adapter.", + "$ref": "#/definitions/VcenterGuestGlobalDNSSettings" + }, + "interfaces": { + "description": "IP settings that are specific to a particular virtual network adapter. The AdapterMapping structure maps a network adapter's MAC address to its IPSettings. May be empty if there are no network adapters, else should match number of network adapters configured for the VM.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterGuestAdapterMapping" + } + } + }, + "required": [ + "configuration_spec", + "global_DNS_settings", + "interfaces" + ] + }, + "VcenterGuestCustomizationSpecsCreate": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsCreateSpec", + "description": "The information i.e. name, description and the settings i.e hostname, ip address etc for the new customization specification that needs to be created." + }, + "VcenterGuestCustomizationSpecsCreateSpec": { + "type": "object", + "properties": { + "spec": { + "description": "The specification object.", + "$ref": "#/definitions/VcenterGuestCustomizationSpec" + }, + "description": { + "description": "Description of the specification.", + "type": "string" + }, + "name": { + "description": "Name of the specification.", + "type": "string" + } + }, + "required": [ + "spec", + "description", + "name" + ] + }, + "VcenterGuestCustomizationSpecsExport": { + "type": "object", + "properties": { + "format": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsFormat", + "description": "The format in which the customization specification has to be returned." + } + }, + "required": [ + "format" + ] + }, + "VcenterGuestCustomizationSpecsFilterSpec": { + "type": "object", + "properties": { + "names": { + "description": "Names that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.name).\nIf unset or empty, guest customization specifications with any name match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.guest.CustomizationSpec.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "OS_type": { + "description": "Guest operating system type that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.os-type).\nIf unset, guest customization specifications with any guest operating system type match the filter.", + "$ref": "#/definitions/VcenterGuestCustomizationSpecsOsType" + } + } + }, + "VcenterGuestCustomizationSpecsFormat": { + "type": "string", + "description": "The CustomizationSpecs.Format enumerated type specifies the formats the customization specification can be exported to.", + "enum": [ + "JSON", + "XML" + ] + }, + "VcenterGuestCustomizationSpecsImportSpecification": { + "type": "object", + "properties": { + "customization_spec": { + "type": "string", + "description": "content to be converted to the spec." + } + }, + "required": [ + "customization_spec" + ] + }, + "VcenterGuestCustomizationSpecsInfo": { + "type": "object", + "properties": { + "last_modified": { + "description": "Time when the specification was last modified.", + "type": "string", + "format": "date-time" + }, + "spec": { + "description": "The Spec object including specification and metadata information.", + "$ref": "#/definitions/VcenterGuestCustomizationSpecsSpec" + } + }, + "required": [ + "last_modified", + "spec" + ] + }, + "VcenterGuestCustomizationSpecsOsType": { + "type": "string", + "description": "The CustomizationSpecs.OsType enumerated type defines the types of guest operating systems for which guest customization is supported.", + "enum": [ + "WINDOWS", + "LINUX" + ] + }, + "VcenterGuestCustomizationSpecsSet": { + "$ref": "#/definitions/VcenterGuestCustomizationSpecsSpec", + "description": "The new specification that will overwrite the existing specification." + }, + "VcenterGuestCustomizationSpecsSpec": { + "type": "object", + "properties": { + "fingerprint": { + "description": "The fingerprint is a unique identifier for a given version of the configuration. Each change to the configuration will update this value. A client cannot change this value. If specified when updating a specification, the changes will only be applied if the current fingerprint matches the specified fingerprint. This field can be used to guard against updates that has happened between the specification content was read and until it is applied.", + "type": "string" + }, + "spec": { + "description": "The specification object.", + "$ref": "#/definitions/VcenterGuestCustomizationSpec" + }, + "description": { + "description": "Description of the specification.", + "type": "string" + }, + "name": { + "description": "Name of the specification.", + "type": "string" + } + }, + "required": [ + "fingerprint", + "spec", + "description", + "name" + ] + }, + "VcenterGuestCustomizationSpecsSummary": { + "type": "object", + "properties": { + "name": { + "description": "Name of the guest customization specification.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.guest.CustomizationSpec.", + "type": "string" + }, + "description": { + "description": "Description of the guest customization specification.", + "type": "string" + }, + "OS_type": { + "description": "Guest operating system type for which that this guest customization specification applies.", + "$ref": "#/definitions/VcenterGuestCustomizationSpecsOsType" + }, + "last_modified": { + "description": "Date and tme when this guest customization specification was last modified.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "description", + "OS_type", + "last_modified" + ] + }, + "VcenterGuestDomain": { + "type": "object", + "properties": { + "type": { + "description": "The type of network to join after the customization.", + "$ref": "#/definitions/VcenterGuestDomainType" + }, + "workgroup": { + "description": "The workgroup that the virtual machine should join.\nThis field is optional and it is only relevant when the value of Domain.type is WORKGROUP.", + "type": "string" + }, + "domain": { + "description": "The domain to which the virtual machine should be joined.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + }, + "domain_username": { + "description": "The domain user that has permission to join the domain after virtual machine is joined.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + }, + "domain_password": { + "description": "The domain user password that has permission to join the Domain.domain-username after customization.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string", + "format": "password" + }, + "domain_OU": { + "description": "The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs. Refer to: https://docs.microsoft.com/en-us/windows-hardware/customize desktop/unattend/microsoft-windows-unattendedjoin- identification-machineobjectou\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterGuestDomainType": { + "type": "string", + "description": "The Domain.Type enumerated type defines the types of network the virtual machine should join to after the customization is completed.", + "enum": [ + "WORKGROUP", + "DOMAIN" + ] + }, + "VcenterGuestGlobalDNSSettings": { + "type": "object", + "properties": { + "dns_suffix_list": { + "description": "List of name resolution suffixes for the virtual network adapter. This list applies to both Windows and Linux guest customization. For Linux, this setting is global, whereas in Windows, this setting is listed on a per-adapter basis.\nIf unset, no DNS suffixes are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "dns_servers": { + "description": "List of DNS servers, for a virtual network adapter with a static IP address. If this list is empty, then the guest operating system is expected to use a DHCP server to get its DNS server settings. These settings configure the virtual machine to use the specified DNS servers. These DNS server settings are listed in the order of preference.\nIf unset, no DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterGuestGuiUnattended": { + "type": "object", + "properties": { + "auto_logon": { + "description": "Flag to determine whether or not the machine automatically logs on as Administrator. See the GuiUnattended.password property. If GuiUnattended.auto-logon flag is set, then GuiUnattended.password must not be unset or the guest customization will fail.", + "type": "boolean" + }, + "auto_logon_count": { + "description": "If the GuiUnattended.auto-logon flag is set, then this property specifies the number of times the machine should automatically log on as Administrator. Generally it should be 1, but if the setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands.", + "type": "integer", + "format": "int64" + }, + "password": { + "description": "The new administrator password for the machine. To specify that the password should be set to blank (that is, no password), leave it unset.\nIf unset, blank password will be used.", + "type": "string", + "format": "password" + }, + "time_zone": { + "description": "The time zone index for the virtual machine. Numbers correspond to time zones at https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "auto_logon", + "auto_logon_count", + "time_zone" + ] + }, + "VcenterGuestHostnameGenerator": { + "type": "object", + "properties": { + "type": { + "description": "The type of the Name Generator", + "$ref": "#/definitions/VcenterGuestHostnameGeneratorType" + }, + "fixed_name": { + "description": "The virtual machine name specified by the client.\nThis field is optional and it is only relevant when the value of HostnameGenerator.type is FIXED.", + "type": "string" + }, + "prefix": { + "description": "Base prefix, to which a unique number is appended.\nThis field is optional and it is only relevant when the value of HostnameGenerator.type is PREFIX.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterGuestHostnameGeneratorType": { + "type": "string", + "description": "The HostnameGenerator.Type enumerated type specifies different types of Name Generators.", + "enum": [ + "FIXED", + "PREFIX", + "VIRTUAL_MACHINE", + "USER_INPUT_REQUIRED" + ] + }, + "VcenterGuestIPSettings": { + "type": "object", + "properties": { + "ipv4": { + "description": "Specification to configure IPv4 address, subnet mask and gateway info for this virtual network adapter.\nIf unset, no IPv4 addresses are set.", + "$ref": "#/definitions/VcenterGuestIpv4" + }, + "ipv6": { + "description": "Specification to configure IPv6 address, subnet mask and gateway info for this virtual network adapter.\nIf unset, no IPv6 addresses are set.", + "$ref": "#/definitions/VcenterGuestIpv6" + }, + "windows": { + "description": "Windows settings to be configured for this specific virtual Network adapter. This is valid only for Windows guest operating systems.\nIf unset, no specific Windows settings are set.", + "$ref": "#/definitions/VcenterGuestWindowsNetworkAdapterSettings" + } + } + }, + "VcenterGuestIpv4": { + "type": "object", + "properties": { + "type": { + "description": "The type of the IPv4 configuration.", + "$ref": "#/definitions/VcenterGuestIpv4Type" + }, + "ip_address": { + "description": "The static IPv4 address\nThis field is optional and it is only relevant when the value of Ipv4.type is STATIC.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.type is STATIC.", + "type": "integer", + "format": "int64" + }, + "gateways": { + "description": "Gateways for the IPv4 address.\nIf unset, no gateways are set.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "VcenterGuestIpv4Type": { + "type": "string", + "description": "The Ipv4.Type enumerated type specifies different types of the IPv4 configuration.", + "enum": [ + "DHCP", + "STATIC", + "USER_INPUT_REQUIRED" + ] + }, + "VcenterGuestIpv6": { + "type": "object", + "properties": { + "type": { + "description": "The IPv6 configuration type", + "$ref": "#/definitions/VcenterGuestIpv6Type" + }, + "ipv6": { + "description": "IPv6 address\nThis field is optional and it is only relevant when the value of Ipv6.type is STATIC.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterGuestIpv6Address" + } + }, + "gateways": { + "description": "gateways for the IPv6 address.\nIf unset, no gateways are set.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "VcenterGuestIpv6Address": { + "type": "object", + "properties": { + "ip_address": { + "description": "Static IPv6 Address.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "ip_address", + "prefix" + ] + }, + "VcenterGuestIpv6Type": { + "type": "string", + "description": "The Ipv6.Type enumerated type specifies different types of the IPv6 configuration.", + "enum": [ + "DHCP", + "STATIC", + "USER_INPUT_REQUIRED" + ] + }, + "VcenterGuestLinuxConfiguration": { + "type": "object", + "properties": { + "hostname": { + "description": "The network host name of the Linux virtual machine.", + "$ref": "#/definitions/VcenterGuestHostnameGenerator" + }, + "domain": { + "description": "The fully qualified domain name.", + "type": "string" + }, + "time_zone": { + "description": "The case-sensitive time zone, such as Europe/Sofia. Valid time zone values are based on the tz (time zone) database used by Linux. The values are strings (string) in the form \"Area/Location,\" in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. \n See the https://kb.vmware.com/kb/2145518 for a list of supported time zones for different versions in Linux.\n\nIf unset, time zone is not modified inside guest operating system.", + "type": "string" + }, + "script_text": { + "description": "The script to run before and after Linux guest customization.\n The max size of the script is 65536 bytes. As long as the script (shell, perl, python...) has the right \"#!\" in the header, it is supported. The caller should not assume any environment variables when the script is run. \n The script is invoked by the customization engine using the command line: 1) with argument \"precustomization\" before customization, 2) with argument \"postcustomization\" after customization. The script should parse this argument and implement pre-customization or post-customization task code details in the corresponding block. \n\n A Linux shell script example: \n\n #!/bin/sh\n if [ x$1 == x\"precustomization\" ]; then\n echo \"Do Precustomization tasks\"\n #code for pre-customization actions...\n elif [ x$1 == x\"postcustomization\" ]; then\n echo \"Do Postcustomization tasks\"\n #code for post-customization actions...\n fi\n \n\nIf unset, no script will be executed.", + "type": "string" + } + }, + "required": [ + "hostname", + "domain" + ] + }, + "VcenterGuestUserData": { + "type": "object", + "properties": { + "computer_name": { + "description": "The computer name of the (Windows) virtual machine. A computer name may contain letters (A-Z), numbers(0-9) and hyphens (-) but no spaces or periods (.). The name may not consist entirely of digits. A computer name is restricted to 15 characters in length. If the computer name is longer than 15 characters, it will be truncated to 15 characters. Check HostnameGenerator for various options.", + "$ref": "#/definitions/VcenterGuestHostnameGenerator" + }, + "full_name": { + "description": "Full name of the end user. Note that this is not the username but full name specified in \"Firstname Lastname\" format.", + "type": "string" + }, + "organization": { + "description": "Name of the organization that owns the computer.", + "type": "string" + }, + "product_key": { + "description": "The product Key to use for activating Windows guest operating system.", + "type": "string" + } + }, + "required": [ + "computer_name", + "full_name", + "organization", + "product_key" + ] + }, + "VcenterGuestWindowsConfiguration": { + "type": "object", + "properties": { + "reboot": { + "description": "A value specifying the action that should be taken after customization.\nIf unset, the REBOOT option will be chosen.", + "$ref": "#/definitions/VcenterGuestWindowsConfigurationRebootOption" + }, + "sysprep": { + "description": "Customization settings like user details, administrator details, etc for the windows guest operating system. Exactly one of WindowsConfiguration.sysprep or WindowsConfiguration.sysprep-xml must be specified.\nIf unset, sysprep settings will not be applied to the windows guest operating system.", + "$ref": "#/definitions/VcenterGuestWindowsSysprep" + }, + "sysprep_xml": { + "description": "All settings specified in a XML format. This is the content of a typical answer.xml file that is used by System administrators during the Windows image customization. Check https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/update-windows-settings-and-scripts-create-your-own-answer-file-sxs Exactly one of WindowsConfiguration.sysprep or WindowsConfiguration.sysprep-xml must be specified.\nIf unset, sysprep settings will not be applied to the windows guest operating system.", + "type": "string" + } + } + }, + "VcenterGuestWindowsConfigurationRebootOption": { + "type": "string", + "description": "The WindowsConfiguration.RebootOption enumerated type specifies what should be done to the guest after the customization.", + "enum": [ + "REBOOT", + "NO_REBOOT", + "SHUTDOWN" + ] + }, + "VcenterGuestWindowsNetworkAdapterSettings": { + "type": "object", + "properties": { + "dns_servers": { + "description": "A list of server IP addresses to use for DNS lookup in a Windows guest operating system. \n These servers should be specified in the order of preference. If this list is not empty, and if a DHCP IP address is used, then these settings override the DHCP settings.\n\nIf unset, no DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "dns_domain": { + "description": "A DNS domain suffix such as vmware.com.\nIf unset, no DNS domain is set.", + "type": "string" + }, + "wins_servers": { + "description": "List of WINS Servers to set for the Windows guest operating system. A Maximum of two IP addresses can be specified in this list. The first IP address will be set as the primary WINS server. The second IP address will be set as the secondary WINS server.\nIf unset, no WINS Servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "net_BIOS_mode": { + "description": "NetBIOS setting for Windows.\nIf unset, existing NetBIOS mode will be retained.", + "$ref": "#/definitions/VcenterGuestWindowsNetworkAdapterSettingsNetBIOSMode" + } + } + }, + "VcenterGuestWindowsNetworkAdapterSettingsNetBIOSMode": { + "type": "string", + "description": "The WindowsNetworkAdapterSettings.NetBIOSMode enumerated type specifies different NetBIOS settings for Windows guest operating systems.", + "enum": [ + "USE_DHCP", + "ENABLE", + "DISABLE" + ] + }, + "VcenterGuestWindowsSysprep": { + "type": "object", + "properties": { + "gui_run_once_commands": { + "description": "A list of commands to run at first user logon, after customizing the guest. These commands are directly mapped to the GuiRunOnce key in the sysprep.xml answer file. These commands are transferred into the sysprep.xml file that VirtualCenter stores on the target virtual disk. For more information about performing unattended installation, check https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx The commands listed here ar executed when a user logs on the first time after customization completes. The logon may be driven by GuiUnattended.auto-logon setting. These commands are directly mapped to the GuiRunOnce key in the\nIf unset, no commands are run.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_data": { + "description": "Personal data pertaining to the owner of the virtual machine.", + "$ref": "#/definitions/VcenterGuestUserData" + }, + "domain": { + "description": "Information needed to join a workgroup or domain.\nIf unset, the guest will not be joined to any workgroup or a domain.", + "$ref": "#/definitions/VcenterGuestDomain" + }, + "gui_unattended": { + "description": "Information related to unattended installation.", + "$ref": "#/definitions/VcenterGuestGuiUnattended" + } + }, + "required": [ + "user_data", + "gui_unattended" + ] + }, + "VcenterHostConnectionState": { + "type": "string", + "enum": [ + "CONNECTED", + "DISCONNECTED", + "NOT_RESPONDING" + ] + }, + "VcenterHostCreate": { + "$ref": "#/definitions/VcenterHostCreateSpec", + "description": "Specification for the new host to be created." + }, + "VcenterHostCreateSpec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the host.", + "type": "string" + }, + "port": { + "description": "The port of the host.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "user_name": { + "description": "The administrator account on the host.", + "type": "string" + }, + "password": { + "description": "The password for the administrator account on the host.", + "type": "string", + "format": "password" + }, + "folder": { + "description": "Host and cluster folder in which the new standalone host should be created.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the host; if a folder cannot be chosen, the host creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "thumbprint_verification": { + "description": "Type of host's SSL certificate verification to be done.", + "$ref": "#/definitions/VcenterHostCreateSpecThumbprintVerification" + }, + "thumbprint": { + "description": "The thumbprint of the SSL certificate, which the host is expected to have. The thumbprint is always computed using the SHA1 hash and is the string representation of that hash in the format: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx where, 'x' represents a hexadecimal digit.\nThis field is optional and it is only relevant when the value of Host.CreateSpec.thumbprint-verification is THUMBPRINT.", + "type": "string" + }, + "force_add": { + "description": "Whether host should be added to the vCenter Server even if it is being managed by another vCenter Server. The original vCenterServer loses connection to the host.\nIf unset, forceAdd is default to false.", + "type": "boolean" + } + }, + "required": [ + "hostname", + "user_name", + "password", + "thumbprint_verification" + ] + }, + "VcenterHostCreateSpecThumbprintVerification": { + "type": "string", + "description": "The Host.CreateSpec.ThumbprintVerification enumerated type defines the thumbprint verification schemes for a host's SSL certificate.", + "enum": [ + "NONE", + "THUMBPRINT" + ] + }, + "VcenterHostEntropyExternalPoolAdd": { + "$ref": "#/definitions/VcenterHostEntropyExternalPoolAddSpec", + "description": "contains buffer of entropy data." + }, + "VcenterHostEntropyExternalPoolAddResult": { + "type": "object", + "properties": { + "capacity": { + "description": "Capacity of external entropy pool in bytes.", + "type": "integer", + "format": "int64" + }, + "currently_available": { + "description": "Currently available amount of entropy in bytes in the external entropy pool.", + "type": "integer", + "format": "int64" + }, + "low_watermark": { + "description": "A threshold value in bytes. An audit record will be logged when ExternalPool.AddResult.currently-available drops below this value.", + "type": "integer", + "format": "int64" + }, + "inactive_source_timeout": { + "description": "A timeout period in seconds within which the client must call ExternalPool.get operation or ExternalPool.add operation. If no call is received before the timeout lapses an audit record will be created. \n This is the timeout to detect any connection lost with the client.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "capacity", + "currently_available", + "low_watermark", + "inactive_source_timeout" + ] + }, + "VcenterHostEntropyExternalPoolAddSpec": { + "type": "object", + "properties": { + "data": { + "description": "Buffer for entropy data. This will carry entropy data received from the external entropy source.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "data" + ] + }, + "VcenterHostEntropyExternalPoolInfo": { + "type": "object", + "properties": { + "status": { + "description": "This flag indicates entropy service is enabled or not in a ESX host.", + "$ref": "#/definitions/VcenterHostEntropyExternalPoolStatus" + }, + "capacity": { + "description": "Capacity of external entropy pool in bytes.\nThis field is optional and it is only relevant when the value of ExternalPool.Info.status is ENABLED.", + "type": "integer", + "format": "int64" + }, + "currently_available": { + "description": "Currently available amount of entropy in bytes in the external entropy pool.\nThis field is optional and it is only relevant when the value of ExternalPool.Info.status is ENABLED.", + "type": "integer", + "format": "int64" + }, + "low_watermark": { + "description": "A threshold value in bytes. An audit record will be logged when ExternalPool.Info.currently-available drops below this value.\nThis field is optional and it is only relevant when the value of ExternalPool.Info.status is ENABLED.", + "type": "integer", + "format": "int64" + }, + "inactive_source_timeout": { + "description": "A timeout period in seconds within which the client must call ExternalPool.get operation or ExternalPool.add operation. If no call is received before the timeout lapses an audit record will be created. \n This timeout is used to detect that connection with the client is lost.\n\nThis field is optional and it is only relevant when the value of ExternalPool.Info.status is ENABLED.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "status" + ] + }, + "VcenterHostEntropyExternalPoolStatus": { + "type": "string", + "description": "The ExternalPool.Status enum represents external entropy status on an ESX host.", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "VcenterHostFilterSpec": { + "type": "object", + "properties": { + "hosts": { + "description": "Identifiers of hosts that can match the filter.\nIf unset or empty, hosts with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that hosts must have to match the filter (see Host.Summary.name).\nIf unset or empty, hosts with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "standalone": { + "description": "If true, only hosts that are not part of a cluster can match the filter, and if false, only hosts that are are part of a cluster can match the filter.\nIf unset Hosts can match filter independent of whether they are part of a cluster or not. If this field is true and Host.FilterSpec.clusters os not empty, no hosts will match the filter.", + "type": "boolean" + }, + "clusters": { + "description": "Clusters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any cluster and hosts that are not in a cluster match the filter. If this field is not empty and Host.FilterSpec.standalone is true, no hosts will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "connection_states": { + "description": "Connection states that a host must be in to match the filter (see Host.Summary.connection-state.\nIf unset or empty, hosts in any connection state match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterHostConnectionState" + } + } + } + }, + "VcenterHostPowerState": { + "type": "string", + "description": "The Host.PowerState enumerated type defines the power states of a host.", + "enum": [ + "POWERED_ON", + "POWERED_OFF", + "STANDBY" + ] + }, + "VcenterHostSummary": { + "type": "object", + "properties": { + "host": { + "description": "Identifier of the host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "name": { + "description": "Name of the host.", + "type": "string" + }, + "connection_state": { + "description": "Connection status of the host", + "$ref": "#/definitions/VcenterHostConnectionState" + }, + "power_state": { + "description": "Power state of the host\nThis field is optional and it is only relevant when the value of Host.Summary.connection-state is CONNECTED.", + "$ref": "#/definitions/VcenterHostPowerState" + } + }, + "required": [ + "host", + "name", + "connection_state" + ] + }, + "VcenterIdentityBrokerTenantsTokenInfo": { + "type": "object", + "properties": { + "token_type": { + "description": "The type of the token issued. The access token type provides the client with the information required to successfully utilize the access token to make a protected resource request (along with type-specific attributes). The client MUST NOT use an access token if it does not understand the token type. \n \"Bearer\" token type as defined in RFC 6750 is supported.", + "type": "string" + }, + "access_token": { + "description": "Tenant client access token issued by the authorization server.", + "type": "string" + }, + "expires_in": { + "description": "The lifetime in seconds of the access token. For example, the value \"3600\" denotes that the access token will expire in one hour from the time the response was generated.\nunset if not applicable for issued token.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "token_type", + "access_token" + ] + }, + "VcenterIdentityFederationType": { + "type": "string", + "description": "The FederationType enumerated type contains the possible types of federation paths for, vCenter Server identity providers configuration.", + "enum": [ + "DIRECT_FEDERATION", + "INDIRECT_FEDERATION" + ] + }, + "VcenterIdentityProvidersActiveDirectoryOverLdap": { + "type": "object", + "properties": { + "user_name": { + "description": "User name to connect to the active directory server.", + "type": "string" + }, + "password": { + "description": "Password to connect to the active directory server.", + "type": "string", + "format": "password" + }, + "users_base_dn": { + "description": "Base distinguished name for users", + "type": "string" + }, + "groups_base_dn": { + "description": "Base distinguished name for groups", + "type": "string" + }, + "server_endpoints": { + "description": "Active directory server endpoints. At least one active directory server endpoint must be set.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "cert_chain": { + "description": "SSL certificate chain in base64 encoding.\nThis field can be unset only, if all the active directory server endpoints use the LDAP (not LDAPS) protocol.", + "$ref": "#/definitions/VcenterCertificateManagementX509CertChain" + } + }, + "required": [ + "user_name", + "password", + "users_base_dn", + "groups_base_dn", + "server_endpoints" + ] + }, + "VcenterIdentityProvidersConfigType": { + "type": "string", + "description": "The Providers.ConfigType structure contains the possible types of vCenter Server identity providers.", + "enum": [ + "Oauth2", + "Oidc" + ] + }, + "VcenterIdentityProvidersCreate": { + "$ref": "#/definitions/VcenterIdentityProvidersCreateSpec", + "description": "the CreateSpec contains the information used to create the provider" + }, + "VcenterIdentityProvidersCreateSpec": { + "type": "object", + "properties": { + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/VcenterIdentityProvidersConfigType" + }, + "oauth2": { + "description": "OAuth2 CreateSpec\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.config-tag is Oauth2.", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2CreateSpec" + }, + "oidc": { + "description": "OIDC CreateSpec\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.config-tag is Oidc.", + "$ref": "#/definitions/VcenterIdentityProvidersOidcCreateSpec" + }, + "org_ids": { + "description": "The set of orgIds as part of SDDC creation which provides the basis for tenancy\nIf unset, the set will be empty.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "is_default": { + "description": "Specifies whether the provider is the default provider. Setting Providers.CreateSpec.is-default of current provider to True makes all other providers non-default. If no other providers created in this vCenter Server before, this parameter will be disregarded, and the provider will always be set to the default.\nIf unset the provider will be the default provider if it is the first provider that is created, and will not be the default provider otherwise.", + "type": "boolean" + }, + "name": { + "description": "The user friendly name for the provider. This name can be used for human-readable identification purposes, but it does not have to be unique, as the system will use internal UUIDs to differentiate providers.\nIf unset, the name will be the empty string", + "type": "string" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains.\nIf unset, domainNames will be the empty set and the domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nIf unset, the map will be empty.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "idm_protocol": { + "description": "Communication protocol to the identity management endpoints.\nIf unset, no communication protocol will be configured for the identity provider.", + "$ref": "#/definitions/VcenterIdentityProvidersIdmProtocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints. When specified, at least one endpoint must be provided.\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration. If the protocol is LDAP, the configuration must be set, else InvalidArgument is thrown.\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.idm-protocol is LDAP.", + "$ref": "#/definitions/VcenterIdentityProvidersActiveDirectoryOverLdap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the user.\nIf unset, the claim named 'acct' will be used to provide backwards compatibility with CSP.", + "type": "string" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject. These groups will be used for mapping to local groups per the claim map.\nIf unset, the default behavior will be CSP backwards compatiblility. The groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims.", + "type": "string" + }, + "federation_type": { + "description": "The type of the identity provider\nIf unset, the federation type value will not be set.", + "$ref": "#/definitions/VcenterIdentityFederationType" + } + }, + "required": [ + "config_tag" + ] + }, + "VcenterIdentityProvidersIdmProtocol": { + "type": "string", + "description": "The Providers.IdmProtocol structure contains the possible types of communication protocols to the identity management endpoints.", + "enum": [ + "REST", + "SCIM", + "SCIM2_0", + "LDAP" + ] + }, + "VcenterIdentityProvidersInfo": { + "type": "object", + "properties": { + "name": { + "description": "The user friendly name for the provider\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "org_ids": { + "description": "The set of orgIds as part of SDDC creation which provides the basis for tenancy", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/VcenterIdentityProvidersConfigType" + }, + "oauth2": { + "description": "OAuth2 Info\nThis field is optional and it is only relevant when the value of Providers.Info.config-tag is Oauth2.", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2Info" + }, + "oidc": { + "description": "OIDC Info\nThis field is optional and it is only relevant when the value of Providers.Info.config-tag is Oidc.", + "$ref": "#/definitions/VcenterIdentityProvidersOidcInfo" + }, + "is_default": { + "description": "Specifies whether the provider is the default provider.", + "type": "boolean" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "idm_protocol": { + "description": "Communication protocol to the identity management endpoints.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterIdentityProvidersIdmProtocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints.\nThis field is optional and it is only relevant when the value of Providers.Info.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration.\nThis field is optional and it is only relevant when the value of Providers.Info.idm-protocol is LDAP.", + "$ref": "#/definitions/VcenterIdentityProvidersActiveDirectoryOverLdap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the user.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject. If empty, the default behavior for CSP is used. In this case, the groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "federation_type": { + "description": "The type of the identity provider\nIf no federation type value set earlier.", + "$ref": "#/definitions/VcenterIdentityFederationType" + } + }, + "required": [ + "org_ids", + "config_tag", + "is_default" + ] + }, + "VcenterIdentityProvidersOauth2AuthenticationMethod": { + "type": "string", + "description": "The Providers.Oauth2AuthenticationMethod structure contains the possible types of OAuth2 authentication methods.", + "enum": [ + "CLIENT_SECRET_BASIC", + "CLIENT_SECRET_POST", + "CLIENT_SECRET_JWT", + "PRIVATE_KEY_JWT" + ] + }, + "VcenterIdentityProvidersOauth2CreateSpec": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token.", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2AuthenticationMethod" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nIf unset, the map will be empty.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method" + ] + }, + "VcenterIdentityProvidersOauth2Info": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2AuthenticationMethod" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method", + "auth_query_params" + ] + }, + "VcenterIdentityProvidersOauth2Summary": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "authentication_header": { + "description": "The authentication data used as part of request header to acquire or refresh an OAuth2 token. The data format depends on the authentication method used. Example of basic authentication format: Authorization: Basic [base64Encode(clientId + \":\" + secret)]", + "type": "string" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "client_id", + "authentication_header", + "auth_query_params" + ] + }, + "VcenterIdentityProvidersOauth2UpdateSpec": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider.\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "client_secret": { + "description": "Shared secret between identity provider and client\nIf unset, leaves value unchanged.", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.\nIf unset, leaves value unchanged.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token\nIf unset, leaves value unchanged.", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider\nIf unset, leaves value unchanged.", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2AuthenticationMethod" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request. How to append to authEndpoint request: If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details: If the value contains only one string, then the key is added with \"k=v\". If the value is an empty list, then the key is added without a \"=v\". If the value contains multiple strings, then the key is repeated in the query-string for each string in the value. If the map is empty, deletes all params.\nIf unset, leaves value unchanged.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "VcenterIdentityProvidersOidcCreateSpec": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "discovery_endpoint", + "client_id", + "client_secret", + "claim_map" + ] + }, + "VcenterIdentityProvidersOidcInfo": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata", + "type": "string", + "format": "uri" + }, + "logout_endpoint": { + "description": "The endpoint to use for terminating the user's session at the identity provider. This value is automatically derived from the metadata information provided by the OIDC discovery endpoint.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2AuthenticationMethod" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": [ + "discovery_endpoint", + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method", + "auth_query_params" + ] + }, + "VcenterIdentityProvidersOidcSummary": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "logout_endpoint": { + "description": "The endpoint to use for terminating the user's session at the identity provider. This value is automatically derived from the metadata information provided by the OIDC discovery endpoint.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "authentication_header": { + "description": "The authentication data used as part of request header to acquire or refresh an OAuth2 token. The data format depends on the authentication method used. Example of basic authentication format: Authorization: Basic [base64Encode(clientId + \":\" + secret)]", + "type": "string" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "client_id", + "authentication_header", + "auth_query_params" + ] + }, + "VcenterIdentityProvidersOidcUpdateSpec": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.\nIf unset, leaves value unchanged.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "VcenterIdentityProvidersSummary": { + "type": "object", + "properties": { + "provider": { + "description": "The identifier of the provider\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.identity.Providers. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.identity.Providers.", + "type": "string" + }, + "name": { + "description": "The user friendly name for the provider\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/VcenterIdentityProvidersConfigType" + }, + "oauth2": { + "description": "OAuth2 Summary\nThis field is optional and it is only relevant when the value of Providers.Summary.config-tag is Oauth2.", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2Summary" + }, + "oidc": { + "description": "OIDC Summary\nThis field is optional and it is only relevant when the value of Providers.Summary.config-tag is Oidc.", + "$ref": "#/definitions/VcenterIdentityProvidersOidcSummary" + }, + "is_default": { + "description": "Specifies whether the provider is the default provider.", + "type": "boolean" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "federation_type": { + "description": "The type of the identity provider\nIf no federation type value set earlier.", + "$ref": "#/definitions/VcenterIdentityFederationType" + } + }, + "required": [ + "provider", + "config_tag", + "is_default" + ] + }, + "VcenterIdentityProvidersUpdate": { + "$ref": "#/definitions/VcenterIdentityProvidersUpdateSpec", + "description": "the UpdateSpec contains the information used to update the provider" + }, + "VcenterIdentityProvidersUpdateSpec": { + "type": "object", + "properties": { + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/VcenterIdentityProvidersConfigType" + }, + "oauth2": { + "description": "OAuth2 UpdateSpec\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.config-tag is Oauth2.", + "$ref": "#/definitions/VcenterIdentityProvidersOauth2UpdateSpec" + }, + "oidc": { + "description": "OIDC UpdateSpec\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.config-tag is Oidc.", + "$ref": "#/definitions/VcenterIdentityProvidersOidcUpdateSpec" + }, + "org_ids": { + "description": "The set orgIds as part of SDDC creation which provides the basis for tenancy\nIf unset, leaves value unchanged.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "make_default": { + "description": "Specifies whether to make this the default provider. If Providers.UpdateSpec.make-default is set to true, this provider will be flagged as the default provider and any other providers that had previously been flagged as the default will be made non-default. If Providers.UpdateSpec.make-default is set to false, this provider's default flag will not be modified.\nIf unset, leaves value unchanged.", + "type": "boolean" + }, + "name": { + "description": "The user friendly name for the provider. This name can be used for human-readable identification purposes, but it does not have to be unique, as the system will use internal UUIDs to differentiate providers.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains.\nIf unset, leaves value unchanged. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request. How to append to authEndpoint request: If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details: If the value contains only one string, then the key is added with \"k=v\". If the value is an empty list, then the key is added without a \"=v\". If the value contains multiple strings, then the key is repeated in the query-string for each string in the value. If the map is empty, deletes all params.\nIf unset, leaves value unchanged.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "idm_protocol": { + "description": "The protocol to communicate to the identity management endpoints\nIf unset, leave value unchanged.", + "$ref": "#/definitions/VcenterIdentityProvidersIdmProtocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints. When specified, at least one endpoint must be provided.\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration. If the protocol is LDAP, the configuration must be set, else InvalidArgument is thrown\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.idm-protocol is LDAP.", + "$ref": "#/definitions/VcenterIdentityProvidersActiveDirectoryOverLdap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the subject of the token.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "reset_upn_claim": { + "description": "Flag indicating whether the user principal name (UPN) claim should be set back to its default value. If this field is set to true, the user principal name (UPN) claim will be set to 'acct', which is used for backwards compatibility with CSP. If this field is set to false, the existing user principal name (UPN) claim will be changed to the value specified in Providers.UpdateSpec.upn-claim, if any.\nIf unset, the existing user principal name (UPN) claim will be changed to the value specified in Providers.UpdateSpec.upn-claim, if any.", + "type": "boolean" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "reset_groups_claim": { + "description": "Flag indicating whether any existing groups claim value should be removed. If this field is set to true, the existing groups claim value is removed which defaults to backwards compatibility with CSP. In this case, the groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims. If this field is set to false, the existing groups claim will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.\nIf unset, the existing groups claim will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.", + "type": "boolean" + }, + "federation_type": { + "description": "The type of the identity provider\nIf unset, leaves value unchanged.", + "$ref": "#/definitions/VcenterIdentityFederationType" + } + }, + "required": [ + "config_tag" + ] + }, + "VcenterInventoryDatastoreInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be one of Datastore or StoragePod. When operations return a value of this structure as a result, the field will be one of Datastore or StoragePod.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterInventoryNetworkInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type of the vCenter Server network.\nWhen clients pass a value of this structure as a parameter, the field must be one of Network, DistributedVirtualPortgroup, or OpaqueNetwork. When operations return a value of this structure as a result, the field will be one of Network, DistributedVirtualPortgroup, or OpaqueNetwork.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterIsoImageMount": { + "type": "object", + "properties": { + "library_item": { + "type": "string", + "description": "The identifier of the library item having the ISO image to mount on the virtual machine.\nThe parameter must be an identifier for the resource type: content.library.Item." + }, + "vm": { + "type": "string", + "description": "The identifier of the virtual machine where the specified ISO image will be mounted.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + }, + "required": [ + "library_item", + "vm" + ] + }, + "VcenterIsoImageUnmount": { + "type": "object", + "properties": { + "vm": { + "type": "string", + "description": "The identifier of the virtual machine from which to unmount the virtual CD-ROM.\nThe parameter must be an identifier for the resource type: VirtualMachine." + }, + "cdrom": { + "type": "string", + "description": "The device identifier of the CD-ROM.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + }, + "required": [ + "vm", + "cdrom" + ] + }, + "VcenterLcmDiscoveryAssociatedProductsCreate": { + "$ref": "#/definitions/VcenterLcmDiscoveryAssociatedProductsCreateSpec", + "description": "Info creation specification." + }, + "VcenterLcmDiscoveryAssociatedProductsCreateSpec": { + "type": "object", + "properties": { + "product_name": { + "description": "The name of the product.", + "type": "string" + }, + "version": { + "description": "Current product version.", + "type": "string" + }, + "deployments": { + "description": "The list of hostname/IPs of the instances of the VMware products deployed in the environment.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "product_name", + "version" + ] + }, + "VcenterLcmDiscoveryAssociatedProductsUpdate": { + "$ref": "#/definitions/VcenterLcmDiscoveryAssociatedProductsUpdateSpec", + "description": "" + }, + "VcenterLcmDiscoveryAssociatedProductsUpdateSpec": { + "type": "object", + "properties": { + "deployments": { + "description": "The list of hostname/IPs of the instances of the VMware products deployed in the environment.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterLcmDiscoveryInteropReportCreateTask": { + "$ref": "#/definitions/VcenterLcmDiscoveryInteropReportSpec", + "description": "Specifies the target version against this interoperability check report will be generated. If unset the report will be generated for the currently installed version of the vCenter server." + }, + "VcenterLcmDiscoveryInteropReportSpec": { + "type": "object", + "properties": { + "target_version": { + "description": "The vCenter Server version. \n It is used for checking against the other products registered with that instance of vCenter Server.", + "type": "string" + } + }, + "required": [ + "target_version" + ] + }, + "VcenterLcmDiscoveryProduct": { + "type": "object", + "properties": { + "installed_product": { + "description": "Identifies a product and a version uniquely. \nThe identifier consists of product internal name and version.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: PRODUCT. When operations return a value of this structure as a result, the field will be an identifier for the resource type: PRODUCT.", + "type": "string" + }, + "name": { + "description": "A public official product name.", + "type": "string" + }, + "version": { + "description": "Current product version.", + "type": "string" + }, + "target_version": { + "description": "Future version of the product after upgrade.\nProduct.target-version may not be applicable.", + "type": "string" + }, + "deployments": { + "description": "The list of hostname/IPs of the instances of the VMware products deployed in the environment. This field would be empty for manually added products.", + "type": "array", + "items": { + "type": "string" + } + }, + "auto": { + "description": "Indicates if the product is auto-detected by the system or manually added. If it is set to true it means it is auto-detected.", + "type": "boolean" + } + }, + "required": [ + "installed_product", + "name", + "version", + "auto" + ] + }, + "VcenterLcmDiscoveryProductCatalogSummary": { + "type": "object", + "properties": { + "name": { + "description": "A product name that the customer is aware of.", + "type": "string" + }, + "versions": { + "description": "List of versions the customer can select from.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "versions" + ] + }, + "VcenterLcmNotification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.\nOnly if the time information is available.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set for warnings and errors.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "id", + "message" + ] + }, + "VcenterLcmNotifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmNotification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmNotification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the appliance task.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmNotification" + } + } + } + }, + "VcenterLcmReportsLocation": { + "type": "object", + "properties": { + "uri": { + "description": "Report Download URI.", + "type": "string", + "format": "uri" + }, + "download_file_token": { + "description": "Information about the token required in the HTTP GET request to retrieve the report", + "$ref": "#/definitions/VcenterLcmReportsToken" + } + }, + "required": [ + "uri", + "download_file_token" + ] + }, + "VcenterLcmReportsToken": { + "type": "object", + "properties": { + "token": { + "description": "A one-time, short-lived token required in the HTTP header of the request to the url. This token needs to be passed in as a header with the name \"session-id\".", + "type": "string" + }, + "expiry": { + "description": "Expiry time of the token", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "token", + "expiry" + ] + }, + "VcenterLcmUpdatePendingCategory": { + "type": "string", + "description": "The Pending.Category enumerated type defines the type of payload this release has on top of previous release", + "enum": [ + "SECURITY", + "FIX", + "UPDATE", + "UPGRADE" + ] + }, + "VcenterLcmUpdatePendingInfo": { + "type": "object", + "properties": { + "description": { + "description": "Description of the vSphere update", + "type": "string" + }, + "pending_update": { + "description": "Identifier of the given vSphere update\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.lcm.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.lcm.update.pending.", + "type": "string" + }, + "version": { + "description": "Version of the vSphere update or patch", + "type": "string" + }, + "release_date": { + "description": "Release date of the vSphere update or patch", + "type": "string", + "format": "date-time" + }, + "severity": { + "description": "Severity of the issues fixed in the vSphere update or patch", + "$ref": "#/definitions/VcenterLcmUpdatePendingSeverityType" + }, + "build": { + "description": "Build number of the vCenter Release", + "type": "string" + }, + "update_type": { + "description": "Type of the Release based on the current vCenter version", + "$ref": "#/definitions/VcenterLcmUpdatePendingUpdateType" + }, + "category": { + "description": "Category of the release based on features bundled on top of previous release", + "$ref": "#/definitions/VcenterLcmUpdatePendingCategory" + }, + "reboot_required": { + "description": "Flag to suggest a reboot after the release is applied", + "type": "boolean" + }, + "execute_URL": { + "description": "VAMI or ISO URL for update or upgrade execute phase redirection", + "type": "string", + "format": "uri" + }, + "release_notes": { + "description": "List of URI pointing to patch or update release notes", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + } + }, + "required": [ + "description", + "pending_update", + "version", + "release_date", + "severity", + "build", + "update_type", + "category", + "reboot_required", + "execute_URL", + "release_notes" + ] + }, + "VcenterLcmUpdatePendingListResult": { + "type": "object", + "properties": { + "last_check_time": { + "description": "Time when the software depo was last checked.", + "type": "string", + "format": "date-time" + }, + "update_count": { + "description": "Number of pending updates\nOnly set if there are available updates", + "type": "integer", + "format": "int64" + }, + "upgrade_count": { + "description": "Number of pending upgrades\nOnly set if there are available upgrades", + "type": "integer", + "format": "int64" + }, + "updates": { + "description": "List of pending update details", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterLcmUpdatePendingSummary" + } + }, + "issues": { + "description": "Lists of issues encountered during pending updates retrieval.\nset if any issues encountered.", + "$ref": "#/definitions/VcenterLcmNotifications" + } + }, + "required": [ + "last_check_time", + "updates" + ] + }, + "VcenterLcmUpdatePendingSeverityType": { + "type": "string", + "description": "Level of severity for applying a given patch or update.", + "enum": [ + "CRITICAL", + "IMPORTANT", + "MODERATE", + "LOW" + ] + }, + "VcenterLcmUpdatePendingSummary": { + "type": "object", + "properties": { + "pending_update": { + "description": "Identifier of the given vSphere update\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.lcm.update.pending. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.lcm.update.pending.", + "type": "string" + }, + "version": { + "description": "Version of the vSphere update or patch", + "type": "string" + }, + "release_date": { + "description": "Release date of the vSphere update or patch", + "type": "string", + "format": "date-time" + }, + "severity": { + "description": "Severity of the issues fixed in the vSphere update or patch", + "$ref": "#/definitions/VcenterLcmUpdatePendingSeverityType" + }, + "build": { + "description": "Build number of the vCenter Release", + "type": "string" + }, + "update_type": { + "description": "Type of the Release based on the current vCenter version", + "$ref": "#/definitions/VcenterLcmUpdatePendingUpdateType" + }, + "category": { + "description": "Category of the release based on features bundled on top of previous release", + "$ref": "#/definitions/VcenterLcmUpdatePendingCategory" + }, + "reboot_required": { + "description": "Flag to suggest a reboot after the release is applied", + "type": "boolean" + }, + "execute_URL": { + "description": "VAMI or ISO URL for update or upgrade execute phase redirection", + "type": "string", + "format": "uri" + }, + "release_notes": { + "description": "List of URI pointing to patch or update release notes", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + } + }, + "required": [ + "pending_update", + "version", + "release_date", + "severity", + "build", + "update_type", + "category", + "reboot_required", + "execute_URL", + "release_notes" + ] + }, + "VcenterLcmUpdatePendingUpdateType": { + "type": "string", + "description": "The Pending.UpdateType enumerated type defines update type", + "enum": [ + "PATCH", + "UPDATE", + "UPGRADE" + ] + }, + "VcenterNamespaceManagementCNSFileConfig": { + "type": "object", + "properties": { + "vsan_clusters": { + "description": "CNSFileConfig.vsan-clusters is a list of clusters to be used for provisioning file volumes.\n \nAs a prerequisite these clusters must have vSAN and vSAN file services enabled, and must be in the same vCenter as the Supervisor.\n \nCurrently this list must have a single entry which is the cluster identifier of the current cluster. This cluster must be a vSAN cluster and must have vSAN File Service enabled.\n \nIf a cluster in the list is not a vSAN cluster or does not have vSAN File Service enabled, an InvalidArgument error will be thrown from Clusters.enable, Clusters.update and Clusters.set APIs.\n \nAn empty list may be specified to disable file volume support on the Supervisor.\n\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "vsan_clusters" + ] + }, + "VcenterNamespaceManagementClusterAvailableVersionsSummary": { + "type": "object", + "properties": { + "version": { + "description": "Version of the upgrade.", + "type": "string" + }, + "name": { + "description": "Name of the upgrade.", + "type": "string" + }, + "description": { + "description": "Description of the upgrade.", + "type": "string" + }, + "release_date": { + "description": "Release date of the upgrade.", + "type": "string", + "format": "date-time" + }, + "release_notes": { + "description": "Release details of the upgrade.", + "type": "string" + } + }, + "required": [ + "version", + "name", + "description", + "release_date", + "release_notes" + ] + }, + "VcenterNamespaceManagementClusterCompatibilityFilterSpec": { + "type": "object", + "properties": { + "compatible": { + "description": "Set this flag to true to only list vSphere clusters that are currently compatible with the Namespaces feature. If set to false, both compatible and incompatible vSphere clusters will be listed.\nIf unset, both compatible and incompatible vSphere clusters will be listed.", + "type": "boolean" + }, + "network_provider": { + "description": "The network provider whose networks will be considered.\nIf unset, this will default to NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + } + } + }, + "VcenterNamespaceManagementClusterCompatibilityFilterSpecV2": { + "type": "object", + "properties": { + "compatible": { + "description": "Set this flag to true to only return vSphere clusters that are currently compatible with the Namespaces feature. If set to false, both compatible and incompatible vSphere clusters will be returned.\nIf unset, both compatible and incompatible vSphere clusters will be listed.", + "type": "boolean" + }, + "network_provider": { + "description": "The network type that will be considered. A Supervisor can only be enabled with this network type if all hosts are compatible for this specific network type.\nIf unset, this will default to NSXT.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksWorkloadNetworkType" + } + } + }, + "VcenterNamespaceManagementClusterCompatibilitySummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the vSphere cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this vSphere cluster. If false, the list of incompatibility issues will be given in the ClusterCompatibility.Summary.incompatibility-reasons field.", + "type": "boolean" + }, + "incompatibility_reasons": { + "description": "Reasons for incompatibility.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "cluster", + "compatible", + "incompatibility_reasons" + ] + }, + "VcenterNamespaceManagementClusterCompatibilityZoneCompatibilityInfo": { + "type": "object", + "properties": { + "compatible": { + "description": "Flag to indicate whether the vSphere Zones are compatible with each other. If false, the list of incompatibility issues will be given in the ClusterCompatibility.ZoneCompatibilityInfo.incompatibility-reasons field.", + "type": "boolean" + }, + "zone_summaries": { + "description": "Information about the compatibility of a list of vSphere Zones and the vSphere clusters associated with them.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterCompatibilityZoneSummary" + } + }, + "incompatibility_reasons": { + "description": "Reasons for incompatibility between the vSphere Zones.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "compatible", + "zone_summaries", + "incompatibility_reasons" + ] + }, + "VcenterNamespaceManagementClusterCompatibilityZoneFilterSpec": { + "type": "object", + "properties": { + "zones": { + "description": "A list of vSphere Zone identifiers which will be used to filter vSphere Zones that correspond to this specific set of identifiers.\nIf unset or empty, results will not be filtered for specific vSphere Zone identifiers.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterNamespaceManagementClusterCompatibilityZoneSummary": { + "type": "object", + "properties": { + "zone": { + "description": "Identifier of this vSphere Zone.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "compatible": { + "description": "Flag to indicate whether the current Zone can be used to enable a Supervisor cluster. If false, the list of incompatibility issues will be given in the ClusterCompatibility.ZoneSummary.cluster-summaries field.", + "type": "boolean" + }, + "cluster_summaries": { + "description": "A list of information about the compatibility of vSphere clusters associated with this vSphere Zone.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClusterCompatibilitySummary" + } + } + }, + "required": [ + "zone", + "compatible", + "cluster_summaries" + ] + }, + "VcenterNamespaceManagementClusterSizeInfoInfo": { + "type": "object", + "properties": { + "num_supported_pods": { + "description": "The maximum number of supported pods.", + "type": "integer", + "format": "int64" + }, + "num_supported_services": { + "description": "The maximum number of supported services.", + "type": "integer", + "format": "int64" + }, + "default_service_cidr": { + "description": "Default CIDR range from which Kubernetes allocates service cluster IP addresses.", + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + }, + "default_pod_cidr": { + "description": "Default CIDR range from which Kubernetes allocates pod IP addresses.", + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + }, + "master_vm_info": { + "description": "Information about Kubernetes API server virtual machine configuration.", + "$ref": "#/definitions/VcenterNamespaceManagementClusterSizeInfoVmInfo" + }, + "worker_vm_info": { + "description": "Information about worker virtual machine configuration.\nIf unset, the configuration of the worker VM is not fixed.", + "$ref": "#/definitions/VcenterNamespaceManagementClusterSizeInfoVmInfo" + } + }, + "required": [ + "num_supported_pods", + "num_supported_services", + "default_service_cidr", + "default_pod_cidr", + "master_vm_info" + ] + }, + "VcenterNamespaceManagementClusterSizeInfoVmInfo": { + "type": "object", + "properties": { + "count": { + "description": "Number of CPU cores.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "Number of CPU cores per socket.", + "type": "integer", + "format": "int64" + }, + "memory": { + "description": "Memory size, in mebibytes.", + "type": "integer", + "format": "int64" + }, + "capacity": { + "description": "Overall capacity of the disks in the virtual machine, in mebibytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "count", + "cores_per_socket", + "memory", + "capacity" + ] + }, + "VcenterNamespaceManagementClustersCondition": { + "type": "object", + "properties": { + "type": { + "description": "The type of the condition is a CamelCase, machine readable identifier, indicating the configuration stage. InfrastructureInitialized, ControlPlaneVMsDeployed and ControlPlaneVMsConfigured are examples of such identifiers.", + "type": "string" + }, + "description": { + "description": "Description of the condition type in a human readable format.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "status": { + "description": "The status of the condition.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersConditionStatus" + }, + "last_transition_time": { + "description": "Last time the condition transitioned from one state to another. A transition happens when the value of status or severity field changes.\nif unset, there are no ongoing operations related to bringing the condition to the desired state.", + "type": "string", + "format": "date-time" + }, + "reason": { + "description": "A brief CamelCase message indicating details about the reason for the last transition. FailedWithSystemError, ManagementDNSServersMissing and WaitForNodeUpgrade are examples of such messages.", + "type": "string" + }, + "severity": { + "description": "Provides an explicit classification of the reason identifier. Set when the value of status is FALSE.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersConditionSeverity" + }, + "messages": { + "description": "A list of human-readable messages that provide additional details about the last transition.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersMessage" + } + } + }, + "required": [ + "type", + "description", + "status", + "reason", + "severity", + "messages" + ] + }, + "VcenterNamespaceManagementClustersConditionSeverity": { + "type": "string", + "description": "The Clusters.Condition.Severity structure represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementClustersConditionStatus": { + "type": "string", + "description": "Status of the condition, which can be one of TRUE, FALSE or UNKNOWN.", + "enum": [ + "TRUE", + "FALSE", + "UNKNOWN" + ] + }, + "VcenterNamespaceManagementClustersConfigStatus": { + "type": "string", + "description": "The Clusters.ConfigStatus enumerated type describes the status of reaching the desired state configuration for the cluster.", + "enum": [ + "CONFIGURING", + "REMOVING", + "RUNNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementClustersContentLibrarySpec": { + "type": "object", + "properties": { + "content_library": { + "description": "Content Library ID associated with a Supervisor. The Content Library specified should exist in the vSphere inventory.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + } + }, + "required": [ + "content_library" + ] + }, + "VcenterNamespaceManagementClustersEnable": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersEnableSpec", + "description": "Specification for setting up the Kubernetes API server and the worker nodes." + }, + "VcenterNamespaceManagementClustersEnableSpec": { + "type": "object", + "properties": { + "size_hint": { + "description": "This affects the size and resources allocated to the Kubernetes API server. It also affects the suggested default serviceCidr and podCidrs.", + "$ref": "#/definitions/VcenterNamespaceManagementSizingHint" + }, + "service_cidr": { + "description": "CIDR block from which Kubernetes allocates service cluster IP addresses. This range should not overlap with those in Clusters.NCPClusterNetworkEnableSpec.pod-cidrs, Clusters.NCPClusterNetworkEnableSpec.ingress-cidrs, Clusters.NCPClusterNetworkEnableSpec.egress-cidrs, or other services running in the datacenter.", + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + }, + "network_provider": { + "description": "The provider of cluster networking for this vSphere Namespaces cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "ncp_cluster_network_spec": { + "description": "Specification for the NSX Container Plugin cluster network.\nThis field is optional and it is only relevant when the value of Clusters.EnableSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNCPClusterNetworkEnableSpec" + }, + "workload_networks_spec": { + "description": "Specification for the workload networks to be associated with the cluster.\nThis field is optional and it is only relevant when the value of Clusters.EnableSpec.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersWorkloadNetworksEnableSpec" + }, + "workload_ntp_servers": { + "description": "List of NTP server DNS names or IP addresses to use for workloads such as Tanzu Kubernetes Grid VMs, specified in order of preference.\nIf unset, NTP server for Kubernetes API servers will be used.", + "type": "array", + "items": { + "type": "string" + } + }, + "load_balancer_config_spec": { + "description": "The load balancer configuration is derived from the user-provisioned load balancer that will be used to operate a load balancer that fronts vSphere Namespaces cluster servers, Tanzu Kubernetes Grid API servers, and other servers upon request. This configuration is required for network providers that do not have a default load balancer included.\nThis field is optional and it is only relevant when the value of Clusters.EnableSpec.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersConfigSpec" + }, + "master_management_network": { + "description": "Specification for the management network on Kubernetes API server. Clusters.NetworkSpec.mode must be STATICRANGE as we require Kubernetes API server to have a stable address.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkSpec" + }, + "master_DNS": { + "description": "List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, no default DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "worker_DNS": { + "description": "List of DNS server IP addresses to use on the worker nodes, specified in order of preference.\nIf unset, no default DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_DNS_search_domains": { + "description": "List of domains (for example \"vmware.com\") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.\nIf unset, no default DNS search domains are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_NTP_servers": { + "description": "List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, VMware Tools based time synchronization is enabled.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_storage_policy": { + "description": "Identifier of storage policy associated with Kubernetes API server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "ephemeral_storage_policy": { + "description": "Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "cns_file_config": { + "description": "Specification for configuring Cloud Native Storage file volume support on Supervisor. This feature provides support for provisioning ReadWriteMany persistent volumes on this cluster and/or external clusters.\nIf unset, file volume support will not be enabled on this Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementCNSFileConfig" + }, + "login_banner": { + "description": "Disclaimer to be displayed prior to login via the Kubectl plugin.\nIf unset, just skip it.", + "type": "string" + }, + "Master_DNS_names": { + "description": "List of DNS names to associate with the Kubernetes API server. These DNS names are embedded in the TLS certificate presented by the API server.\nIf unset, no DNS names are embedded in the TLS certificate.", + "type": "array", + "items": { + "type": "string" + } + }, + "image_storage": { + "description": "Specification for storage to be used for container images.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageStorageSpec" + }, + "default_image_registry": { + "description": "Default image registry to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, defaults to Docker Hub.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageRegistry" + }, + "default_image_repository": { + "description": "Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, defaults to Docker Hub official repository in case of Docker Hub image registry, otherwise defaults to empty string.", + "type": "string" + }, + "default_kubernetes_service_content_library": { + "description": "Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service. This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository.\nIf unset, the Content Library will be automatically generated and configured to the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "cluster_proxy_config": { + "description": "Proxy configuration that will be applied to the Supervisor. The proxy should be reachable from the management network and will be used for image pulling and container traffic exiting out of the Supervisor.\nIf unset the settings will be inherited from the vCenter settings if available.", + "$ref": "#/definitions/VcenterNamespaceManagementProxyConfiguration" + }, + "content_libraries": { + "description": "List of Content Libraries that will be associated with a Supervisor. This list should refer to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them will be read-only across all vSphere Namespaces. This list cannot overlap with the defaultKubernetesServiceContentLibrary.\nIf unset, no additional Content Libraries will be set for the Supervisor apart from the default Kubernetes Service Content Library.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersContentLibrarySpec" + } + } + }, + "required": [ + "size_hint", + "service_cidr", + "network_provider", + "master_management_network", + "master_storage_policy", + "ephemeral_storage_policy", + "image_storage" + ] + }, + "VcenterNamespaceManagementClustersImageRegistry": { + "type": "object", + "properties": { + "hostname": { + "description": "IP address or the hostname of container image registry.", + "type": "string" + }, + "port": { + "description": "Port number of the container image registry.\nIf unset, defaults to 443.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "hostname" + ] + }, + "VcenterNamespaceManagementClustersImageStorageSpec": { + "type": "object", + "properties": { + "storage_policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + } + }, + "required": [ + "storage_policy" + ] + }, + "VcenterNamespaceManagementClustersInfo": { + "type": "object", + "properties": { + "size_hint": { + "description": "Current setting for SizingHint. This affects the size and resources allocated to the Kubernetes API server.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementSizingHint" + }, + "stat_summary": { + "description": "Basic runtime statistics for the cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersStats" + }, + "config_status": { + "description": "Current setting for Clusters.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersConfigStatus" + }, + "conditions": { + "description": "The conditions that need to be met for the cluster to reach the desired state.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersCondition" + } + }, + "messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersMessage" + } + }, + "kubernetes_status": { + "description": "Current setting for Clusters.KubernetesStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersKubernetesStatus" + }, + "kubernetes_status_messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersMessage" + } + }, + "api_server_management_endpoint": { + "description": "Kubernetes API Server IP address on the management network. This is a floating IP and assigned to one of the control plane VMs on the management network. This endpoint is used by vSphere components.", + "type": "string" + }, + "api_server_cluster_endpoint": { + "description": "Kubernetes API Server IP address via cluster network. This is the IP address of the Kubernetes LoadBalancer type service fronting the apiservers. This endpoint is the one configured in kubeconfig after login, and used for most human and application interaction with Kubernetes.", + "type": "string" + }, + "api_servers": { + "description": "Identifier of the Kubernetes API servers. These are the IP addresses of the VM instances for the Kubernetes control plane on the management network.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "tls_management_endpoint_certificate": { + "description": "PEM-encoded x509 certificate used by TLS endpoint on Kubernetes API servers when accessed from the management network, e.g. from ESX servers or VCSA.\nset only when Clusters.Info.api-server-management-endpoint is used.", + "type": "string" + }, + "tls_endpoint_certificate": { + "description": "PEM-encoded x509 certificate(s) used by TLS endpoint on Kubernetes API servers when accessed via the load balancer, e.g. devops user on corporate network. In case of a certificates chain, the order of the certificates in this field is important. The first certificate must be the leaf certificate for your domain name, the second the intermediate certificate(s) and the last one must be the root certificate.\nset only when Clusters.Info.api-server-management-endpoint is used.", + "type": "string" + }, + "network_provider": { + "description": "The provider of cluster networking for this vSphere Namespaces cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "ncp_cluster_network_info": { + "description": "Specification for the NSX Container Plugin cluster network.\nThis field is optional and it is only relevant when the value of Clusters.Info.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNCPClusterNetworkInfo" + }, + "workload_networks": { + "description": "Information about workload networks associated with the cluster.\nThis field is optional and it is only relevant when the value of Clusters.Info.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersWorkloadNetworksInfo" + }, + "workload_ntp_servers": { + "description": "Information about NTP server DNS names or IP addresses to use for workloads such as Tanzu Kubernetes Grid VMs, specified in order of preference.\nunset when NTP server for Kubernetes API servers is used.", + "type": "array", + "items": { + "type": "string" + } + }, + "load_balancers": { + "description": "Information related to the Load balancer used for provisioning virtual servers in the namespace.\nThis field is optional and it is only relevant when the value of Clusters.Info.network-provider is VSPHERE_NETWORK.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersInfo" + } + }, + "service_cidr": { + "description": "CIDR block from which Kubernetes allocates service cluster IP addresses.", + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + }, + "master_management_network": { + "description": "Specification for the management network on Kubernetes API server.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkSpec" + }, + "master_DNS": { + "description": "List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, no default DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "worker_DNS": { + "description": "List of DNS server IP addresses to use for pods that execute on the worker nodes (which are native pods on ESXi hosts in the vSphere Namespaces Supervisor).\nIf unset, no default DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_storage_policy": { + "description": "Identifier of storage policy associated with Kubernetes API server.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "ephemeral_storage_policy": { + "description": "Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "cns_file_config": { + "description": "Specification for configuring Cloud Native Storage file volume support on Supervisor. This feature provides support for provisioning ReadWriteMany persistent volumes on this cluster and/or external clusters.\nIf unset, it means the file volume support is not enabled on this Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementCNSFileConfig" + }, + "login_banner": { + "description": "Disclaimer to be displayed prior to login via the Kubectl plugin.\nIf unset, just skip it.", + "type": "string" + }, + "Master_DNS_names": { + "description": "List of DNS names to associate with the Kubernetes API server. These DNS names are embedded in the TLS certificate presented by the API server.\nIf unset, no DNS names are embedded in the TLS certificate.", + "type": "array", + "items": { + "type": "string" + } + }, + "image_storage": { + "description": "Specification for storage to be used for container images.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageStorageSpec" + }, + "default_image_registry": { + "description": "Default image registry to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, defaults to Docker Hub.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageRegistry" + }, + "default_image_repository": { + "description": "Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, defaults to Docker Hub official repository in case of Docker Hub image registry, otherwise defaults to empty string.", + "type": "string" + }, + "master_DNS_search_domains": { + "description": "List of domains (for example \"vmware.com\") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.\nIf unset, no default DNS search domains are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_NTP_servers": { + "description": "List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, VMware Tools based time synchronization is enabled.", + "type": "array", + "items": { + "type": "string" + } + }, + "default_kubernetes_service_content_library": { + "description": "Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service. This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository.\nIf unset, a default subscribed Content Library will be created. It will sync VMware-supplied images for Tanzu Kubernetes Grid over the internet.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "cluster_proxy_config": { + "description": "Proxy configuration that is applied to the Supervisor. The proxy should be reachable from the management network and is used for image pulling and container traffic exiting out of the Supervisor. \n Note that the proxy password will be removed from the URLs as per Section 3.2.1 of RFC3986 security recommendation.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementProxyConfiguration" + }, + "content_libraries": { + "description": "List of Content Libraries associated with a Supervisor. This list refers to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them are read-only across all vSphere Namespaces. This list does not overlap with the defaultKubernetesServiceContentLibrary.\nIf unset, no additional Content Libraries will be set for the Supervisor apart from the default Kubernetes Service Content Library.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersContentLibrarySpec" + } + } + }, + "required": [ + "stat_summary", + "config_status", + "messages", + "kubernetes_status", + "kubernetes_status_messages", + "api_server_management_endpoint", + "api_server_cluster_endpoint", + "api_servers", + "network_provider", + "service_cidr" + ] + }, + "VcenterNamespaceManagementClustersIpv4Range": { + "type": "object", + "properties": { + "starting_address": { + "description": "The IPv4 address denoting the start of the range.", + "type": "string" + }, + "address_count": { + "description": "The number of IP addresses in the range. Addresses are derived by incrementing Clusters.Ipv4Range.starting-address.", + "type": "integer", + "format": "int64" + }, + "subnet_mask": { + "description": "Subnet mask to be set.", + "type": "string" + }, + "gateway": { + "description": "The IPv4 address of the gateway associated with the range indicated by Clusters.Ipv4Range.starting-address and Clusters.Ipv4Range.address-count.", + "type": "string" + } + }, + "required": [ + "starting_address", + "address_count", + "subnet_mask", + "gateway" + ] + }, + "VcenterNamespaceManagementClustersKubernetesStatus": { + "type": "string", + "description": "The Clusters.KubernetesStatus enumerated type describes the cluster's ability to deploy pods.", + "enum": [ + "READY", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementClustersMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersMessageSeverity" + }, + "details": { + "description": "Details about the message.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "kb_article_link": { + "description": "Optional link to a KB article providing more details about the message.\nif unset there is not KB article associated with the message.", + "type": "string" + }, + "id": { + "description": "Unique identifier of the message.\nif unset there is no id associated with the message.", + "type": "string" + } + }, + "required": [ + "severity" + ] + }, + "VcenterNamespaceManagementClustersMessageSeverity": { + "type": "string", + "description": "The Clusters.Message.Severity enumerated type represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementClustersNCPClusterNetworkEnableSpec": { + "type": "object", + "properties": { + "pod_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates pod IP addresses. This range should not overlap with those in Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkEnableSpec.ingress-cidrs, Clusters.NCPClusterNetworkEnableSpec.egress-cidrs, or other services running in the datacenter. All Pod CIDR blocks must be of at least subnet size /23.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. These ranges should not overlap with those in Clusters.NCPClusterNetworkEnableSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkEnableSpec.egress-cidrs, or other services running in the datacenter.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges should not overlap with those in Clusters.NCPClusterNetworkEnableSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkEnableSpec.ingress-cidrs, or other services running in the datacenter.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "cluster_distributed_switch": { + "description": "vSphere Distributed Switch used to connect this cluster.\nThis field is required when configuring a cluster that uses NSX-T. If unset and using NSXe, the system will choose a suitable vSphere Distributed Switch.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedSwitch.", + "type": "string" + }, + "nsx_edge_cluster": { + "description": "NSX Edge Cluster to be used for Kubernetes Services of type LoadBalancer, Kubernetes Ingresses, and NSX SNAT.\nThis field is required when configuring a cluster that uses NSX-T. If unset and using NSXe, the system will choose a suitable NSX Edge Cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXEdgeCluster. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXEdgeCluster.", + "type": "string" + }, + "nsx_tier0_gateway": { + "description": "NSX Tier0 Gateway used for this cluster.\nThis field is required when configuring a cluster that uses NSX-T.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "namespace_subnet_prefix": { + "description": "Size of the subnet reserved for namespaces segments.\nIf unset, defaults to 28.", + "type": "integer", + "format": "int64" + }, + "routed_mode": { + "description": "Routed mode for this cluster. When set to True, the traffic in the cluster is not NATed. When this field is set to True, Clusters.NCPClusterNetworkEnableSpec.egress-cidrs is not allowed.\nIf unset, defaults to False.", + "type": "boolean" + } + }, + "required": [ + "pod_cidrs", + "ingress_cidrs", + "egress_cidrs" + ] + }, + "VcenterNamespaceManagementClustersNCPClusterNetworkInfo": { + "type": "object", + "properties": { + "pod_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates pod IP addresses.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "cluster_distributed_switch": { + "description": "vSphere Distributed Switch used to connect this cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedSwitch.", + "type": "string" + }, + "nsx_edge_cluster": { + "description": "NSX Edge Cluster to be used for Kubernetes Services of type LoadBalancer, Kubernetes Ingresses, and NSX SNAT.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXEdgeCluster. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXEdgeCluster.", + "type": "string" + }, + "default_ingress_tls_certificate": { + "description": "PEM-encoded x509 certificate used by NSX as a default fallback certificate for Kubernetes Ingress services.", + "type": "string" + }, + "nsx_tier0_gateway": { + "description": "NSX Tier0 Gateway used for this cluster.\nThis is set when the cluster uses NSX-T.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "namespace_subnet_prefix": { + "description": "Size of the subnet reserved for namespaces segments.\nIf unset, defaults to 28.", + "type": "integer", + "format": "int64" + }, + "routed_mode": { + "description": "Routed mode for this cluster.\nIf unset, defaults to False.", + "type": "boolean" + } + }, + "required": [ + "pod_cidrs", + "ingress_cidrs", + "egress_cidrs", + "cluster_distributed_switch", + "nsx_edge_cluster", + "default_ingress_tls_certificate" + ] + }, + "VcenterNamespaceManagementClustersNCPClusterNetworkSetSpec": { + "type": "object", + "properties": { + "pod_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates pod IP addresses. This range should not overlap with those in Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkSetSpec.ingress-cidrs, Clusters.NCPClusterNetworkSetSpec.egress-cidrs, or other services running in the datacenter. A set operation only allows for addition of new CIDR blocks to the existing list. All Pod CIDR blocks must be of at least subnet size /23.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. These ranges should not overlap with those in Clusters.NCPClusterNetworkSetSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkSetSpec.egress-cidrs, or other services running in the datacenter. A set operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges should not overlap with those in Clusters.NCPClusterNetworkSetSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkSetSpec.ingress-cidrs, or other services running in the datacenter. A set operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "default_ingress_tls_certificate": { + "description": "PEM-encoded x509 certificate used by NSX as a default fallback certificate for Kubernetes Ingress services.", + "type": "string" + } + }, + "required": [ + "pod_cidrs", + "ingress_cidrs", + "egress_cidrs", + "default_ingress_tls_certificate" + ] + }, + "VcenterNamespaceManagementClustersNCPClusterNetworkUpdateSpec": { + "type": "object", + "properties": { + "pod_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates pod IP addresses. This range should not overlap with those in Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkUpdateSpec.ingress-cidrs, Clusters.NCPClusterNetworkUpdateSpec.egress-cidrs, or other services running in the datacenter. An update operation only allows for addition of new CIDR blocks to the existing list. All Pod CIDR blocks must be of at least subnet size /23.\nIf unset, CIDRs from which Kubernetes allocates pod IP addresses will not be modified.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. These ranges should not overlap with those in Clusters.NCPClusterNetworkUpdateSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkUpdateSpec.egress-cidrs, or other services running in the datacenter. An update operation only allows for addition of new CIDR blocks to the existing list.\nIf unset, CIDRs from which Kubernetes allocates ingress IP addresses will not be modified.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges should not overlap with those in Clusters.NCPClusterNetworkUpdateSpec.pod-cidrs, Clusters.EnableSpec.service-cidr, Clusters.NCPClusterNetworkUpdateSpec.ingress-cidrs, or other services running in the datacenter. An update operation only allows for addition of new CIDR blocks to the existing list.\nIf unset, CIDR from which Kubernetes allocates egress IP addresses will not be modified.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "default_ingress_tls_certificate": { + "description": "PEM-encoded x509 certificate used by NSX as a default fallback certificate for Kubernetes Ingress services.\nIf unset, the Kubernetes Ingress services certificate will not be modified.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementClustersNetworkProvider": { + "type": "string", + "description": "Identifies the network plugin that cluster networking functionalities for this vSphere Namespaces Cluster.", + "enum": [ + "NSXT_CONTAINER_PLUGIN", + "VSPHERE_NETWORK" + ] + }, + "VcenterNamespaceManagementClustersNetworkSpec": { + "type": "object", + "properties": { + "floating_IP": { + "description": "Optionally specify the Floating IP used by the cluster control plane in case of DHCP.\nIf unset, the existing effective management network floating IP will be used.", + "type": "string" + }, + "network": { + "description": "Identifier for the network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "mode": { + "description": "The address assignment mode.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkSpecIpv4Mode" + }, + "address_range": { + "description": "Settings for the interfaces on the network.\nThis field is optional and it is only relevant when the value of Clusters.NetworkSpec.mode is STATICRANGE.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersIpv4Range" + } + }, + "required": [ + "network", + "mode" + ] + }, + "VcenterNamespaceManagementClustersNetworkSpecIpv4Mode": { + "type": "string", + "description": "The Clusters.NetworkSpec.Ipv4Mode enumerated type defines various IPv4 address assignment modes.", + "enum": [ + "DHCP", + "STATICRANGE" + ] + }, + "VcenterNamespaceManagementClustersSet": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersSetSpec", + "description": "New specification for the Supervisor cluster." + }, + "VcenterNamespaceManagementClustersSetSpec": { + "type": "object", + "properties": { + "size_hint": { + "description": "This affects the size and resources allocated to the Kubernetes API server.", + "$ref": "#/definitions/VcenterNamespaceManagementSizingHint" + }, + "floating_IP": { + "description": "Optionally, you can edit the floating IP address that is assigned to the Supervisor in case the DHCP server fails during the Supervisor enablement process. The field is only relevant when the DHCP mode of the Supervisor management network is set with Clusters.EnableSpec.master-management-network. Set this floating IP parameter to remediate a supervisor enablement failure in the case where it was detected that the DHCP server does not support DHCP client identifiers.\nIf unset, the existing effective management network floating IP will not be modified.", + "type": "string" + }, + "network_provider": { + "description": "The provider of cluster networking for this vSphere Namespaces cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "ncp_cluster_network_spec": { + "description": "Specification for the NSX Container Plugin cluster network.\nThis field is optional and it is only relevant when the value of Clusters.SetSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNCPClusterNetworkSetSpec" + }, + "master_DNS": { + "description": "List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, DNS servers set on Kubernetes API server will be cleared.", + "type": "array", + "items": { + "type": "string" + } + }, + "worker_DNS": { + "description": "List of DNS server IP addresses to use on the worker nodes, specified in order of preference.\nIf unset, DNS servers set on worker nodes will be cleared.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_DNS_search_domains": { + "description": "List of domains (for example \"vmware.com\") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.\nIf unset, DNS search domains set on Kubernetes API server will be cleared.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_NTP_servers": { + "description": "List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference.\nIf unset, VMware Tools based time synchronization is enabled and any set NTP servers are cleared.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_storage_policy": { + "description": "Identifier of storage policy associated with Kubernetes API server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "ephemeral_storage_policy": { + "description": "Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "cns_file_config": { + "description": "Specification for configuring Cloud Native Storage file volume support on Supervisor. This feature provides support for provisioning ReadWriteMany persistent volumes on this cluster and/or external clusters.\nIf unset, file volume support will not be enabled on this Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementCNSFileConfig" + }, + "login_banner": { + "description": "Disclaimer to be displayed prior to login via the Kubectl plugin.\nIf unset, disclaimer to be displayed prior to login via the Kubectl plugin will be cleared.", + "type": "string" + }, + "Master_DNS_names": { + "description": "List of DNS names to associate with the Kubernetes API server. These DNS names are embedded in the CSR for TLS certificate presented by the API server. The provided value will replace existing DNS names.\nIf unset, existing DNS names will be cleared.", + "type": "array", + "items": { + "type": "string" + } + }, + "image_storage": { + "description": "Specification for storage to be used for container images.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageStorageSpec" + }, + "default_image_registry": { + "description": "Default image registry to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, default image registry will be set to Docker Hub.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageRegistry" + }, + "default_image_repository": { + "description": "Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, default image repository will be set to Docker Hub official repository in case of Docker Hub image registry, otherwise will be set to empty string.", + "type": "string" + }, + "default_kubernetes_service_content_library": { + "description": "Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service. This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository. Modifying or clearing the Content Library identifier will not affect existing vSphere Kubernetes Service clusters. However, upgrades or scale-out of existing clusters may be affected if the new Content Library doesn't have the necessary VM Images.\nIf unset, the Content Library identifier will be cleared.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "workload_ntp_servers": { + "description": "List of NTP server DNS names or IP addresses to use for workloads such as Tanzu Kubernetes Grid VMs, specified in order of preference.\nIf unset, NTP for Kubernetes API servers will be used.", + "type": "array", + "items": { + "type": "string" + } + }, + "cluster_proxy_config": { + "description": "Proxy configuration that will be applied to the Supervisor. The proxy should be reachable from the management network and will be used for image pulling and container traffic exiting out of the Supervisor. Modifying these settings will result in a restart of the container runtime. Workloads might fail to pull their images for a short period of time. There will be no effect on the currently running containers.\nIf unset the settings will be inherited from the vCenter settings if available.", + "$ref": "#/definitions/VcenterNamespaceManagementProxyConfiguration" + }, + "content_libraries": { + "description": "List of Content Libraries that will be associated a the Supervisor. This list should refer to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them will be read-only across all vSphere Namespaces. This list cannot overlap with the defaultKubernetesServiceContentLibrary.\nIf unset, no additional Content Libraries will be set for the Supervisor apart from the default Kubernetes Service Content Library.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersContentLibrarySpec" + } + } + }, + "required": [ + "size_hint", + "network_provider", + "master_storage_policy", + "ephemeral_storage_policy", + "image_storage" + ] + }, + "VcenterNamespaceManagementClustersStats": { + "type": "object", + "properties": { + "cpu_used": { + "description": "Overall CPU usage of the cluster, in MHz. This is the sum of CPU usage across all worker nodes in the cluster.", + "type": "integer", + "format": "int64" + }, + "cpu_capacity": { + "description": "Total CPU capacity in the cluster available for vSphere Namespaces, in MHz. This is the sum of CPU capacities from all worker nodes in the cluster.", + "type": "integer", + "format": "int64" + }, + "memory_used": { + "description": "Overall memory usage of the cluster, in mebibytes. This is the sum of memory usage across all worker nodes in the cluster.", + "type": "integer", + "format": "int64" + }, + "memory_capacity": { + "description": "Total memory capacity of the cluster available for vSphere Namespaces, in mebibytes. This is the sum of memory capacities from all worker nodesin the cluster.", + "type": "integer", + "format": "int64" + }, + "storage_used": { + "description": "Overall storage used by the cluster, in mebibytes. This is the sum of storage used across all worker nodes in the cluster.", + "type": "integer", + "format": "int64" + }, + "storage_capacity": { + "description": "Overall storage capacity of the cluster available for vSphere Namespaces, in mebibytes. This is the sum of total storage available from all worker nodes in the cluster.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "cpu_used", + "cpu_capacity", + "memory_used", + "memory_capacity", + "storage_used", + "storage_capacity" + ] + }, + "VcenterNamespaceManagementClustersSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "cluster_name": { + "description": "Name of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.name.", + "type": "string" + }, + "stats": { + "description": "Basic runtime statistics for the cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersStats" + }, + "config_status": { + "description": "Current setting for Clusters.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersConfigStatus" + }, + "kubernetes_status": { + "description": "Current setting for Clusters.KubernetesStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersKubernetesStatus" + } + }, + "required": [ + "cluster", + "cluster_name", + "stats", + "config_status", + "kubernetes_status" + ] + }, + "VcenterNamespaceManagementClustersUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersUpdateSpec", + "description": "New specification for the Supervisor cluster." + }, + "VcenterNamespaceManagementClustersUpdateSpec": { + "type": "object", + "properties": { + "size_hint": { + "description": "This affects the size and resources allocated to the Kubernetes API server.\nIf unset, size and resources allocated to Kubernetes API server will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementSizingHint" + }, + "floating_IP": { + "description": "Optionally, you can edit the floating IP address that is assigned to the Supervisor in case the DHCP server fails during the Supervisor enablement process. The field is only relevant when the DHCP mode of the Supervisor management network is set with Clusters.EnableSpec.master-management-network. Set this floating IP parameter to remediate a supervisor enablement failure in the case where it was detected that the DHCP server does not support DHCP client identifiers.\nIf unset, the existing effective management network floating IP will not be modified.", + "type": "string" + }, + "network_provider": { + "description": "The provider of cluster networking for this vSphere Namespaces cluster.\nIf unset, the existing effective cluster network specification will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "ncp_cluster_network_spec": { + "description": "Updated specification for the cluster network configuration.\nIf unset, the existing effective cluster network specification will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNCPClusterNetworkUpdateSpec" + }, + "master_DNS": { + "description": "List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.\nIf set, DNS servers set on Kubernetes API server will be replaced. Otherwise, they will not be modified.", + "type": "array", + "items": { + "type": "string" + } + }, + "worker_DNS": { + "description": "List of DNS server IP addresses to use on the worker nodes, specified in order of preference.\nIf set, DNS servers set on worker nodes will be replaced. Otherwise, they will not be modified.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_DNS_search_domains": { + "description": "List of domains (for example \"vmware.com\") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.\nIf set, DNS search domains on Kubernetes API server will be replaced. Otherwise, they will not be modified.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_NTP_servers": { + "description": "List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference.\nIf set, NTP servers on Kubernetes API server will be replaced. Otherwise, they will not be modified.", + "type": "array", + "items": { + "type": "string" + } + }, + "master_storage_policy": { + "description": "Identifier of storage policy associated with Kubernetes API server.\nIf unset, storage policy associated with Kubernetes API server will not be modified.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "ephemeral_storage_policy": { + "description": "Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster.\nIf unset, storage policy associated with ephemeral disks of all the Kubernetes Pods will not be modified.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "cns_file_config": { + "description": "Specification for configuring Cloud Native Storage file volume support on Supervisor. This feature provides support for provisioning ReadWriteMany persistent volumes on this cluster and/or external clusters.\nIf unset, configuration for file volumes will remain unchanged.", + "$ref": "#/definitions/VcenterNamespaceManagementCNSFileConfig" + }, + "login_banner": { + "description": "Disclaimer to be displayed prior to login via the Kubectl plugin.\nIf unset, disclaimer to be displayed prior to login via the Kubectl plugin will not be modified.", + "type": "string" + }, + "Master_DNS_names": { + "description": "List of DNS names to associate with the Kubernetes API server. These DNS names are embedded in the CSR for TLS certificate presented by the API server. The provided value will replace existing DNS names.\nIf unset, existing DNS names will not be modified.", + "type": "array", + "items": { + "type": "string" + } + }, + "image_storage": { + "description": "Specification for storage to be used for container images.\nIf unset, configuration of storage used for container images is not modified.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageStorageSpec" + }, + "default_image_registry": { + "description": "Default image registry to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, default image registry will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersImageRegistry" + }, + "default_image_repository": { + "description": "Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name.\nIf unset, default image repository will not be modified.", + "type": "string" + }, + "tls_endpoint_certificate": { + "description": "PEM-encoded x509 certificate(s) issued for Kubernetes API Server. Certificate(s) used must be created by signing the Certificate Signing Request obtained from the Namespace Certificate Management API. Because a Kubernetes CertificateSigningRequest is created on an existing Namespaces-enabled cluster, you must use the Clusters.UpdateSpec to specify this Clusters.UpdateSpec.tls-endpoint-certificate on an existing cluster rather than during initially enabling Namespaces on a cluster. In case of providing the trust chain, the certificates should be simply concatenated into a single string.\nIf unset, Kubernetes API Server certificate(s) will not be modified.", + "type": "string" + }, + "default_kubernetes_service_content_library": { + "description": "Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service. This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository. Modifying or clearing the Content Library identifier will not affect existing vSphere Kubernetes Service clusters. However, upgrades or scale-out of existing clusters may be affected if the new Content Library doesn't have the necessary VM Images.\nIf unset, the Content Library will will not be modified.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "workload_ntp_servers": { + "description": "List of NTP server DNS names or IP addresses to use for workloads such as Tanzu Kubernetes Grid VMs, specified in order of preference.\nIf unset, NTP servers for workloads will be unmodified.", + "type": "array", + "items": { + "type": "string" + } + }, + "cluster_proxy_config": { + "description": "Proxy configuration that will be applied to the Supervisor. The proxy should be reachable from the management network and will be used for image pulling and container traffic exiting out of the Supervisor. Modifying these settings will result in a restart of the container runtime. Workloads might fail to pull their images for a short period of time. There will be no effect on the currently running containers.\nIf unset no change will be made to the cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementProxyConfiguration" + }, + "content_libraries": { + "description": "List of Content Libraries that will be associated with a Supervisor. This list should refer to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them will be read-only across all vSphere Namespaces. This list cannot overlap with the defaultKubernetesServiceContentLibrary.\nIf unset, no additional Content Libraries will be set for the Supervisor apart from the default Kubernetes Service Content Library.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementClustersContentLibrarySpec" + } + } + } + }, + "VcenterNamespaceManagementClustersWorkloadNetworksEnableSpec": { + "type": "object", + "properties": { + "supervisor_primary_workload_network": { + "description": "The Networks#CreateSpec of the vSphere Namespaces network that will be used by Kubernetes control plane VMs to expose Kubernetes API server to devops users and other workloads. It can also used as backing network for Tanzu Kubernetes Cluster VMs.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksCreateSpec" + }, + "network_list": { + "description": "Networks#CreateSpec structurees for additional list of vSphere Namespaces networks to be associated with this cluster.\nIf unset no additional networks will be associated with the cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksCreateSpec" + } + } + }, + "required": [ + "supervisor_primary_workload_network" + ] + }, + "VcenterNamespaceManagementClustersWorkloadNetworksInfo": { + "type": "object", + "properties": { + "supervisor_primary_workload_network": { + "description": "vSphere Namespaces network used by Kubernetes control plane VMs to access load-balanced services on the various workload networks.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksInfo" + }, + "network_list": { + "description": "List of vSphere Namespaces networks associated with this cluster.\nIf unset no additional networks are associated with the cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksInfo" + } + } + }, + "required": [ + "supervisor_primary_workload_network" + ] + }, + "VcenterNamespaceManagementDistributedSwitchCompatibilityFilterSpec": { + "type": "object", + "properties": { + "compatible": { + "description": "Compatibility criteria for matching the filter. If true, only Distributed Switches which are compatible with vSphere Namespaces match the filter. If false, only Distributed Switches which are incompatible with vSphere Namespaces match the filter.\nIf unset, both compatible and incompatible Distributed Switches match the filter.", + "type": "boolean" + }, + "network_provider": { + "description": "The network provider whose networks will be considered. If unset, this will default to NSXT_CONTAINER_PLUGIN.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + } + } + }, + "VcenterNamespaceManagementDistributedSwitchCompatibilitySummary": { + "type": "object", + "properties": { + "distributed_switch": { + "description": "Identifier of the switch. If DistributedSwitchCompatibility.Summary.network-provider is either unset or is set to NSXT_CONTAINER_PLUGIN, the value of this field will refer to the UUID of a vim.DistributedVirtualSwitch. Otherwise, the value of the field will refer to the ID of a vim.DistributedVirtualSwitch.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedSwitch.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this switch with vSphere Namespaces.", + "type": "boolean" + }, + "incompatibility_reasons": { + "description": "List of reasons for incompatibility.\nIf unset, this Distributed Switch is compatible.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "network_provider": { + "description": "The network provider whose networks were considered.\nIf unset, clients clients should assume the value to be NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "compatible_networks": { + "description": "List of compatible (PortGroup) Networks under the distributed switch.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Network.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "distributed_switch", + "compatible" + ] + }, + "VcenterNamespaceManagementEdgeClusterCompatibilityFilterSpec": { + "type": "object", + "properties": { + "compatible": { + "description": "Compatibility criteria for matching the filter. If true, only Edge Clusters which are compatible with vSphere Namespaces match the filter. If false, only Edge Clusters which are incompatible with vSphere Namespaces match the filter.\nIf unset, both compatible and incompatible Edge Clusters match the filter.", + "type": "boolean" + } + } + }, + "VcenterNamespaceManagementEdgeClusterCompatibilitySummary": { + "type": "object", + "properties": { + "edge_cluster": { + "description": "Identifier of the Edge Cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXEdgeCluster. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXEdgeCluster.", + "type": "string" + }, + "display_name": { + "description": "Display name of the Edge Cluster.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this Edge Cluster with Namespaces feature.", + "type": "boolean" + }, + "incompatibility_reasons": { + "description": "List of reasons for incompatibility.\nIf unset, this Edge Cluster is compatible.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "edge_cluster", + "display_name", + "compatible" + ] + }, + "VcenterNamespaceManagementHostsConfigInfo": { + "type": "object", + "properties": { + "namespaces_supported": { + "description": "True if vSphere Namespace feature is supported in this VC.", + "type": "boolean" + }, + "namespaces_licensed": { + "description": "True if vSphere Namespace feature is licensed on any hosts in this VC.", + "type": "boolean" + } + }, + "required": [ + "namespaces_supported", + "namespaces_licensed" + ] + }, + "VcenterNamespaceManagementIPRange": { + "type": "object", + "properties": { + "address": { + "description": "The starting address of the range.", + "type": "string" + }, + "count": { + "description": "The number of IP addresses in the range.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "count" + ] + }, + "VcenterNamespaceManagementIpv4Cidr": { + "type": "object", + "properties": { + "address": { + "description": "The IPv4 address.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "VcenterNamespaceManagementLoadBalancersAviConfigCreateSpec": { + "type": "object", + "properties": { + "server": { + "description": "Server is the address for the Avi Controller, used to configure Virtual Servers.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + }, + "username": { + "description": "An administrator user name for accessing the Avi Controller.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + }, + "cloud_name": { + "description": "The cloud name for the Avi Controller.\nOnly set if custom cloud name is configured for this Avi Controller. If unset, it defaults to \"Default-Cloud\".", + "type": "string" + } + }, + "required": [ + "server", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersAviConfigSetSpec": { + "type": "object", + "properties": { + "server": { + "description": "Server is the address for the Avi Controller, used to configure Virtual Servers. Note: This field cannot be updated and should match existing value.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + }, + "username": { + "description": "An administrator user name for accessing the Avi Controller.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + } + }, + "required": [ + "server", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersAviConfigUpdateSpec": { + "type": "object", + "properties": { + "username": { + "description": "An administrator user name for accessing the Avi Controller.\nIf unset, the existing username will not be modified.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.\nIf unset, the existing password will not be modified.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.\nIf unset, the existing PEM-encoded CA chain will not be modified.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementLoadBalancersAviInfo": { + "type": "object", + "properties": { + "server": { + "description": "Server is the address for the Avi Controller, used to configure Virtual Servers.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + }, + "username": { + "description": "An administrator user name for accessing the Avi Controller.", + "type": "string" + }, + "certificate_authority_chain": { + "description": "PEM-encoded CA certificate chain which is used to verify x509 certificates received from the server.", + "type": "string" + }, + "cloud_name": { + "description": "The cloud name for the Avi Controller.\nOnly set if custom cloud name is configured for this Avi Controller. If unset, it defaults to \"Default-Cloud\".", + "type": "string" + } + }, + "required": [ + "server", + "username", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersConfigSpec": { + "type": "object", + "properties": { + "id": { + "description": "An identifier that identifies a load balancer and can be used to query or configure load balancer properties via these resources. The identifier has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string, with a maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name is unique across all Namespaces in this vCenter server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig.", + "type": "string" + }, + "address_ranges": { + "description": "List of address ranges that will be used to derive frontend IP addresses for L4 virtual servers. This field is ignored in case of Avi load balancer provider. In case of HA_PROXY load balancer provider, at least one range must be provided.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "provider": { + "description": "The LoadBalancers.ConfigSpec.provider selects a provider from the list of available providers to be used with vSphere Namespaces.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersProvider" + }, + "ha_proxy_config_create_spec": { + "description": "The LoadBalancers.HAProxyConfigCreateSpec is a conditional configuration made available upon selecting the HA_PROXY load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.ConfigSpec.provider is HA_PROXY.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersHAProxyConfigCreateSpec" + }, + "avi_config_create_spec": { + "description": "The LoadBalancers.AviConfigCreateSpec is a conditional configuration made available upon selecting the Avi load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.ConfigSpec.provider is AVI.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersAviConfigCreateSpec" + } + }, + "required": [ + "id", + "address_ranges", + "provider" + ] + }, + "VcenterNamespaceManagementLoadBalancersHAProxyConfigCreateSpec": { + "type": "object", + "properties": { + "servers": { + "description": "Servers is a list of the addresses for the data plane API servers used to configure Virtual Servers.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + } + }, + "username": { + "description": "An administrator user name for accessing the HAProxy Data Plane API server.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + } + }, + "required": [ + "servers", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersHAProxyConfigSetSpec": { + "type": "object", + "properties": { + "servers": { + "description": "Servers is a list of the addresses for the data plane API servers used to configure HAProxy. Note: This field cannot be updated and should match existing list of servers.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + } + }, + "username": { + "description": "An administrator user name for accessing the HAProxy Data Plane API server.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + } + }, + "required": [ + "servers", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersHAProxyConfigUpdateSpec": { + "type": "object", + "properties": { + "username": { + "description": "An administrator user name for accessing the HAProxy Data Plane API server.\nIf unset, the existing username will not be modified.", + "type": "string" + }, + "password": { + "description": "The password for the administrator user.\nIf unset, the existing password will not be modified.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "CertificateAuthorityChain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.\nIf unset, the existing PEM-encoded CA chain will not be modified.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementLoadBalancersHAProxyInfo": { + "type": "object", + "properties": { + "servers": { + "description": "A list of the addresses for the DataPlane API servers used to configure HAProxy.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersServer" + } + }, + "username": { + "description": "An administrator user name for accessing the HAProxy Data Plane API server.", + "type": "string" + }, + "certificate_authority_chain": { + "description": "PEM-encoded CA certificate chain which is used to verify x509 certificates received from the server.", + "type": "string" + } + }, + "required": [ + "servers", + "username", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementLoadBalancersInfo": { + "type": "object", + "properties": { + "id": { + "description": "An DNS compliant identifier for a load balancer, which can be used to query or configure the load balancer properties.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig.", + "type": "string" + }, + "address_ranges": { + "description": "IP address range from which virtual servers are assigned their IPs.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "provider": { + "description": "Load balancer provider for the namespace.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersProvider" + }, + "ha_proxy_info": { + "description": "The LoadBalancers.HAProxyInfo is a conditional configuration made available upon selecting the HA_PROXY load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.Info.provider is HA_PROXY.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersHAProxyInfo" + }, + "avi_info": { + "description": "The LoadBalancers.AviInfo is a conditional configuration made available upon selecting the Avi load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.Info.provider is AVI.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersAviInfo" + } + }, + "required": [ + "id", + "address_ranges", + "provider" + ] + }, + "VcenterNamespaceManagementLoadBalancersProvider": { + "type": "string", + "description": "The LoadBalancers.Provider enumerates the kinds of load balancers supported by vSphere Namespaces.", + "enum": [ + "HA_PROXY", + "AVI" + ] + }, + "VcenterNamespaceManagementLoadBalancersServer": { + "type": "object", + "properties": { + "host": { + "description": "Load balancer hostname or IPv4 address.", + "type": "string" + }, + "port": { + "description": "Load balancer port.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "host", + "port" + ] + }, + "VcenterNamespaceManagementLoadBalancersSet": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersSetSpec", + "description": "Information about the load balancer object to be set." + }, + "VcenterNamespaceManagementLoadBalancersSetSpec": { + "type": "object", + "properties": { + "address_ranges": { + "description": "List of address ranges that will be used to derive frontend IP addresses for L4 virtual servers. This field is ignored in case of Avi load balancer provider. In case of HA_PROXY load balancer provider, at least one range must be provided. A set operation only allows for addition of new IP ranges to the existing list of IP ranges.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "provider": { + "description": "The LoadBalancers.SetSpec.provider selects a provider from the list of available providers to be used with vSphere Namespaces.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersProvider" + }, + "ha_proxy_config_set_spec": { + "description": "The LoadBalancers.HAProxyConfigSetSpec is a conditional configuration made available upon selecting the HA_PROXY load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.SetSpec.provider is HA_PROXY.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersHAProxyConfigSetSpec" + }, + "avi_config_set_spec": { + "description": "The LoadBalancers.AviConfigSetSpec is a conditional configuration made available upon selecting the Avi load balancer provider. It is used to configure the load balancer at run time.\nThis field is optional and it is only relevant when the value of LoadBalancers.SetSpec.provider is AVI.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersAviConfigSetSpec" + } + }, + "required": [ + "address_ranges", + "provider" + ] + }, + "VcenterNamespaceManagementLoadBalancersSummary": { + "type": "object", + "properties": { + "id": { + "description": "An DNS compliant identifier for a load balancer, which can be used to query or configure the load balancer properties.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.LoadBalancerConfig.", + "type": "string" + }, + "provider": { + "description": "Load balancer provider for the namespace.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersProvider" + } + }, + "required": [ + "id", + "provider" + ] + }, + "VcenterNamespaceManagementLoadBalancersUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersUpdateSpec", + "description": "Information about the load balancer object to be updated." + }, + "VcenterNamespaceManagementLoadBalancersUpdateSpec": { + "type": "object", + "properties": { + "address_ranges": { + "description": "List of address ranges that will be used to derive frontend IP addresses for L4 virtual servers. This field is ignored in case of Avi load balancer provider. In case of HA_PROXY load balancer provider, at least one range must be provided. An update operation only allows for addition of new IP ranges to the existing list of IP ranges.\nIf unset, the existing list of address ranges will not be modified.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "provider": { + "description": "The LoadBalancers.UpdateSpec.provider selects a provider from the list of available providers to be used with vSphere Namespaces.\nIf set, corresponding load balancer UpdateSpec will be used to update the configuration. Note: This field cannot be updated and can only be used a qualifer for the provider specific update spec.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersProvider" + }, + "ha_proxy_config_update_spec": { + "description": "The LoadBalancers.HAProxyConfigUpdateSpec is a conditional configuration made available upon selecting the HA_PROXY load balancer provider. It is used to configure the load balancer at run time.\nIf unset, the HAProxy load balancer configuration will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersHAProxyConfigUpdateSpec" + }, + "avi_config_update_spec": { + "description": "The LoadBalancers.AviConfigUpdateSpec is a conditional configuration made available upon selecting the Avi load balancer provider. It is used to configure the load balancer at run time.\nIf unset, the Avi load balancer configuration will not be modified.", + "$ref": "#/definitions/VcenterNamespaceManagementLoadBalancersAviConfigUpdateSpec" + } + } + }, + "VcenterNamespaceManagementNSXTier0GatewaySummary": { + "type": "object", + "properties": { + "tier0_gateway": { + "description": "Identifier of the NSX-T Tier0 or Tier0-VRF Gateway.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "display_name": { + "description": "Display name of the NSX-T Gateway.", + "type": "string" + } + }, + "required": [ + "tier0_gateway", + "display_name" + ] + }, + "VcenterNamespaceManagementNamespaceResourceOptionsInfo": { + "type": "object", + "properties": { + "create_resource_quota_type": { + "description": "Identifier of the structure used to set resource quotas on the namespace. See vcenter.namespaces.Instances#create and vcenter.namespaces.Instances#set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + }, + "update_resource_quota_type": { + "description": "Identifier of the structure used to update resource quotas on the namespace. See vcenter.namespaces.Instances#update.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.structure. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.structure.", + "type": "string" + } + }, + "required": [ + "create_resource_quota_type", + "update_resource_quota_type" + ] + }, + "VcenterNamespaceManagementNetworksCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksCreateSpec", + "description": "Information about the network object to be created." + }, + "VcenterNamespaceManagementNetworksCreateSpec": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name must be unique within a cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.Network.", + "type": "string" + }, + "network_provider": { + "description": "The network provider that will manage the vSphere Namespaces network object.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "vsphere_network": { + "description": "The create spec for a DVPG-backed Namespaces network object, supported by VSPHERE_NETWORK network provider.\nThis field is optional and it is only relevant when the value of Networks.CreateSpec.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksVsphereDVPGNetworkCreateSpec" + }, + "nsx_network": { + "description": "The create spec for a NSXT-backed Namespaces network configuration, supported by NSXT_CONTAINER_PLUGIN network provider.\nThis field is optional and it is only relevant when the value of Networks.CreateSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxNetworkCreateSpec" + } + }, + "required": [ + "network", + "network_provider" + ] + }, + "VcenterNamespaceManagementNetworksEdgesEdge": { + "type": "object", + "properties": { + "id": { + "description": "Edge.id is a unique identifier that can be referenced for updates.\nIf unset, an ID will be automatically generated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.network.edge.Edge. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.network.edge.Edge.", + "type": "string" + }, + "load_balancer_address_ranges": { + "description": "Edge.load-balancer-address-ranges defines the list of addresses that a load balancer can consume to publish Kubernetes services. This range must contain at least one IP address unless the Avi provider is selected. It is recommended to supply a large enough range to support load balancers requested for pods in the control plane and Tanzu Clusters.\nThis field must be set if Edge.provider is not an NSX Advanced Load Balancer,", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPRange" + } + }, + "haproxy": { + "description": "Edge.haproxy defines configuration for the HAProxy Load Balancer.\nThis field is optional and it is only relevant when the value of Edge.provider is HAPROXY.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesHAProxyConfig" + }, + "nsx": { + "description": "Edge.nsx defines configuration for the NSX Load Balancer.\nThis field is optional and it is only relevant when the value of Edge.provider is NSX.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesNSXConfig" + }, + "nsx_advanced": { + "description": "Edge.nsx-advanced defines configuration for the NSX Advanced Load Balancer and Ingress Software.\nThis field is optional and it is only relevant when the value of Edge.provider is NSX_ADVANCED.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesNSXAdvancedLBConfig" + }, + "provider": { + "description": "Edge.provider specifies the vendor providing edge services.\nA provider is required to enable edge services for a cluster.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesEdgeProvider" + } + } + }, + "VcenterNamespaceManagementNetworksEdgesEdgeProvider": { + "type": "string", + "description": "EdgeProvider describes the supported available edge services. An NSX edge are used on NSX-T networks, but \"Advanced NSX\" and HAProxy edges are used on VDS networks.", + "enum": [ + "HAPROXY", + "NSX", + "NSX_ADVANCED" + ] + }, + "VcenterNamespaceManagementNetworksEdgesHAProxyConfig": { + "type": "object", + "properties": { + "servers": { + "description": "HAProxyConfig.servers is a list of the addresses for the data plane API servers used to configure Virtual Servers.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesServer" + } + }, + "username": { + "description": "HAProxyConfig.username is used by the HAProxy Kubernetes Operator to program the HAProxy Controller.", + "type": "string" + }, + "password": { + "description": "HAProxyConfig.password secures the HAProxyConfig.username.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "HAProxyConfig.certificate-authority-chain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + } + }, + "required": [ + "servers", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementNetworksEdgesLoadBalancerSize": { + "type": "string", + "description": "The LoadBalancerSize structure enumerates load balancer sizes supported by NSX.", + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "VcenterNamespaceManagementNetworksEdgesNSXAdvancedLBConfig": { + "type": "object", + "properties": { + "server": { + "description": "NSXAdvancedLBConfig.server is the address for the Avi Controller, used to configure Virtual Servers.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesServer" + }, + "username": { + "description": "NSXAdvancedLBConfig.username is used by the Avi Kubernetes Operator to program the Avi Controller.", + "type": "string" + }, + "password": { + "description": "NSXAdvancedLBConfig.password is the password for the username.", + "type": "string", + "format": "password" + }, + "certificate_authority_chain": { + "description": "NSXAdvancedLBConfig.certificate-authority-chain contains PEM-encoded CA chain which is used to verify x509 certificates received from the server.", + "type": "string" + }, + "cloud_name": { + "description": "The cloud name for the Avi Controller.\nOnly set if custom cloud name is configured for this Avi Controller. If unset, it defaults to \"Default-Cloud\".", + "type": "string" + } + }, + "required": [ + "server", + "username", + "password", + "certificate_authority_chain" + ] + }, + "VcenterNamespaceManagementNetworksEdgesNSXConfig": { + "type": "object", + "properties": { + "edge_cluster_ID": { + "description": "NSXConfig.edge-cluster-id defines the NSX Edge Cluster to be used for Kubernetes Services of type LoadBalancer, Kubernetes Ingresses, and NSX SNAT.\nDefaults to a the edge cluster created earliest.", + "type": "string" + }, + "default_ingress_TLS_certificate": { + "description": "NSXConfig.default-ingress-tls-certificate defines a default certificate that is served on Ingress services, when another certificate is not presented. This configuration applies to all namespaces by default.\nIf unset, there will be no certificate served on Ingress.", + "type": "string" + }, + "routing_mode": { + "description": "NSXConfig.routing-mode enables the network topology in either NAT mode or Routed Mode. Enabling routed mode will result in all the workloads i.e vSphere PODs, VMs and Tanzu clusters Node IPs to be directly accessible from networks beyond the Tier-0 router. Once a namespace mode is applied, it cannot be changed.\nThe default setting is NAT mode.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesNSXRoutingMode" + }, + "egress_IP_ranges": { + "description": "NSXConfig.egress-ip-ranges lists the IP Ranges from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges must not overlap with other IP ranges on this network.\nIf this range is empty, network traffic will not be able to exit the cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPRange" + } + }, + "t0_gateway": { + "description": "NSXConfig.t0-gateway specifies the default Tier-0 gateway ID for the namespaces configuration.\nIf unset, the default Tier-0 gateway from the edge cluster is used.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "load_balancer_size": { + "description": "NSXConfig.load-balancer-size describes the load balancer sizing options available. Larger sizes support more active virtual servers, but consume more resources.\nIf unset, the size defaults to small.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesLoadBalancerSize" + } + } + }, + "VcenterNamespaceManagementNetworksEdgesNSXRoutingMode": { + "type": "string", + "description": "NSXRoutingMode enum defines an enumeration of available routing modes.", + "enum": [ + "ROUTED", + "NAT" + ] + }, + "VcenterNamespaceManagementNetworksEdgesServer": { + "type": "object", + "properties": { + "host": { + "description": "Server.host specifies a the management hostname or IPv4 address for a load balancer.", + "type": "string" + }, + "port": { + "description": "Server.port specifies a management port used to access a load balancer.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "host", + "port" + ] + }, + "VcenterNamespaceManagementNetworksIPAssignment": { + "type": "object", + "properties": { + "assignee": { + "description": "IPAssignment.assignee is the role assignee for the given IP Ranges.\nThis field defaults to ANY.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPAssignmentAssignment" + }, + "ranges": { + "description": "IPAssignment.ranges lists the available IP addresses that can be consumed by Supervisor to run the cluster.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPRange" + } + } + }, + "required": [ + "ranges" + ] + }, + "VcenterNamespaceManagementNetworksIPAssignmentAssignment": { + "type": "string", + "description": "IPAssignment.Assignment lists the different entities that require IP ranges. These assignments fulfill different needs in the Kubernetes environment.", + "enum": [ + "POD", + "NODE", + "SERVICE" + ] + }, + "VcenterNamespaceManagementNetworksIPAssignmentMode": { + "type": "string", + "description": "The Networks.IPAssignmentMode enumerated type defines various IP address assignment modes.", + "enum": [ + "DHCP", + "STATICRANGE" + ] + }, + "VcenterNamespaceManagementNetworksIPManagement": { + "type": "object", + "properties": { + "dhcp_enabled": { + "description": "IPManagement.dhcp-enabled If set true, configures IP address using the DHCP server on the broadcast domain unless the corresponding IPManagement.ip-assignments are set.\nIf unset this field defaults to true.", + "type": "boolean" + }, + "gateway_address": { + "description": "IPManagement.gateway-address is the IP address combined with the subnet prefix length (e.g. 192.168.1.1/24) of the default gateway of this network.\nIf IPManagement.dhcp-enabled is not set, or this is an NSX network, this address must be set.", + "type": "string" + }, + "ip_assignments": { + "description": "IPManagement.ip-assignments are a list of roles that can be allocated to IP addresses. If IPManagement.gateway-address is specified, these assignments must be on the same subnet.\nThese assignments are optional when using DHCP.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPAssignment" + } + } + } + }, + "VcenterNamespaceManagementNetworksIPRange": { + "type": "object", + "properties": { + "address": { + "description": "IPRange.address is the starting IP address of the IPRange.", + "type": "string" + }, + "count": { + "description": "IPRange.count is number of IP addresses in the range.\n \nFor example:\n \nA /24 subnet will have a count of 256.\n \nA /24 subnet with a gateway address and a broadcast address will have a count of 254.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "count" + ] + }, + "VcenterNamespaceManagementNetworksInfo": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.Network.", + "type": "string" + }, + "network_provider": { + "description": "The network provider that will manage the vSphere Namespaces network object.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "vsphere_network": { + "description": "Updated configuration specification for a DVPG-backed Namespaces network object, supported by VSPHERE_NETWORK network provider.\nThis field is optional and it is only relevant when the value of Networks.Info.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksVsphereDVPGNetworkInfo" + }, + "nsx_network": { + "description": "Configuration specification for a NSXT-backed Namespaces network configuration, supported by NSXT_CONTAINER_PLUGIN network provider.\nThis field is optional and it is only relevant when the value of Networks.Info.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxNetworkInfo" + }, + "namespaces": { + "description": "A list of Supervisor Namespaces associated with this network.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespaces.Instance.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "network", + "network_provider" + ] + }, + "VcenterNamespaceManagementNetworksLoadBalancerSize": { + "type": "string", + "description": "The Networks.LoadBalancerSize enumerates the kinds of load balancer sizes supported by NSX. Small load balancer can host 10 to 20 virtual servers depending on NSX-T version. Medium load balancer can host 100 virtual servers. Large load balancer can host 1000 virtual servers.", + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "VcenterNamespaceManagementNetworksNsxDistributedSwitchesCompatibilitySummary": { + "type": "object", + "properties": { + "distributed_switch": { + "description": "Identifier of the switch. The value of this field refers to the UUID of a vim.DistributedVirtualSwitch.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedSwitch.", + "type": "string" + }, + "name": { + "description": "Human-readable identifier of the switch.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this Distributed Switch with the vSphere Namespaces.", + "type": "boolean" + }, + "incompatibility_reasons": { + "description": "List of reasons for incompatibility. If empty, this Distributed Switch is compatible.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "distributed_switch", + "name", + "compatible", + "incompatibility_reasons" + ] + }, + "VcenterNamespaceManagementNetworksNsxDistributedSwitchesFilterSpec": { + "type": "object", + "properties": { + "compatible": { + "description": "Compatibility criteria. If true, only Distributed Switches compatible with the vSphere Namespaces will be returned. If false, only Distributed Switches incompatible with the vSphere Namespaces will be returned.\nIf unset, both compatible and incompatible Distributed Switches will be returned.", + "type": "boolean" + }, + "zones": { + "description": "Zone compatibility criteria. If zones are specified, the common distributed switches across the given zones will returned. A distributed switch is considered common if it is present in all of the vSphere clusters in a given zone.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "zones" + ] + }, + "VcenterNamespaceManagementNetworksNsxEdgesCompatibilitySummary": { + "type": "object", + "properties": { + "edge_cluster": { + "description": "Identifier of the Edge.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXEdgeCluster. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXEdgeCluster.", + "type": "string" + }, + "name": { + "description": "User-friendly identifier of the Edge.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this Edge with vSphere Namespaces.", + "type": "boolean" + }, + "incompatibility_reasons": { + "description": "List of reasons for incompatibility. If empty, this Edge is compatible.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "edge_cluster", + "name", + "compatible", + "incompatibility_reasons" + ] + }, + "VcenterNamespaceManagementNetworksNsxEdgesFilterSpec": { + "type": "object", + "properties": { + "compatible": { + "description": "Compatibility criteria. If true, only Edges which are compatible with vSphere Namespaces will be returned. If false, only Edges incompatible with vSphere Namespaces will be returned.\nIf unset, both compatible and incompatible Edges will be returned.", + "type": "boolean" + }, + "distributed_switch": { + "description": "Distributed switch UUID criteria. If distributed switches identifiers are specified, they will be used to filter the Edges. To obtain the available distributed switch UUIDs, use: DistributedSwitches.list.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vSphereDistributedSwitch.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "distributed_switch" + ] + }, + "VcenterNamespaceManagementNetworksNsxNetworkCreateSpec": { + "type": "object", + "properties": { + "namespace_network_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates IP addresss for all workloads that attach to the namespace, including PodVMs, TKGS and VM Service VMs. This range should not overlap with those in Networks.NsxNetworkCreateSpec.ingress-cidrs, Networks.NsxNetworkCreateSpec.egress-cidrs, or other services running in the datacenter.\nThis field is required when Networks.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Networks.NsxNetworkCreateSpec.ingress-cidrs, Networks.NsxNetworkCreateSpec.egress-cidrs are specified. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. These ranges should not overlap with those in Networks.NsxNetworkCreateSpec.namespace-network-cidrs, Networks.NsxNetworkCreateSpec.egress-cidrs, or other services running in the datacenter.\nThis field is required when Networks.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Networks.NsxNetworkCreateSpec.namespace-network-cidrs, Networks.NsxNetworkCreateSpec.egress-cidrs is specified. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges should not overlap with those in Networks.NsxNetworkCreateSpec.namespace-network-cidrs, Networks.NsxNetworkCreateSpec.ingress-cidrs, or other services running in the datacenter.\nThis field is required when Networks.NsxNetworkCreateSpec.routed-mode is set to False and Networks.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Networks.NsxNetworkCreateSpec.namespace-network-cidrs, Networks.NsxNetworkCreateSpec.ingress-cidrs is specified. When Networks.NsxNetworkCreateSpec.routed-mode is set to True, this field is not allowed. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "nsx_tier0_gateway": { + "description": "NSX Tier0 Gateway used for the namespace. This field does not allow update once applied.\nThis field is required when configuring a cluster that uses NSX-T.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "subnet_prefix_length": { + "description": "Size of the subnet reserved for namespace segments.\nIf unset, defaults to 28. This field does not allow update once applied.", + "type": "integer", + "format": "int64" + }, + "routed_mode": { + "description": "Routed mode for thw namespace. When set to True, the traffic in the namespace is not NATed.\nIf unset, defaults to False. When this field is set to True, Networks.NsxNetworkCreateSpec.egress-cidrs is not allowed. This field does not allow update once applied.", + "type": "boolean" + }, + "load_balancer_size": { + "description": "The size of the NSX Load Balancer used by the namespace. This field does not allow update once applied.\nIf unset, defaults to SMALL.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksLoadBalancerSize" + } + } + }, + "VcenterNamespaceManagementNetworksNsxNetworkInfo": { + "type": "object", + "properties": { + "namespace_network_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates IP addresses for all workloads that attach to the namespace, including PodVMs, TKGS and VM Service VMs.\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.pod-cidrs will be applied.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer.\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.ingress-cidrs will be applied.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs.\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.egress-cidrs will be applied.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "nsx_tier0_gateway": { + "description": "NSX Tier0 Gateway used for this namespace.\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.nsx-tier0-gateway will be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "subnet_prefix_length": { + "description": "Size of the subnet reserved for namespace segments\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.namespace-subnet-prefix will be applied.", + "type": "integer", + "format": "int64" + }, + "routed_mode": { + "description": "Routed mode for this namespace. When set to True, the traffic in the namespace is not NATed.\nIf unset, cluster level settings specified in Clusters.NCPClusterNetworkInfo.routed-mode will be applied.", + "type": "boolean" + }, + "load_balancer_size": { + "description": "The size of the NSX Load Balancer used by the namespace.\nIf unset, then SMALL is used.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksLoadBalancerSize" + } + } + }, + "VcenterNamespaceManagementNetworksNsxNetworkSetSpec": { + "type": "object", + "properties": { + "namespace_network_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates IP addresses for all workloads that attach to the namespace, including PodVMs, TKGS and VM Service VMs. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + } + } + }, + "VcenterNamespaceManagementNetworksNsxNetworkUpdateSpec": { + "type": "object", + "properties": { + "namespace_network_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates IP addresses for all workloads that attach to the namespace, including PodVMs, TKGS and VM Service VMs. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. Only appending additional Cidr is allowed. Modification to existing Cidr ranges will result in the operation failing with a ResourceInUse error. Appending invalid Cidr e.g. overlapping or broadcast or reserved Cidr will result in the operation failing with a InvalidArgument error.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIpv4Cidr" + } + } + } + }, + "VcenterNamespaceManagementNetworksServiceDNS": { + "type": "object", + "properties": { + "servers": { + "description": "DNS.servers is a list of IP addresses that clients may use for DNS resolution on a given network in priority order.\n \nIf empty, no DNS servers will be configured.", + "type": "array", + "items": { + "type": "string" + } + }, + "search_domains": { + "description": "DNS.search-domains is a list of DNS search domains to be used on this network.\n \nThis field is useful for corporate networks or local domains that are not publicly resolvable.\n \nIf empty, no search domains will be configured.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "servers", + "search_domains" + ] + }, + "VcenterNamespaceManagementNetworksServiceNTP": { + "type": "object", + "properties": { + "servers": { + "description": "NTP.servers contains a list of servers in priority order that clients can use for network time protocol.\nIf unset, no NTP servers will be configured.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "servers" + ] + }, + "VcenterNamespaceManagementNetworksServices": { + "type": "object", + "properties": { + "dns": { + "description": "Services.dns describes DNS servers and search domains for a given network.\nIf unset, no DNS settings will be configured.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksServiceDNS" + }, + "ntp": { + "description": "Services.ntp describes NTP servers running on this network that networked applications can use for synchronizing time.\nIf unset, no NTP settings will be configured.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksServiceNTP" + } + } + }, + "VcenterNamespaceManagementNetworksSet": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksSetSpec", + "description": "Information about the network object to be set." + }, + "VcenterNamespaceManagementNetworksSetSpec": { + "type": "object", + "properties": { + "network_provider": { + "description": "The network provider that will manage the vSphere Namespaces network object.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "vsphere_network": { + "description": "Modified configuration specification for a DVPG-backed Namespaces network object, supported by VSPHERE_NETWORK network provider.\nThis field is optional and it is only relevant when the value of Networks.SetSpec.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksVsphereDVPGNetworkSetSpec" + }, + "nsx_network": { + "description": "Modified configuration specification for a NSXT-backed Namespaces network configuration, supported by NSXT_CONTAINER_PLUGIN network provider.\nThis field is optional and it is only relevant when the value of Networks.SetSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxNetworkSetSpec" + } + }, + "required": [ + "network_provider" + ] + }, + "VcenterNamespaceManagementNetworksUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementNetworksUpdateSpec", + "description": "Information about the network object to be updated." + }, + "VcenterNamespaceManagementNetworksUpdateSpec": { + "type": "object", + "properties": { + "network_provider": { + "description": "The network provider that will manage the vSphere Namespaces network object.", + "$ref": "#/definitions/VcenterNamespaceManagementClustersNetworkProvider" + }, + "vsphere_network": { + "description": "Updated configuration specification for a DVPG-backed Namespaces network object, supported by VSPHERE_NETWORK network provider.\nThis field is optional and it is only relevant when the value of Networks.UpdateSpec.network-provider is VSPHERE_NETWORK.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksVsphereDVPGNetworkUpdateSpec" + }, + "nsx_network": { + "description": "Updated configuration specification for a NSXT-backed Namespaces network configuration, supported by NSXT_CONTAINER_PLUGIN network provider.\nThis field is optional and it is only relevant when the value of Networks.UpdateSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksNsxNetworkUpdateSpec" + } + }, + "required": [ + "network_provider" + ] + }, + "VcenterNamespaceManagementNetworksVsphereDVPGNetworkCreateSpec": { + "type": "object", + "properties": { + "portgroup": { + "description": "Identifier of the vSphere Distributed Portgroup backing the vSphere network object.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "ip_assignment_mode": { + "description": "IP address assignment mode. If set to DHCP, then field Networks.VsphereDVPGNetworkCreateSpec.address-ranges must be set to an empty list and fields Networks.VsphereDVPGNetworkCreateSpec.gateway and Networks.VsphereDVPGNetworkCreateSpec.subnet-mask must be set to empty strings.\nIf unset, defaults to STATICRANGE.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPAssignmentMode" + }, + "address_ranges": { + "description": "Usable IP pools on this network.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "gateway": { + "description": "Gateway for the network.", + "type": "string" + }, + "subnet_mask": { + "description": "Subnet mask of the network.", + "type": "string" + } + }, + "required": [ + "portgroup", + "address_ranges", + "gateway", + "subnet_mask" + ] + }, + "VcenterNamespaceManagementNetworksVsphereDVPGNetworkInfo": { + "type": "object", + "properties": { + "portgroup": { + "description": "Identifier of the vSphere Distributed Portgroup backing the vSphere network object.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "ip_assignment_mode": { + "description": "IP address assignment mode.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPAssignmentMode" + }, + "address_ranges": { + "description": "Usable IP pools on this network.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "gateway": { + "description": "Gateway for the network.", + "type": "string" + }, + "subnet_mask": { + "description": "Subnet mask of the network.", + "type": "string" + } + }, + "required": [ + "portgroup", + "address_ranges", + "gateway", + "subnet_mask" + ] + }, + "VcenterNamespaceManagementNetworksVsphereDVPGNetworkSetSpec": { + "type": "object", + "properties": { + "portgroup": { + "description": "Identifier of the vSphere Distributed Portgroup backing the vSphere network object. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, modification to existing portgroup will result in the operation failing with a ResourceInUse error.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "address_ranges": { + "description": "Usable IP pools on this network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then replacement of or modification to any existing range in this list will result in operation failing with a ResourceInUse error. To add new address ranges to the list, existing address ranges have to be passed in without modifications.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "gateway": { + "description": "Gateway for the network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then modification to existing gateway will result in the operation failing with a ResourceInUse error.", + "type": "string" + }, + "subnet_mask": { + "description": "Subnet mask of the network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then modification to existing subnet mask will result in the operation failing with a ResourceInUse error.", + "type": "string" + } + }, + "required": [ + "portgroup", + "address_ranges", + "gateway", + "subnet_mask" + ] + }, + "VcenterNamespaceManagementNetworksVsphereDVPGNetworkUpdateSpec": { + "type": "object", + "properties": { + "portgroup": { + "description": "Identifier of the vSphere Distributed Portgroup backing the vSphere network object. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then modification to existing portgroup will result in the operation failing with a ResourceInUse error.\nIf unset, the current value will be retained.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "address_ranges": { + "description": "Usable IP pools on this network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then replacement of or modification to any existing range in this list will result in operation failing with a ResourceInUse error. To add new address ranges to the list, existing address ranges have to be passed in without modifications.\nIf unset, the current value will be retained.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementIPRange" + } + }, + "gateway": { + "description": "Gateway for the network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then modification to existing gateway will result in the operation failing with a ResourceInUse error.\nIf unset, the current value will be retained.", + "type": "string" + }, + "subnet_mask": { + "description": "Subnet mask of the network. If the network object is associated with a Namespace or is Clusters.WorkloadNetworksEnableSpec.supervisor-primary-workload-network, then modification to existing subnet mask will result in the operation failing with a ResourceInUse error.\nIf unset, the current value will be retained.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementProxyConfiguration": { + "type": "object", + "properties": { + "proxy_settings_source": { + "description": "The source of the proxy settings. If VC_INHERITED or NONE is specified, then the other configuration in ProxyConfiguration will be ignored.", + "$ref": "#/definitions/VcenterNamespaceManagementProxySettingsSource" + }, + "https_proxy_config": { + "description": "HTTPS proxy configuration. Examples: \n - http://username:password@proxy.vmware.com:8080\n - https://proxy.vmware.com:4443\n This will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\nIf unset no HTTPS proxy will be used.", + "type": "string" + }, + "http_proxy_config": { + "description": "HTTP proxy configuration. Examples: \n - http://username:password@proxy.vmware.com:8080\n - https://proxy.vmware.com:4443\n This will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\nIf unset no HTTP proxy will be used.", + "type": "string" + }, + "no_proxy_config": { + "description": "List of addresses that should be accessed directly. This will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\nIf unset there won't be any excluded addresses.", + "type": "array", + "items": { + "type": "string" + } + }, + "tls_root_ca_bundle": { + "description": "Proxy TLS root CA bundle which will be used to verify the proxy's certificates. Every certificate in the bundle is expected to be in PEM format. This will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\nIf unset only the vCenter certificates applied in VECS (VMware Endpoint Certificate Store) will be used.", + "type": "string" + } + }, + "required": [ + "proxy_settings_source" + ] + }, + "VcenterNamespaceManagementProxySettingsSource": { + "type": "string", + "description": "The settings can be inherited from the vCenter settings, so the cluster settings will be synced. The settings can be applied directly on the cluster level, or the cluster can be configured not to use a proxy.", + "enum": [ + "VC_INHERITED", + "CLUSTER_CONFIGURED", + "NONE" + ] + }, + "VcenterNamespaceManagementSizingHint": { + "type": "string", + "description": "The SizingHint enumerated type determines the configuration of Kubernetes API server and the worker nodes. It also determines the default values associated with the maximum number of pods and services. Use ClusterSizeInfo.get to get information associated with a SizingHint.", + "enum": [ + "TINY", + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "VcenterNamespaceManagementSoftwareClustersInfo": { + "type": "object", + "properties": { + "current_version": { + "description": "Current version of the cluster.", + "type": "string" + }, + "available_versions": { + "description": "Set of available versions can be upgraded to.", + "type": "array", + "items": { + "type": "string" + } + }, + "last_upgraded_date": { + "description": "Date of last successful upgrade.\nIf unset, the cluster has not yet been upgraded.", + "type": "string", + "format": "date-time" + }, + "messages": { + "description": "Current set of messages associated with the cluster version.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersMessage" + } + }, + "state": { + "description": "Current state of the upgrade.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersState" + }, + "upgrade_status": { + "description": "Information about upgrade in progress.\nIf unset, the cluster upgrade is not in progress.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgradeStatus" + } + }, + "required": [ + "current_version", + "available_versions", + "messages", + "state" + ] + }, + "VcenterNamespaceManagementSoftwareClustersMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersMessageSeverity" + }, + "details": { + "description": "Details about the message.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity", + "details" + ] + }, + "VcenterNamespaceManagementSoftwareClustersMessageSeverity": { + "type": "string", + "description": "The Clusters.Message.Severity enumerated type represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementSoftwareClustersResult": { + "type": "object", + "properties": { + "res": { + "description": "The result of batch upgrade method.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersResultRes" + }, + "exception": { + "description": "Exception when cluster pre-check failed during upgrade invocation.\nThis field is optional and it is only relevant when the value of Clusters.Result.res is REJECTED.", + "type": "string" + } + }, + "required": [ + "res" + ] + }, + "VcenterNamespaceManagementSoftwareClustersResultRes": { + "type": "string", + "description": "The Clusters.Result.Res enumerated type represents the upgrade invocation result for each cluster.", + "enum": [ + "STARTED", + "REJECTED" + ] + }, + "VcenterNamespaceManagementSoftwareClustersState": { + "type": "string", + "description": "The Clusters.State enumerated type describes the state of the upgrade.", + "enum": [ + "PENDING", + "READY", + "ERROR" + ] + }, + "VcenterNamespaceManagementSoftwareClustersSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "cluster_name": { + "description": "Name of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.name.", + "type": "string" + }, + "current_version": { + "description": "Current version of the cluster.", + "type": "string" + }, + "available_versions": { + "description": "Set of versions available for upgrade.", + "type": "array", + "items": { + "type": "string" + } + }, + "last_upgraded_date": { + "description": "Date of last successful upgrade.\nIf unset, the cluster has not yet been upgraded.", + "type": "string", + "format": "date-time" + }, + "desired_version": { + "description": "Desired version the cluster will be upgraded to.\nIf unset, the cluster upgrade is not in progress.", + "type": "string" + }, + "state": { + "description": "Current state of the upgrade.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersState" + } + }, + "required": [ + "cluster", + "cluster_name", + "current_version", + "available_versions", + "state" + ] + }, + "VcenterNamespaceManagementSoftwareClustersUpgrade": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgradeSpec", + "description": "Specification for upgrading the cluster." + }, + "VcenterNamespaceManagementSoftwareClustersUpgradeMultiple": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgradeSpec" + }, + "description": "Specifications for upgrading selected clusters.\nThe key in the parameter map must be an identifier for the resource type: ClusterComputeResource." + }, + "VcenterNamespaceManagementSoftwareClustersUpgradeProgress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation. The work here represents the number of master nodes in the cluster need to be upgraded.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented. The number or master nodes which upgrade completed.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "VcenterNamespaceManagementSoftwareClustersUpgradeSpec": { + "type": "object", + "properties": { + "desired_version": { + "description": "Version number the cluster is going to be upgraded to.", + "type": "string" + }, + "ignore_precheck_warnings": { + "description": "If true, the upgrade workflow will ignore any pre-check warnings and proceed with the upgrade.\nIf unset, the upgrade workflow will not ignore pre-check warnings and fail the upgrade. It is equivalent to setting the value to false. The workflow adopts a conservative approach of failing the upgrade if unset to solely let the user decide whether to force the upgrade despite the warnings.", + "type": "boolean" + } + }, + "required": [ + "desired_version" + ] + }, + "VcenterNamespaceManagementSoftwareClustersUpgradeStatus": { + "type": "object", + "properties": { + "desired_version": { + "description": "Desired version the cluster will be upgraded to.\nIf unset, the cluster upgrade is not in progress.", + "type": "string" + }, + "messages": { + "description": "Current set of messages associated with the upgrade state.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersMessage" + } + }, + "progress": { + "description": "Information about upgrade progess.\nIf unset, the cluster upgrade is not in progress.", + "$ref": "#/definitions/VcenterNamespaceManagementSoftwareClustersUpgradeProgress" + } + }, + "required": [ + "messages" + ] + }, + "VcenterNamespaceManagementStatsTimeSeriesPodIdentifier": { + "type": "object", + "properties": { + "namespace": { + "description": "The namespace that the pod is running in.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "pod_name": { + "description": "The name of the pod itself.", + "type": "string" + } + }, + "required": [ + "namespace", + "pod_name" + ] + }, + "VcenterNamespaceManagementStatsTimeSeriesSpec": { + "type": "object", + "properties": { + "obj_type": { + "description": "Type of statistics object that the request is operating on.", + "$ref": "#/definitions/VcenterNamespaceManagementStatsTimeSeriesSpecObjType" + }, + "pod": { + "description": "Pod Identifier for queries on an individual pod.\nThis field is optional and it is only relevant when the value of TimeSeries.Spec.obj-type is POD.", + "$ref": "#/definitions/VcenterNamespaceManagementStatsTimeSeriesPodIdentifier" + }, + "namespace": { + "description": "Namespace name for queries for a namespace.\nThis field is optional and it is only relevant when the value of TimeSeries.Spec.obj-type is NAMESPACE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "cluster": { + "description": "Cluster identifier for queries for a cluster.\nThis field is optional and it is only relevant when the value of TimeSeries.Spec.obj-type is CLUSTER.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "start": { + "description": "UNIX timestamp value indicating when the requested series of statistical samples should begin. https://en.wikipedia.org/wiki/Unix_time", + "type": "integer", + "format": "int64" + }, + "end": { + "description": "UNIX timestamp value indicating when the requested series of statistical samples should end. https://en.wikipedia.org/wiki/Unix_time", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "obj_type", + "start", + "end" + ] + }, + "VcenterNamespaceManagementStatsTimeSeriesSpecObjType": { + "type": "string", + "description": "Type of statistics object that this request is operating on.", + "enum": [ + "CLUSTER", + "NAMESPACE", + "POD" + ] + }, + "VcenterNamespaceManagementStatsTimeSeriesTimeSeries": { + "type": "object", + "properties": { + "counter": { + "description": "Counter identifier.", + "type": "string" + }, + "time_stamps": { + "description": "Sequence of UNIX timestamp values at which statistical values were sampled. https://en.wikipedia.org/wiki/Unix_time", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "values": { + "description": "Sequence of sampled values corresponding to the timestamps in tss.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + }, + "required": [ + "counter", + "time_stamps", + "values" + ] + }, + "VcenterNamespaceManagementStorageProfilesCheck": { + "$ref": "#/definitions/VcenterNamespaceManagementStorageProfilesFilterSpec", + "description": "Specification of the zones to consider when finding compatible storage profiles. The Profiles.FilterSpec must contain at least 1 zone." + }, + "VcenterNamespaceManagementStorageProfilesFilterSpec": { + "type": "object", + "properties": { + "zones": { + "description": "Zone compatibility criteria. The common storage profiles across the given zones will be returned. A storage profile is considered compatible if it results in at least one datastore in each of the given zones.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "zones" + ] + }, + "VcenterNamespaceManagementStorageProfilesItem": { + "type": "object", + "properties": { + "zone": { + "description": "The vSphere Zones the datastore are in.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "datastores": { + "description": "The datastores in the zone.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datastore. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datastore.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "zone", + "datastores" + ] + }, + "VcenterNamespaceManagementStorageProfilesSummary": { + "type": "object", + "properties": { + "profile": { + "description": "Identifier of the compatible storage profile. A storage profile is compatible if it results in at least one datastore in each of the specified zones.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "profile_name": { + "description": "Human-readable identifier of the storage profile.", + "type": "string" + }, + "compatible": { + "description": "Compatibility of this storage profile with the specified vSphere Zones.", + "type": "boolean" + }, + "items": { + "description": "The list of Profiles.Item wich correspond to the storage profile.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementStorageProfilesItem" + } + }, + "incompatibility_reasons": { + "description": "The reason for incompatibility. If empty, this profile is compatible with the given vSphere Zones specified in the Profiles.FilterSpec.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "profile", + "profile_name", + "compatible", + "items", + "incompatibility_reasons" + ] + }, + "VcenterNamespaceManagementSupervisorServicesCarvelAppsCheckResult": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "The identifier of the Supervisor Service.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "version": { + "description": "The identifier of the Supervisor Service version.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service version.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service version.\nIf unset, no description is available for the Supervisor Service version.", + "type": "string" + } + }, + "required": [ + "supervisor_service", + "version", + "display_name" + ] + }, + "VcenterNamespaceManagementSupervisorServicesCarvelCreateSpec": { + "type": "object", + "properties": { + "version_spec": { + "description": "Supervisor service version specification that provides the service definitions for one Supervisor Service version.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCarvelCreateSpec" + } + }, + "required": [ + "version_spec" + ] + }, + "VcenterNamespaceManagementSupervisorServicesCheckContent": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesContentCheckSpec", + "description": "Specification for the content to be checked." + } + }, + "required": [ + "spec" + ] + }, + "VcenterNamespaceManagementSupervisorServicesCheckResult": { + "type": "object", + "properties": { + "status": { + "description": "Indicates if the provided content is valid.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesValidationStatus" + }, + "content_type": { + "description": "The type of the provided content. When this SupervisorServices.CheckResult.content-type is CUSTOM_YAML, the SupervisorServices.CheckResult.status is always VALID because a custom format is not validated.\nIf unset, the content type cannot be determined from the provided content.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsContentType" + }, + "vsphere_apps_check_result": { + "description": "The information about the Supervisor Service version retrieved from the provided content as a result of validation checks if the content is in the vSphere application format.\nIf unset, the content is not in the vSphere application service format, or the SupervisorServices.CheckResult.status is INVALID.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVsphereAppsCheckResult" + }, + "carvel_apps_check_result": { + "description": "The information about the Supervisor Service version retrieved from the provided content as a result of validation checks if the content is in the Carvel application format.\nIf unset, the content is not in the Carvel application package format, or the SupervisorServices.CheckResult.status is INVALID.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCarvelAppsCheckResult" + }, + "warning_messages": { + "description": "A list of messages indicating why the content was considered valid but contains information that should be reviewed closely.\nThis field is optional and it is only relevant when the value of SupervisorServices.CheckResult.status is VALID_WITH_WARNINGS.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "error_messages": { + "description": "A list of messages indicating why the content was considered invalid.\nThis field is optional and it is only relevant when the value of SupervisorServices.CheckResult.status is INVALID.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "status" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesConfigStatus": { + "type": "string", + "description": "The ClusterSupervisorServices.ConfigStatus enumerated type describes the status of reaching the desired state configuration for the Supervisor Service.", + "enum": [ + "CONFIGURING", + "REMOVING", + "CONFIGURED", + "ERROR" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec", + "description": "Specification for the Supervisor Service on the cluster." + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "Identifier of the Supervisor Service. This Supervisor Service must be in the ACTIVATED state.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "version": { + "description": "Identifier of the Supervisor Service version which contains the service definition. This Supervisor Service version must be in the ACTIVATED state.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "service_config": { + "description": "A generic key-value map for additional configuration parameters required during service creation. As an example, a third party operator might reference a private registry using parameters such as \"registryName\" for the registry name, \"registryUsername\" and \"registryPassword\" for the registry credentials.\nIf unset, no additional configuration parameters will be applied when installing a Supervisor Service in the vSphere Supervisor.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "yaml_service_config": { + "description": "A set of additional configuration parameters to be applied during service creation. These parameters should be formatted as a base64 encoded YAML document. \n Parameters should be set in at most one of ClusterSupervisorServices.CreateSpec.service-config or ClusterSupervisorServices.CreateSpec.yaml-service-config, and not both. The ClusterSupervisorServices.CreateSpec.yaml-service-config supports complex data types and nested properties.\n\nIf unset, no additional configuration parameters will be applied when installing a Supervisor Service in the vSphere Supervisor.", + "type": "string" + } + }, + "required": [ + "supervisor_service", + "version" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesInfo": { + "type": "object", + "properties": { + "desired_version": { + "description": "The desired version of this Supervisor Service.", + "type": "string" + }, + "service_namespace": { + "description": "Identifier of the namespace to allocate the Supervisor Service's operators.\nIf unset, there is an error when creating the service namespace or the namespace has not been created yet.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "config_status": { + "description": "Current setting for ClusterSupervisorServices.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesConfigStatus" + }, + "messages": { + "description": "Current set of messages associated with the Supervisor Service on the vSphere Supervisor.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesMessage" + } + }, + "current_version": { + "description": "The current version for the Supervisor Service.\nIf unset, there is no version installed for the Supervisor Service.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service.\nIf unset, the description for the service version is empty.", + "type": "string" + }, + "prefix": { + "description": "The prefix that will be added to the names of the Supervisor Service's kubernetes resources.\nIf unset, the prefix is not assigned yet.", + "type": "string" + }, + "yaml_service_config": { + "description": "The configuration parameters applied on this Supervisor Service, formatted as a base64 encoded YAML document. Any configuration that has been set will be returned as base64 encoded YAML, including the ClusterSupervisorServices.CreateSpec.service-config.\nIf unset, the Supervisor Service has no configuration applied.", + "type": "string" + } + }, + "required": [ + "desired_version", + "config_status", + "messages", + "display_name" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesMessageMessageSeverity" + }, + "details": { + "description": "Details about the message.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesMessageMessageSeverity": { + "type": "string", + "description": "The ClusterSupervisorServices.Message.MessageSeverity enumerated type represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSet": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSetSpec", + "description": "Specification for the Supervisor Service on the cluster." + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSetSpec": { + "type": "object", + "properties": { + "version": { + "description": "Identifier of the Supervisor Service version which contains the service definition. This Supervisor Service version must be in the ACTIVATED state.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "service_config": { + "description": "A generic key-value map for additional configuration parameters required during service upgrade. As an example, a third party operator might reference a private registry using parameters such as \"registryName\" for the registry name, \"registryUsername\" and \"registryPassword\" for the registry credentials.\nIf unset, no additional configuration parameters will be applied when upgrading a Supervisor Service in the vSphere Supervisor.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "yaml_service_config": { + "description": "A set of additional configuration parameters to be applied during service upgrade. These parameters should be formatted as a base64 encoded YAML document. \n Parameters should be set in at most one of ClusterSupervisorServices.SetSpec.service-config or ClusterSupervisorServices.SetSpec.yaml-service-config, and not both. The ClusterSupervisorServices.SetSpec.yaml-service-config supports complex data types and nested properties.\n\nIf unset, no additional configuration parameters will be applied when upgrading a Supervisor Service in the vSphere Supervisor.", + "type": "string" + } + }, + "required": [ + "version" + ] + }, + "VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesSummary": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "The identifier of the Supervisor Service.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "desired_version": { + "description": "The desired version of this Supervisor Service.", + "type": "string" + }, + "config_status": { + "description": "Current setting for ClusterSupervisorServices.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesClusterSupervisorServicesConfigStatus" + }, + "current_version": { + "description": "The current version for the Supervisor Service.\nIf unset, there is no version installed for the Supervisor Service.", + "type": "string" + } + }, + "required": [ + "supervisor_service", + "desired_version", + "config_status" + ] + }, + "VcenterNamespaceManagementSupervisorServicesContentCheckSpec": { + "type": "object", + "properties": { + "content": { + "description": "The content of a Supervisor Service version, which shall be base64 encoded.\nIf unset, the content shall be provided separately. In the current release, this field is required, otherwise InvalidArgument will be thrown.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementSupervisorServicesCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCreateSpec", + "description": "Specification for the Supervisor Service with version definition." + }, + "VcenterNamespaceManagementSupervisorServicesCreateSpec": { + "type": "object", + "properties": { + "custom_spec": { + "description": "The specification required to create a Supervisor Service with a version from inline content that is based on a plain Kubernetes YAML format. \n\n\nIf set, the service will be created from a version based on a plain Kubernetes YAML format.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCustomCreateSpec" + }, + "vsphere_spec": { + "description": "The specification required to create a Supervisor Service with a version from inline content that is based on the vSphere application service format. \n\n\nIf set, the service will be created from a version based on the vSphere application service format.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVsphereCreateSpec" + }, + "carvel_spec": { + "description": "The specification required to create a Supervisor Service with a version from inline content that is based on the Carvel application package format. \n\n\nIf set, the service will be created from a version based on the Carvel application package format (Package and PackageMetadata resources should be declared).", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesCarvelCreateSpec" + } + } + }, + "VcenterNamespaceManagementSupervisorServicesCustomCreateSpec": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "The identifier of the Supervisor Service. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This identifier must be unique across all Namespaces in this vCenter server. Additionally, the ID 'namespaces' is reserved and must not be used.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service.\nIf unset, the Supervisor Service description will be empty.", + "type": "string" + }, + "version_spec": { + "description": "Supervisor service version specification that provides the service definition for one Supervisor Service version.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCustomCreateSpec" + } + }, + "required": [ + "supervisor_service", + "display_name", + "version_spec" + ] + }, + "VcenterNamespaceManagementSupervisorServicesInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "The human readable name of the Supervisor Service.", + "type": "string" + }, + "state": { + "description": "The current SupervisorServices.State of the Supervisor Service.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesState" + }, + "description": { + "description": "A human readable description of the Supervisor Service.\nIf unset, no description is available for the Supervisor Service.", + "type": "string" + } + }, + "required": [ + "display_name", + "state" + ] + }, + "VcenterNamespaceManagementSupervisorServicesState": { + "type": "string", + "description": "The SupervisorServices.State enumerated type defines the state of a Supervisor Service.", + "enum": [ + "ACTIVATED", + "DEACTIVATED" + ] + }, + "VcenterNamespaceManagementSupervisorServicesSummary": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "The identifier of the Supervisor Service.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "display_name": { + "description": "The human readable name of the Supervisor Service.", + "type": "string" + }, + "state": { + "description": "The current SupervisorServices.State of the Supervisor Service.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesState" + } + }, + "required": [ + "supervisor_service", + "display_name", + "state" + ] + }, + "VcenterNamespaceManagementSupervisorServicesUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesUpdateSpec", + "description": "Specification for the Supervisor Service metadata to be updated." + }, + "VcenterNamespaceManagementSupervisorServicesUpdateSpec": { + "type": "object", + "properties": { + "display_name": { + "description": "A human readable name of the Supervisor Service.\nIf unset, the display name of the service will not be modified.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service.\nIf unset, the description of the service will not be modified.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementSupervisorServicesValidationStatus": { + "type": "string", + "description": "The SupervisorServices.ValidationStatus enumerated type defines the type of status for validating content of a Supervisor Service version.", + "enum": [ + "VALID", + "VALID_WITH_WARNINGS", + "INVALID" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsCarvelCreateSpec": { + "type": "object", + "properties": { + "content": { + "description": "Inline content that contains all service definition of the version in Carvel application package format, which shall be base64 encoded.", + "type": "string" + } + }, + "required": [ + "content" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsContentType": { + "type": "string", + "description": "The Versions.ContentType enumerated type defines the type of content that describes the format of Supervisor Service version definition.", + "enum": [ + "VSPHERE_APPS_YAML", + "CARVEL_APPS_YAML", + "CUSTOM_YAML" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCreateSpec", + "description": "Specification for the Supervisor Service version to be created." + }, + "VcenterNamespaceManagementSupervisorServicesVersionsCreateSpec": { + "type": "object", + "properties": { + "custom_spec": { + "description": "The specification required to create a Supervisor Service version from inline content that is based on a plain Kubernetes YAML format. \n\n\nIf set, the service version will be created from inline content based on a plain Kubernetes YAML format.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCustomCreateSpec" + }, + "vsphere_spec": { + "description": "The specification required to create a Supervisor Service version from inline content that is based on the vSphere application service format. \n\n\nIf set, the service version will be created from inline content based on the vSphere application service format.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsVsphereCreateSpec" + }, + "carvel_spec": { + "description": "The specification required to create a Supervisor Service version from inline content that is based on the Carvel application package format. \n\n\nIf set, the service version will be created from inline content based on the Carvel application package format (Package and PackageMetadata resources should be declared).", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsCarvelCreateSpec" + } + } + }, + "VcenterNamespaceManagementSupervisorServicesVersionsCustomCreateSpec": { + "type": "object", + "properties": { + "version": { + "description": "The identifier of the Supervisor Service version. This must be a semantic version.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service version.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service version.\nIf unset, the description for the service version will be empty.", + "type": "string" + }, + "content": { + "description": "Inline content that contains all service definition of the version, which shall be base64 encoded. The service definition here follows a plain Kubernetes YAML format.", + "type": "string" + }, + "trusted_provider": { + "description": "Whether or not the Supervisor Service version is from a trusted provider, this field must be set to false if the service version is not from a trusted provider. If it is set to be true, but the Versions.CustomCreateSpec.content is not signed or the signature is invalid, an InvalidArgument will be thrown.\nIf unset, the default value is true. In this case, the Versions.CustomCreateSpec.content must be signed and will be verified.", + "type": "boolean" + } + }, + "required": [ + "version", + "display_name", + "content" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsInfo": { + "type": "object", + "properties": { + "display_name": { + "description": "The human readable name of the Supervisor Service version.", + "type": "string" + }, + "description": { + "description": "A human-readable description of the Supervisor Service version.\nIf unset, no description is available for the Supervisor Service version.", + "type": "string" + }, + "EULA": { + "description": "The End User License Agreement (EULA) associated with the Supervisor Service version.\nIf unset, no EULA is available for the Supervisor Service version.", + "type": "string" + }, + "content_type": { + "description": "The content type of Versions.Info.content.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsContentType" + }, + "content": { + "description": "Inline content that contains base64 encoded service definition for the version.\nIf unset, no content is available for the Supervisor Service version.", + "type": "string" + }, + "trust_verified": { + "description": "If true, the Supervisor Service version is from trusted provider and the trust is verified.", + "type": "boolean" + }, + "state": { + "description": "The current Versions.State of the version.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsState" + } + }, + "required": [ + "display_name", + "content_type", + "trust_verified", + "state" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsState": { + "type": "string", + "description": "The Versions.State enumerated type defines the state of a Supervisor Service version.", + "enum": [ + "ACTIVATED", + "DEACTIVATED" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsSummary": { + "type": "object", + "properties": { + "version": { + "description": "The identifier of the Supervisor Service version.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service version.", + "type": "string" + }, + "state": { + "description": "The current Versions.State of the Supervisor Service version.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsState" + }, + "description": { + "description": "A human readable description of the Supervisor Service version.\nIf unset, no description is available for the service version.", + "type": "string" + } + }, + "required": [ + "version", + "display_name", + "state" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVersionsVsphereCreateSpec": { + "type": "object", + "properties": { + "content": { + "description": "Inline content that contains all service definition of the version in vSphere application service format, which shall be base64 encoded.", + "type": "string" + }, + "trusted_provider": { + "description": "Whether or not the Supervisor Service version is from a trusted provider, this field must be set to false if the service version is not from a trusted provider. If it is set to be true, but the Versions.VsphereCreateSpec.content is not signed or the signature is invalid, an InvalidArgument will be thrown.\nIf unset, the default value is true. In this case, the Versions.VsphereCreateSpec.content must be signed and will be verified.", + "type": "boolean" + }, + "accept_EULA": { + "description": "Whether or not the End User License Agreement (EULA) that is specified in the Versions.VsphereCreateSpec.content is accepted. If a EULA is specified, this field must be set to be true so that the Supervisor Service version can be created.\nIf unset, the default value is false.", + "type": "boolean" + } + }, + "required": [ + "content" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVsphereAppsCheckResult": { + "type": "object", + "properties": { + "supervisor_service": { + "description": "The identifier of the Supervisor Service.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.SupervisorService.", + "type": "string" + }, + "version": { + "description": "The identifier of the Supervisor Service version.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor_services.Version.", + "type": "string" + }, + "display_name": { + "description": "A human readable name of the Supervisor Service version.", + "type": "string" + }, + "description": { + "description": "A human readable description of the Supervisor Service version.\nIf unset, no description is available for the Supervisor Service version.", + "type": "string" + }, + "eula": { + "description": "The End User License Agreement (EULA) of the Supervisor Service version.\nIf unset, no EULA is available for the Supervisor Service version.", + "type": "string" + } + }, + "required": [ + "supervisor_service", + "version", + "display_name" + ] + }, + "VcenterNamespaceManagementSupervisorServicesVsphereCreateSpec": { + "type": "object", + "properties": { + "version_spec": { + "description": "Supervisor service version specification that provides the service definitions for one Supervisor Service version.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorServicesVersionsVsphereCreateSpec" + } + }, + "required": [ + "version_spec" + ] + }, + "VcenterNamespaceManagementSupervisorsCNSFileConfig": { + "type": "object", + "properties": { + "vsan_clusters": { + "description": "CNSFileConfig.vsan-clusters is a list of clusters to be used for provisioning file volumes.\n \nAs a prerequisite these clusters must have vSAN and vSAN file services enabled, and must be in the same vCenter as the Supervisor.\n \nCurrently this list must have a single entry which is the cluster identifier of the current cluster. This cluster must be a vSAN cluster and must have vSAN File Service enabled.\n \nIf a cluster in the list is not a vSAN cluster or does not have vSAN File Service enabled, an InvalidArgument error will be thrown from Clusters.enable, Clusters.update and Clusters.set APIs.\n \nAn empty list may be specified to disable file volume support on the Supervisor.\n\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "vsan_clusters" + ] + }, + "VcenterNamespaceManagementSupervisorsConditionsCondition": { + "type": "object", + "properties": { + "type": { + "description": "The type of the condition is a CamelCase, machine readable identifier, indicating the configuration stage. InfrastructureInitialized, ControlPlaneVMsDeployed and ControlPlaneVMsConfigured are examples of such identifiers.", + "type": "string" + }, + "description": { + "description": "Description of the condition type in a human readable format.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "status": { + "description": "The status of the condition.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsConditionsConditionStatus" + }, + "last_transition_time": { + "description": "Last time the condition transitioned from one state to another. A transition happens when the value of status or severity field changes.\nif unset, there are no ongoing operations related to bringing the condition to the desired state.", + "type": "string", + "format": "date-time" + }, + "reason": { + "description": "A brief CamelCase message indicating details about the reason for the last transition. FailedWithSystemError, ManagementDNSServersMissing and WaitForNodeUpgrade are examples of such messages.", + "type": "string" + }, + "severity": { + "description": "Provides an explicit classification of the reason identifier. Can be set when the value of status is not TRUE.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsConditionsSeverity" + }, + "messages": { + "description": "A list of human-readable messages that provide additional details about the last transition.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsConditionsMessage" + } + } + }, + "required": [ + "type", + "description", + "status", + "reason", + "severity", + "messages" + ] + }, + "VcenterNamespaceManagementSupervisorsConditionsConditionStatus": { + "type": "string", + "description": "Status of the condition, which can be one of TRUE, FALSE or UNKNOWN.", + "enum": [ + "TRUE", + "FALSE", + "UNKNOWN" + ] + }, + "VcenterNamespaceManagementSupervisorsConditionsMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsConditionsSeverity" + }, + "details": { + "description": "Details about the message.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity" + ] + }, + "VcenterNamespaceManagementSupervisorsConditionsSeverity": { + "type": "string", + "description": "The Conditions.Severity structure represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementSupervisorsContentLibrarySpec": { + "type": "object", + "properties": { + "content_library": { + "description": "ContentLibrarySpec.content-library is the Content Library ID associated with a Supervisor. The Content Library specified should exist in the vSphere inventory.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + } + }, + "required": [ + "content_library" + ] + }, + "VcenterNamespaceManagementSupervisorsControlPlane": { + "type": "object", + "properties": { + "network": { + "description": "The management ControlPlane.network is used by vCenter and the control plane to manage the cluster. vCenter and the NSX (if used) management plane must be accessible from this network.\n \nThe Supervisor requires that management network traffic is not L3 routable from workload network traffic.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksManagementNetwork" + }, + "login_banner": { + "description": "ControlPlane.login-banner is a disclaimer displayed prior to login via the Kubectl plugin.\n\nIf this banner is unset, no message will be displayed to users.", + "type": "string" + }, + "size": { + "description": "ControlPlane.size controls the size and resources allocated to the Kubernetes API server and the worker nodes.\n\nDefaults to SMALL.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSizingHint" + }, + "storage_policy": { + "description": "ControlPlane.storage-policy identifies the storage policy backing the Supervisor Kubernetes API server.\n\nThis resource is required.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + } + }, + "required": [ + "network" + ] + }, + "VcenterNamespaceManagementSupervisorsEnableOnComputeCluster": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsEnableOnComputeClusterSpec", + "description": "Specification for configuring the Supervisor and Workloads." + }, + "VcenterNamespaceManagementSupervisorsEnableOnComputeClusterSpec": { + "type": "object", + "properties": { + "zone": { + "description": "Supervisors.EnableOnComputeClusterSpec.zone describes consumption fault domain zone available to the Supervisor and its workloads.\nZone will be created and associated with the cluster. If unset, the zone name will be generated based on the cluster managed object ID. The zone can be managed with the zone api {@link #vcenter.consumption-domains.Zones}\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "name": { + "description": "A Supervisors.EnableSpec.name is a user-friendly identifier for this Supervisor.", + "type": "string" + }, + "control_plane": { + "description": "Supervisors.EnableSpec.control-plane specifies configuration for the Supervisor control plane.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsControlPlane" + }, + "workloads": { + "description": "Supervisors.EnableSpec.workloads specifies configuration for compute, network, and storage for workloads.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsWorkloads" + } + }, + "required": [ + "name", + "control_plane", + "workloads" + ] + }, + "VcenterNamespaceManagementSupervisorsEnableOnZones": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsEnableOnZonesSpec", + "description": "Specification for configuring the Supervisor and Workloads." + }, + "VcenterNamespaceManagementSupervisorsEnableOnZonesSpec": { + "type": "object", + "properties": { + "zones": { + "description": "Supervisors.EnableOnZonesSpec.zones describe consumption fault domain zones available to the Supervisor and its workloads. Only one or three zones are supported.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.consumption_domains.Zone.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "A Supervisors.EnableSpec.name is a user-friendly identifier for this Supervisor.", + "type": "string" + }, + "control_plane": { + "description": "Supervisors.EnableSpec.control-plane specifies configuration for the Supervisor control plane.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsControlPlane" + }, + "workloads": { + "description": "Supervisors.EnableSpec.workloads specifies configuration for compute, network, and storage for workloads.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsWorkloads" + } + }, + "required": [ + "zones", + "name", + "control_plane", + "workloads" + ] + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersCreateSpec", + "description": "the {#link CreateSpec} describing the identity provider to be registered." + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersCreateSpec": { + "type": "object", + "properties": { + "display_name": { + "description": "A name to be used for the given identity provider. This name will be displayed in the vCenter UI.", + "type": "string" + }, + "issuer_URL": { + "description": "The URL to the identity provider issuing tokens. The OIDC discovery URL will be derived from the issuer URL, according to RFC8414: https://issuerURL/.well-known/openid-configuration. This must use HTTPS as the scheme.", + "type": "string" + }, + "username_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the username for the given user.\nIf unset, the upstream issuer URL will be concatenated with the 'sub' claim to generate the username to be used with Kubernetes.", + "type": "string" + }, + "groups_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the groups for the given user.\nIf unset, no groups will be used from the upstream identity provider.", + "type": "string" + }, + "client_ID": { + "description": "The clientID is the OAuth 2.0 client ID registered in the upstream identity provider and used by the Supervisor.", + "type": "string" + }, + "client_secret": { + "description": "The OAuth 2.0 client secret to be used by the Supervisor when authenticating to the upstream identity provider.", + "type": "string", + "format": "password" + }, + "certificate_authority_data": { + "description": "Certificate authority data to be used to establish HTTPS connections with the identity provider. This must be a PEM-encoded value.\nIf unset, HTTPS connections with the upstream identity provider will rely on a default set of system trusted roots.", + "type": "string" + }, + "additional_scopes": { + "description": "Additional scopes to be requested in tokens issued by this identity provider.\nIf unset, no additional scopes will be requested.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_authorize_parameters": { + "description": "Any additional parameters to be sent to the upstream identity provider during the authorize request in the OAuth2 authorization code flow. One use case is to pass in a default tenant ID if you have a multi-tenant identity provider. For instance, with VMware's Cloud Services Platform, if your organization ID is 'long-form-org-id', the 'orgLink' parameter can be set to \"/csp/gateway/am/api/orgs/long-form-org-id\" to allow users logging in to leverage that organization.\nIf unset, no additional parameters will be sent to the upstream identity provider.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "display_name", + "issuer_URL", + "client_ID", + "client_secret" + ] + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersInfo": { + "type": "object", + "properties": { + "provider": { + "description": "The immutable identifier of an identity provider generated when an identity provider is registered for a Supervisor.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + }, + "display_name": { + "description": "A name to be used for the given identity provider. This name will be displayed in the vCenter UI.", + "type": "string" + }, + "issuer_URL": { + "description": "The URL to the identity provider issuing tokens. The OIDC discovery URL will be derived from the issuer URL, according to RFC8414: https://issuerURL/.well-known/openid-configuration. This must use HTTPS as the scheme.", + "type": "string" + }, + "username_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the username for the given user.\nIf unset, the upstream issuer URL will be concatenated with the 'sub' claim to generate the username to be used with Kubernetes.", + "type": "string" + }, + "groups_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the groups for the given user.\nIf unset, no groups will be used from the upstream identity provider.", + "type": "string" + }, + "client_ID": { + "description": "The clientID is the OAuth 2.0 client ID registered in the upstream identity provider and used by the Supervisor.", + "type": "string" + }, + "certificate_authority_data": { + "description": "The certificate authority data holds the trusted roots to be used to establish HTTPS connections with the identity provider.\nIf unset, HTTPS connections with the upstream identity provider will rely on a default set of system trusted roots.", + "type": "string" + }, + "additional_scopes": { + "description": "Additional scopes to be requested in tokens issued by this identity provider. The 'openid' scope will always be requested.\nIf unset, no additional scopes will be requested.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_authorize_parameters": { + "description": "Any additional parameters to be sent to the upstream identity provider during the authorize request in the OAuth2 authorization code flow. One use case is to pass in a default tenant ID if you have a multi-tenant identity provider. For instance, with VMware's Cloud Services Platform, if your organization ID is 'long-form-org-id', the 'orgLink' parameter can be set to \"/csp/gateway/am/api/orgs/long-form-org-id\" to allow users logging in to leverage that organization.\nIf unset, no additional parameters will be sent to the upstream identity provider.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "provider", + "display_name", + "issuer_URL", + "client_ID" + ] + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersSet": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersSetSpec", + "description": "the {#link SetSpec} to be applied to the identity provider configuration." + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersSetSpec": { + "type": "object", + "properties": { + "display_name": { + "description": "A name to be used for the given identity provider. This name will be displayed in the vCenter UI.", + "type": "string" + }, + "issuer_URL": { + "description": "The URL to the identity provider issuing tokens. The OIDC discovery URL will be derived from the issuer URL, according to RFC8414: https://issuerURL/.well-known/openid-configuration. This must use HTTPS as the scheme.", + "type": "string" + }, + "username_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the username for the given user.\nIf unset, the upstream issuer URL will be concatenated with the 'sub' claim to generate the username to be used with Kubernetes.", + "type": "string" + }, + "groups_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the groups for the given user.\nIf unset, no groups will be used from the upstream identity provider.", + "type": "string" + }, + "client_ID": { + "description": "The clientID is the OAuth 2.0 client ID registered in the upstream identity provider and used by the Supervisor.", + "type": "string" + }, + "client_secret": { + "description": "The OAuth 2.0 client secret to be used by the Supervisor when authenticating to the upstream identity provider.", + "type": "string", + "format": "password" + }, + "certificate_authority_data": { + "description": "Certificate authority data to be used to establish HTTPS connections with the identity provider. This must be a PEM-encoded value.\nIf unset, HTTPS connections with the upstream identity provider will rely on a default set of system trusted roots.", + "type": "string" + }, + "additional_scopes": { + "description": "Additional scopes to be requested in tokens issued by this identity provider.\nIf unset, no additional scopes will be requested.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_authorize_parameters": { + "description": "Any additional parameters to be sent to the upstream identity provider during the authorize request in the OAuth2 authorization code flow. One use case is to pass in a default tenant ID if you have a multi-tenant identity provider. For instance, with VMware's Cloud Services Platform, if your organization ID is 'long-form-org-id', the 'orgLink' parameter can be set to \"/csp/gateway/am/api/orgs/long-form-org-id\" to allow users logging in to leverage that organization.\nIf unset, no additional parameters will be sent to the upstream identity provider.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "display_name", + "issuer_URL", + "client_ID", + "client_secret" + ] + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersSummary": { + "type": "object", + "properties": { + "provider": { + "description": "The immutable identifier of an identity provider generated when an identity provider is registered for a Supervisor.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + }, + "display_name": { + "description": "A name to be used for the given identity provider. This name will be displayed in the vCenter UI.", + "type": "string" + } + }, + "required": [ + "provider", + "display_name" + ] + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsIdentityProvidersUpdateSpec", + "description": "the {#UpdateSpec} to be applied to the identity provider configuration." + }, + "VcenterNamespaceManagementSupervisorsIdentityProvidersUpdateSpec": { + "type": "object", + "properties": { + "display_name": { + "description": "A name to be used for the given identity provider. This name will be displayed in the vCenter UI.\nif unset, the name will remained unchanged.", + "type": "string" + }, + "issuer_URL": { + "description": "The URL to the identity provider issuing tokens. The OIDC discovery URL will be derived from the issuer URL, according to RFC8414: https://issuerURL/.well-known/openid-configuration. This must use HTTPS as the scheme.\nIf unset, the issuer URL will not be updated.", + "type": "string" + }, + "username_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the username for the given user.\nIf unset, the username claim will not be updated.", + "type": "string" + }, + "unset_username_claim": { + "description": "This represents the intent of the change to Providers.UpdateSpec.username-claim. If this field is set to true, the existing 'usernameClaim' value will be removed. If this field is set to false, the existing username claim will be changed to the value specified in Providers.UpdateSpec.username-claim, if any.\nIf unset, the existing 'usernameClaim' value will be changed to the value specified in Providers.UpdateSpec.username-claim, if any.", + "type": "boolean" + }, + "groups_claim": { + "description": "The claim from the upstream identity provider ID token or user info endpoint to inspect to obtain the groups for the given user.\nIf unset, the groups claim will not be updated.", + "type": "string" + }, + "unset_groups_claim": { + "description": "This represents the intent of the change to Providers.UpdateSpec.groups-claim. If this field is set to true, the existing 'groupsClaim' value will be removed. If this field is set to false, the existing groups claim will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.\nIf unset, the existing 'groupsClaim' value will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.", + "type": "boolean" + }, + "client_ID": { + "description": "The clientID is the OAuth 2.0 client ID registered in the upstream identity provider and used by the Supervisor.\nIf unset, the client ID will not be updated.", + "type": "string" + }, + "client_secret": { + "description": "The OAuth 2.0 client secret to be used by the Supervisor when authenticating to the upstream identity provider.\nIf unset, the client secret will not be updated.", + "type": "string", + "format": "password" + }, + "certificate_authority_data": { + "description": "Certificate authority data to be used to establish HTTPS connections with the identity provider. This must be a PEM-encoded value.\nIf unset, the certificate authority data will not be updated.", + "type": "string" + }, + "unset_certificate_authority_data": { + "description": "This represents the intent of the change to Providers.UpdateSpec.certificate-authority-data. If this field is set to true, the existing 'certificateAuthorityData' value will be removed. If this field is set to false, the existing certificate authority data will be changed to the value specified in Providers.UpdateSpec.certificate-authority-data, if any.\nIf unset, the existing 'certificateAuthorityData' value will be changed to the value specified in Providers.UpdateSpec.certificate-authority-data, if any.", + "type": "boolean" + }, + "additional_scopes": { + "description": "Additional scopes to be requested in tokens issued by this identity provider.\nIf unset, the additional scopes will not be updated.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_authorize_parameters": { + "description": "Any additional parameters to be sent to the upstream identity provider during the authorize request in the OAuth2 authorization code flow. One use case is to pass in a default tenant ID if you have a multi-tenant identity provider. For instance, with VMware's Cloud Services Platform, if your organization ID is 'long-form-org-id', the 'orgLink' parameter can be set to \"/csp/gateway/am/api/orgs/long-form-org-id\" to allow users logging in to leverage that organization.\nIf unset, the additional parameters will not be updated.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "VcenterNamespaceManagementSupervisorsImageRegistry": { + "type": "object", + "properties": { + "hostname": { + "description": "IP address or the hostname of container image registry.", + "type": "string" + }, + "port": { + "description": "Port number of the container image registry.\nIf unset, defaults to 443.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "hostname" + ] + }, + "VcenterNamespaceManagementSupervisorsImageSyncConfig": { + "type": "object", + "properties": { + "registry": { + "description": "The ImageSyncConfig.registry structure contains the specification required to configure container image registry endpoint.\nDefaults to Docker Hub if unset.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsImageRegistry" + }, + "repository": { + "description": "The ImageSyncConfig.repository specifies the default container image repository to use when the Kubernetes Pod specification does not specify it. For example, hub.docker.com is the image repository for a Pod whose image specification is hub.docker.com/nginx.\n\nIf unset, and if docker hub is the configured ImageSyncConfig.registry, then ImageSyncConfig.repository defaults to Docker Hub. If Docker Hub is not the configured image registry, ImageSyncConfig.repository remains unset. \nIf {#member} repository is unset, you must supply an image repository in your Pod spec or else images will not be able to be synced into the cluster.", + "type": "string" + }, + "kubernetes_content_library": { + "description": "ImageSyncConfig.kubernetes-content-library is the UUID of the Content Library which holds the VM Images for Tanzu Kubernetes Service for vSphere.\n \nThis Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository. Optionally, you can configure your own local content library and host images locally.\n\nIf the Content Library identifier is unset, you will not be able to deploy Tanzu Kubernetes Clusters.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "content_libraries": { + "description": "ImageSyncConfig.content-libraries is a list of Content Libraries that will be associated with a Supervisor.\n \nThis list refers to existing Content Libraries in the vSphere inventory. These Content Libraries and the Content Library items belonging to them will be read-only across all vSphere Namespaces. This list cannot overlap with the defaultKubernetesServiceContentLibrary.\n\nIf unset, no additional Content Libraries will be set for the Supervisor apart from the default Kubernetes Service Content Library.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsContentLibrarySpec" + } + } + } + }, + "VcenterNamespaceManagementSupervisorsKubeAPIServerOptions": { + "type": "object", + "properties": { + "security": { + "description": "KubeAPIServerOptions.security allows you to specify configuration options for the API server security.\n\nIf unset, default security parameters will be configured.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsKubeAPIServerSecurity" + } + } + }, + "VcenterNamespaceManagementSupervisorsKubeAPIServerSecurity": { + "type": "object", + "properties": { + "certificate_dns_names": { + "description": "KubeAPIServerSecurity.certificate-dns-names lists additional DNS names to associate with the Kubernetes API server.\n \nThese DNS names are embedded in the TLS certificate presented by the API server as subject alternative names, which can be used in conjunction with your DNS server to securely connect a client to the server.\n\nIf unset, no additional DNS names are embedded in the TLS certificate. Clients should use the IP address of the API server to connect securely.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "certificate_dns_names" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksManagementNetwork": { + "type": "object", + "properties": { + "network": { + "description": "Network.network is a unique identifier for this network which can be referenced later for updates or queries.\n\nIf unset, an ID will be generated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.Network.", + "type": "string" + }, + "backing": { + "description": "Network.backing specifies the network backing to use as the uplink to the management network.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksManagementNetworkBacking" + }, + "services": { + "description": "Network.services specifies which network services are configured on this network. These network services are expected to be accessible via the associated distributed virtual port group or distributed virtual switch.\n\nIf unset, network services may be automatically configured. If you want to disable any configuration of network services, explicitly set this structure to empty.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksServices" + }, + "ip_management": { + "description": "Network.ip-management describes how IP addressing is configured on this network.\n\nIf unset, this network becomes a DHCP network. Your DHCP server must support client identifiers to successfully enable a Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPManagement" + }, + "floating_IP_address": { + "description": "Network.floating-ip-address is an IP address that provides a stable endpoint to the control plane. This address if specified must be an unused statically allocated IP address on the management network.\n\nIf unset and the management network is a static network, this address should be allocated in a static IP configuration which occurs when IPManagement.dhcp-enabled is set to false. If unset and the management network is a DHCP network, The Supervisor will attempt to use the DHCP server to allocate this address. You should ensure the DHCP server is configured to persist IP addresses indefinitely using client identifiers if this configuration is used.", + "type": "string" + }, + "proxy": { + "description": "Proxy configuration will be applied to the Supervisor. The proxy should be reachable from the management network and will be used for image pulling and container traffic exiting out of the Supervisor.\n\nIf unset the settings will be inherited from the vCenter settings if available.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksManagementProxyConfiguration" + } + }, + "required": [ + "backing" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksManagementNetworkBacking": { + "type": "object", + "properties": { + "backing": { + "description": "Selects the backing used for a management network.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksManagementNetworkBackingEnum" + }, + "network": { + "description": "The Managed Object ID of the Network object.\n\nThis field is optional and it is only relevant when the value of NetworkBacking.backing is NETWORK.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + } + }, + "required": [ + "backing" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksManagementNetworkBackingEnum": { + "type": "string", + "description": "NetworkBackingEnum enumerates types of network backings supported by the Supervisor for the management network.", + "enum": [ + "NETWORK" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksManagementProxyConfiguration": { + "type": "object", + "properties": { + "proxy_settings_source": { + "description": "The source of the proxy settings. \n\nIf VC_INHERITED or NONE is specified, then the other configuration in ProxyConfiguration will be ignored.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksManagementProxySettingsSource" + }, + "https_proxy_config": { + "description": "HTTPS proxy configuration. Examples: \n\n - http://username:password@proxy.vmware.com:8080\n - https://proxy.vmware.com:4443\n \nThis will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\n\nIf unset no HTTPS proxy will be used.", + "type": "string" + }, + "http_proxy_config": { + "description": "HTTP proxy configuration. Examples: \n\n - http://username:password@proxy.vmware.com:8080\n - https://proxy.vmware.com:4443\n \nThis will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\n\nIf unset no HTTP proxy will be used.", + "type": "string" + }, + "no_proxy_config": { + "description": "List of addresses that should be accessed directly. \n\nThis will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\n\nIf unset there won't be any excluded addresses.", + "type": "array", + "items": { + "type": "string" + } + }, + "tls_root_ca_bundle": { + "description": "Proxy TLS root CA bundle which will be used to verify the proxy's certificates. Every certificate in the bundle is expected to be in PEM format. \n\nThis will be used if CLUSTER_CONFIGURED is used for the source, otherwise this will be ignored.\n\nIf unset only the vCenter certificates applied in VECS (VMware Endpoint Certificate Store) will be used.", + "type": "string" + } + }, + "required": [ + "proxy_settings_source" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksManagementProxySettingsSource": { + "type": "string", + "description": "The settings can be inherited from the vCenter settings, so the Supervisor settings will be synced. The settings can be applied directly on the Supervisor level, or the Supervisor can be configured not to use a proxy.", + "enum": [ + "VC_INHERITED", + "CLUSTER_CONFIGURED", + "NONE" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksWorkloadNetwork": { + "type": "object", + "properties": { + "network": { + "description": "Network.network is a unique identifier for this network which can be referenced later for updates or queries.\n\nIf unset, an ID will be generated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.Network.", + "type": "string" + }, + "network_type": { + "description": "Network.network-type describes the type of network.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksWorkloadNetworkType" + }, + "nsx": { + "description": "Network.nsx specifies network configuration that is specific to NSX-T networks.\n\nThis field is optional and it is only relevant when the value of Network.network-type is NSXT.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksWorkloadNsxNetwork" + }, + "vsphere": { + "description": "Network.vsphere specifies network configuration that is specific to vSphere networks.\n\nThis field is optional and it is only relevant when the value of Network.network-type is VSPHERE.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksWorkloadVSphereNetwork" + }, + "services": { + "description": "Network.services specifies which network services are configured on this network. These network services are expected to be accessible via the associated distributed virtual port group or distributed virtual switch.\n\nIf unset, network services may be automatically configured. If you want to disable any configuration of network services, explicitly set this structure to empty.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksServices" + }, + "ip_management": { + "description": "Network.ip-management describes how IP addressing is configured on this network.\n\nIf unset, this network becomes a DHCP network. Your DHCP server must support client identifiers to successfully enable a Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksIPManagement" + } + }, + "required": [ + "network_type" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksWorkloadNetworkType": { + "type": "string", + "description": "NetworkType enumerates types of networks supported by the Supervisor for workloads.", + "enum": [ + "NSXT", + "VSPHERE" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksWorkloadNsxNetwork": { + "type": "object", + "properties": { + "dvs": { + "description": "NsxNetwork.dvs is the Managed Object ID of a vSphere Distributed Virtual Switch. You can use it to connect to an NSX-T Network.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedSwitch. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedSwitch.", + "type": "string" + }, + "namespace_subnet_prefix": { + "description": "NsxNetwork.namespace-subnet-prefix indicates the size of the subnet reserved for namespace segments.\n\nDefaults to /28.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "dvs" + ] + }, + "VcenterNamespaceManagementSupervisorsNetworksWorkloadVSphereNetwork": { + "type": "object", + "properties": { + "dvpg": { + "description": "VSphereNetwork.dvpg is the Managed Object ID of a vSphere Distributed Virtual Port Group. You can use it to connect to a vSphere Network.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vSphereDistributedPortGroup. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vSphereDistributedPortGroup.", + "type": "string" + } + }, + "required": [ + "dvpg" + ] + }, + "VcenterNamespaceManagementSupervisorsSizingHint": { + "type": "string", + "description": "The SizingHint enumerated type determines the configuration of Kubernetes API server and the worker nodes. It also determines the default values associated with the maximum number of pods and services. Use ClusterSizeInfo.get to get information associated with a SizingHint.", + "enum": [ + "TINY", + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryConfigStatus": { + "type": "string", + "description": "The Summary.ConfigStatus enumerated type describes the status of reaching the desired state configuration for the Supervisor.", + "enum": [ + "CONFIGURING", + "REMOVING", + "RUNNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryFilterSpec": { + "type": "object", + "properties": { + "config_status": { + "description": "Matches Supervisors with Summary.Info.config-status equal to the specified value.\nif unset this filter is not applied.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryConfigStatus" + }, + "kubernetes_status": { + "description": "Matches Supervisors with the Summary.Info.kubernetes-status equal to the specified value.\nif unset this filter is not applied.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryKubernetesStatus" + } + } + }, + "VcenterNamespaceManagementSupervisorsSummaryInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Supervisor.", + "type": "string" + }, + "stats": { + "description": "Basic runtime statistics for the Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryStats" + }, + "config_status": { + "description": "Current status of reaching the desired state configuration for the Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryConfigStatus" + }, + "kubernetes_status": { + "description": "Current Status of the Supervisor's ability to deploy pods.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryKubernetesStatus" + } + }, + "required": [ + "name", + "stats", + "config_status", + "kubernetes_status" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryKubernetesStatus": { + "type": "string", + "description": "The Summary.KubernetesStatus enumerated type describes the Supervisor's ability to deploy pods.", + "enum": [ + "READY", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryListItem": { + "type": "object", + "properties": { + "supervisor": { + "description": "The immutable identifier of the Supervisor generated during enablement.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "info": { + "description": "The current state of the Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryInfo" + } + }, + "required": [ + "supervisor", + "info" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryListResult": { + "type": "object", + "properties": { + "items": { + "description": "List of items.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsSummaryListItem" + } + } + }, + "required": [ + "items" + ] + }, + "VcenterNamespaceManagementSupervisorsSummaryStats": { + "type": "object", + "properties": { + "cpu_used": { + "description": "Overall CPU usage of the Supervisor, in MHz. This is the sum of CPU usage across all worker nodes in the Supervisor.", + "type": "integer", + "format": "int64" + }, + "cpu_capacity": { + "description": "Total CPU capacity in the Supervisor, in MHz. This is the sum of CPU capacities from all worker nodes in the Supervisor.", + "type": "integer", + "format": "int64" + }, + "memory_used": { + "description": "Overall memory usage of the Supervisor, in mebibytes. This is the sum of memory usage across all worker nodes in the Supervisor.", + "type": "integer", + "format": "int64" + }, + "memory_capacity": { + "description": "Total memory capacity of the Supervisor in mebibytes. This is the sum of memory capacities from all worker nodes in the Supervisor.", + "type": "integer", + "format": "int64" + }, + "storage_used": { + "description": "Overall storage used by the Supervisor, in mebibytes. This is the sum of storage used across all worker nodes in the Supervisor.", + "type": "integer", + "format": "int64" + }, + "storage_capacity": { + "description": "Overall storage capacity of the Supervisor, in mebibytes. This is the sum of total storage available from all worker nodes in the Cluster.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "cpu_used", + "cpu_capacity", + "memory_used", + "memory_capacity", + "storage_used", + "storage_capacity" + ] + }, + "VcenterNamespaceManagementSupervisorsTopologyInfo": { + "type": "object", + "properties": { + "zone": { + "description": "Identifier of this vSphere Zone.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.consumption_domains.Zone. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.consumption_domains.Zone.", + "type": "string" + }, + "clusters": { + "description": "A list of vSphere Cluster identifiers that are associated with the vSphere Zone.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "zone", + "clusters" + ] + }, + "VcenterNamespaceManagementSupervisorsWorkloads": { + "type": "object", + "properties": { + "network": { + "description": "The workloads Workloads.network describes configuration for the primary workload network.\n \nWorkloads will communicate with each other and will reach external networks over this network.\n \nThe IP ranges configured on this network are managed primarily within Kubernetes.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsNetworksWorkloadNetwork" + }, + "edge": { + "description": "Workloads.edge configuration determines how network traffic will enter and leave the cluster.\n \nThe IP ranges configured on this network are managed by the Supervisor and the load balancer.", + "$ref": "#/definitions/VcenterNamespaceManagementNetworksEdgesEdge" + }, + "kube_API_server_options": { + "description": "Workloads.kube-api-server-options declares configuration options for the Kubernetes API Server.\n\nIf unset, the default configuration will be used.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsKubeAPIServerOptions" + }, + "images": { + "description": "Workloads.images specifies how images will be stored and pulled into the cluster.\n\nIf unset, image sync configuration will default to the settings described within the ImageSyncConfig structure.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsImageSyncConfig" + }, + "storage": { + "description": "Workloads.storage specifies which persistent storage is configured and accessible for workloads to consume. You can configure policies for both images and volumes.\n\nIf unset, configuration will be copied from the control plane when possible. If not, some storage features may be unavailable.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsWorkloadsStorageConfig" + } + }, + "required": [ + "network", + "edge" + ] + }, + "VcenterNamespaceManagementSupervisorsWorkloadsStorageConfig": { + "type": "object", + "properties": { + "cloud_native_file_volume": { + "description": "WorkloadsStorageConfig.cloud-native-file-volume specifies the Cloud Native Storage file volume support on the Supervisor. This feature provides ReadWriteMany container volumes support.\nIf unset, file volume support will not be enabled on the Supervisor.", + "$ref": "#/definitions/VcenterNamespaceManagementSupervisorsCNSFileConfig" + }, + "ephemeral_storage_policy": { + "description": "WorkloadsStorageConfig.ephemeral-storage-policy identifies the storage policy associated with ephemeral disks of all the Kubernetes PodVMs in the cluster.\nIf unset during cluster enablement, the ephemeral storage policy will be defaulted to the configured ControlPlane.storage-policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "image_storage_policy": { + "description": "The WorkloadsStorageConfig.image-storage-policy structure contains the specification required to configure storage used for PodVM container images.\nIf unset, the image storage policy will be set to the specified WorkloadsStorageConfig.ephemeral-storage-policy if provided. This field will inherit any defaults for ephemeral storage policy set by the system.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + } + } + }, + "VcenterNamespaceManagementSupportBundleLocation": { + "type": "object", + "properties": { + "url": { + "description": "Support Bundle Download URL.", + "type": "string" + }, + "wcp_support_bundle_token": { + "description": "Information about the token required in the HTTP GET request to generate the support bundle.", + "$ref": "#/definitions/VcenterNamespaceManagementSupportBundleToken" + } + }, + "required": [ + "url", + "wcp_support_bundle_token" + ] + }, + "VcenterNamespaceManagementSupportBundleToken": { + "type": "object", + "properties": { + "token": { + "description": "A one-time, short-lived token required in the HTTP header of the request to the url. This token needs to be passed in as a header with the name \"wcp-support-bundle-token\".", + "type": "string" + }, + "expiry": { + "description": "Expiry time of the token", + "type": "string" + } + }, + "required": [ + "token", + "expiry" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesConfigStatus": { + "type": "string", + "description": "ConfigStatus represents the config status of the VM class.", + "enum": [ + "READY", + "REMOVING" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesCreate": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesCreateSpec", + "description": "Information about the VM class object to be created." + }, + "VcenterNamespaceManagementVirtualMachineClassesCreateSpec": { + "type": "object", + "properties": { + "id": { + "description": "Identifier of the virtual machine class. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name is unique in this vCenter server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass.", + "type": "string" + }, + "cpu_count": { + "description": "The number of CPUs configured for virtual machine of this class.", + "type": "integer", + "format": "int64" + }, + "cpu_reservation": { + "description": "The percentage of total available CPUs reserved for a virtual machine. We multiply this percentage by the minimum frequency amongst all the cluster nodes to get the CPU reservation that is specified to vSphere in MHz.\nIf unset, no CPU reservation is requested for the virtual machine.", + "type": "integer", + "format": "int64" + }, + "memory_MB": { + "description": "The amount of memory in MB configured for virtual machine of this class.", + "type": "integer", + "format": "int64" + }, + "memory_reservation": { + "description": "The percentage of available memory reserved for a virtual machine of this class. Memory reservation must be set to 100% for VM class with vGPU or Dynamic DirectPath I/O devices.\nIf unset, no memory reservation is requested for virtual machine.", + "type": "integer", + "format": "int64" + }, + "description": { + "description": "Description for the VM class.\nIf unset, no description is added to the VM class.", + "type": "string" + }, + "devices": { + "description": "Virtual devices that will be attached to the VMs created with this class.\nIf unset, no Virtual device will be attached to the VMs created with this class.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesVirtualDevices" + }, + "instance_storage": { + "description": "Instance storage that will be attached to the VMs created with this class.\nIf unset, instance storage specification will not be created.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInstanceStorage" + }, + "config_spec": { + "description": "A VirtualMachineConfigSpec associated with the VM class.\nIf unset, no config spec will be associated to the VM Class.", + "type": "object" + } + }, + "required": [ + "id", + "cpu_count", + "memory_MB" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesDynamicDirectPathIODevice": { + "type": "object", + "properties": { + "vendor_id": { + "description": "The vendor ID of this device.", + "type": "integer", + "format": "int64" + }, + "device_id": { + "description": "The device ID of this device.", + "type": "integer", + "format": "int64" + }, + "custom_label": { + "description": "The custom label attached to this device.\nIf unset, custom label is not used to identify the device.", + "type": "string" + } + }, + "required": [ + "vendor_id", + "device_id" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesInfo": { + "type": "object", + "properties": { + "id": { + "description": "Identifier for the VM class.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.VirtualMachineClass.", + "type": "string" + }, + "cpu_count": { + "description": "The number of CPUs configured for virtual machine of this class.", + "type": "integer", + "format": "int64" + }, + "cpu_reservation": { + "description": "The percentage of total available CPUs reserved for a virtual machine. We multiply this percentage by the minimum frequency amongst all the cluster nodes to get the CPU reservation that is specified to vSphere in MHz.\nIf unset, no CPU reservation is requested for the virtual machine.", + "type": "integer", + "format": "int64" + }, + "memory_MB": { + "description": "The amount of memory in MB configured for virtual machine of this class.", + "type": "integer", + "format": "int64" + }, + "memory_reservation": { + "description": "The percentage of available memory reserved for a virtual machine of this class.\nIf unset, no memory reservation is requested for virtual machine.", + "type": "integer", + "format": "int64" + }, + "description": { + "description": "Description of the VM class.", + "type": "string" + }, + "namespaces": { + "description": "Set of Namespaces associated with this VM class.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespaces.Instance.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "vms": { + "description": "Set of virtual machines deployed for VM class.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "config_status": { + "description": "Configstatus of VM class", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesConfigStatus" + }, + "messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesMessage" + } + }, + "devices": { + "description": "Virtual devices corresponding to the VM class.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesVirtualDevices" + }, + "instance_storage": { + "description": "Instance storage associated with the VM class.\nIf unset, no instance storage is present.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInstanceStorage" + }, + "config_spec": { + "description": "A VirtualMachineConfigSpec associated with the VM class.\nIf unset, a config spec is not used to configure this VM class.", + "type": "object" + } + }, + "required": [ + "id", + "cpu_count", + "memory_MB", + "description", + "namespaces", + "vms", + "config_status", + "messages" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesInstanceStorage": { + "type": "object", + "properties": { + "policy": { + "description": "Policy corresponding to the instance storage. To use VM class with instance storage, this policy should also be associated with Supervisor namespace. See vcenter.namespaces.Instances.StorageSpec.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "volumes": { + "description": "List of instance storage volumes. At least one volume is required when configuring a VM class with instance storage.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInstanceStorageVolume" + } + } + }, + "required": [ + "policy", + "volumes" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesInstanceStorageVolume": { + "type": "object", + "properties": { + "size": { + "description": "The size of instance storage volume in mebibytes (MiB) available for the virtual machine of this class", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "size" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesMessageMessageSeverity" + }, + "details": { + "description": "Details about the message.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesMessageMessageSeverity": { + "type": "string", + "description": "The VirtualMachineClasses.Message.MessageSeverity enumerated type represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesUpdate": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesUpdateSpec", + "description": "Information about the VM class object to be updated." + }, + "VcenterNamespaceManagementVirtualMachineClassesUpdateSpec": { + "type": "object", + "properties": { + "cpu_count": { + "description": "The number of CPUs configured for virtual machine of this class.\nIf unset the current value the will not be modified.", + "type": "integer", + "format": "int64" + }, + "cpu_reservation": { + "description": "The percentage of total available CPUs reserved for a virtual machine. We multiply this percentage by the minimum frequency amongst all the cluster nodes to get the CPU reservation that is specified to vSphere in MHz.\nIf unset, no CPU reservation is requested for the virtual machine.", + "type": "integer", + "format": "int64" + }, + "memory_MB": { + "description": "The amount of memory in MB configured for virtual machine of this class.\nIf unset the current value the will not be modified.", + "type": "integer", + "format": "int64" + }, + "memory_reservation": { + "description": "The percentage of available memory reserved for a virtual machine of this class. Memory reservation must be set to 100% for VM class with vGPU or Dynamic DirectPath I/O devices.\nIf unset, no memory reservation is requested for virtual machine.", + "type": "integer", + "format": "int64" + }, + "description": { + "description": "Description for the VM class.\nIf unset, description is not updated.", + "type": "string" + }, + "devices": { + "description": "Virtual devices corresponding to the VM class.\nIf unset, virtual devices will not be updated.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesVirtualDevices" + }, + "instance_storage": { + "description": "Instance storage associated with the VM class.\nIf unset, instance storage specification will not be updated.", + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesInstanceStorage" + }, + "config_spec": { + "description": "A VirtualMachineConfigSpec associated with the VM class.\nIf unset, the config spec will not be updated.", + "type": "object" + } + } + }, + "VcenterNamespaceManagementVirtualMachineClassesVGPUDevice": { + "type": "object", + "properties": { + "profile_name": { + "description": "Profile name corresponding to the device.", + "type": "string" + } + }, + "required": [ + "profile_name" + ] + }, + "VcenterNamespaceManagementVirtualMachineClassesVirtualDevices": { + "type": "object", + "properties": { + "vgpu_devices": { + "description": "List of vGPU devices.\nIf unset, no vGPU devices are present.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesVGPUDevice" + } + }, + "dynamic_direct_path_IO_devices": { + "description": "List of Dynamic DirectPath I/O devices.\nIf unset, no Dynamic DirectPath I/O devices are present.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespaceManagementVirtualMachineClassesDynamicDirectPathIODevice" + } + } + } + }, + "VcenterNamespacesAccessCreate": { + "$ref": "#/definitions/VcenterNamespacesAccessCreateSpec", + "description": "Information about the access control to be created." + }, + "VcenterNamespacesAccessCreateSpec": { + "type": "object", + "properties": { + "role": { + "description": "Role to be assigned.", + "$ref": "#/definitions/VcenterNamespacesAccessRole" + }, + "identity_provider": { + "description": "UUID of an external identity provider for the user, if any. Use this field if the user is coming from an external identity provider configured via the vcenter.namespace_management.supervisors.identity.Providers service.\nIf unset, vCenter Single Sign-On will be used as the identity provider.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + } + }, + "required": [ + "role" + ] + }, + "VcenterNamespacesAccessInfo": { + "type": "object", + "properties": { + "role": { + "description": "Role of the subject on the namespace.", + "$ref": "#/definitions/VcenterNamespacesAccessRole" + }, + "identity_provider": { + "description": "UUID of an external identity provider for the user, if any. Use this field if the user is coming from an external identity provider configured via the vcenter.namespace_management.supervisors.identity.Providers service.\nIf unset, vCenter Single Sign-On will be used as the identity provider.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + }, + "inherited": { + "description": "Flag to indicate if the Access.Info.role is direct or inherited. The value is set to true if the Access.Info.role is inherited from group membership\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + } + }, + "required": [ + "role" + ] + }, + "VcenterNamespacesAccessRole": { + "type": "string", + "description": "The Access.Role enumerated type lists the default roles which can be associated with a subject on a domain on the namespace.", + "enum": [ + "OWNER", + "EDIT", + "VIEW" + ] + }, + "VcenterNamespacesAccessSet": { + "$ref": "#/definitions/VcenterNamespacesAccessSetSpec", + "description": "Information about the new access control to be assigned." + }, + "VcenterNamespacesAccessSetSpec": { + "type": "object", + "properties": { + "role": { + "description": "Role to be assigned.", + "$ref": "#/definitions/VcenterNamespacesAccessRole" + }, + "identity_provider": { + "description": "UUID of an external identity provider for the user, if any. Use this field if the user is coming from an external identity provider configured via the vcenter.namespace_management.supervisors.identity.Providers service.\nIf unset, vCenter Single Sign-On will be used as the identity provider.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + } + }, + "required": [ + "role" + ] + }, + "VcenterNamespacesAccessSubjectType": { + "type": "string", + "description": "The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace.", + "enum": [ + "USER", + "GROUP" + ] + }, + "VcenterNamespacesInstancesAccess": { + "type": "object", + "properties": { + "subject_type": { + "description": "Type of the subject.", + "$ref": "#/definitions/VcenterNamespacesAccessSubjectType" + }, + "subject": { + "description": "Name of the subject.", + "type": "string" + }, + "domain": { + "description": "Domain of the subject.", + "type": "string" + }, + "role": { + "description": "Role of the subject on the namespace instance.", + "$ref": "#/definitions/VcenterNamespacesAccessRole" + }, + "identity_provider": { + "description": "UUID of an external identity provider for the user, if any. Use this field if the user is coming from an external identity provider configured via the vcenter.namespace_management.supervisors.identity.Providers service.\nIf unset, vCenter Single Sign-On will be used as the identity provider.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.identity.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.identity.Provider.", + "type": "string" + } + }, + "required": [ + "subject_type", + "subject", + "domain", + "role" + ] + }, + "VcenterNamespacesInstancesConfigStatus": { + "type": "string", + "description": "The Instances.ConfigStatus enumerated type describes the status of reaching the desired state configuration for the namespace.", + "enum": [ + "CONFIGURING", + "REMOVING", + "RUNNING", + "ERROR" + ] + }, + "VcenterNamespacesInstancesContentLibrarySpec": { + "type": "object", + "properties": { + "content_library": { + "description": "Content Library ID used by the VM Image Service. The Content Library specified should exist in vSphere inventory.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "writable": { + "description": "Flag to indicate if the Content Library is writable. When set to true, users with Access.Info.role of type OWNER or EDIT on a Supervisor namespace can add or delete Content Library items in vSphere from this Supervisor namespace. A subscribed Content Library is not allowed to be marked as writable. \nAn InvalidArgument error will be thrown from Instances.create operation, Instances.update operation and Instances.set operation if a subscribed Content Library has the Instances.ContentLibrarySpec.writable flag set to true.\n\nIf unset, the value defaults to false and the Content Library is read-only to users.", + "type": "boolean" + } + }, + "required": [ + "content_library" + ] + }, + "VcenterNamespacesInstancesCreate": { + "$ref": "#/definitions/VcenterNamespacesInstancesCreateSpec", + "description": "The specification for setting up the namespace." + }, + "VcenterNamespacesInstancesCreateSpec": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster on which the namespace is being created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the namespace. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name is unique across all Namespaces in this vCenter server. In this version, this maps to the name of a Kubernetes namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "description": { + "description": "Description for the namespace.\nIf unset, no description is added to the namespace.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.\nIf unset, no resource limits will be set on the namespace.", + "type": "object" + }, + "access_list": { + "description": "Access controls associated with the namespace.\nIf unset, only users with Administrator role can access the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.\nIf unset, storage policies will not be associated with the namespace which will prevent users from being able to provision pods with persistent storage on the namespace. Users will be able to provision pods which use local storage.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed on NSX-T. \nWhen using NSXT_CONTAINER_PLUGIN as network provider, a new network dedicated to the namespace will be created as part of namespace creation to override cluster network configs if Instances.NsxNetworkCreateSpec is set.\n \nIf the field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\n\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be used by the VM Image Service but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n\nIf unset, no additional Content Libraries will be configured for the VM Image Service except for the Content Libraries specified in {VMServiceSpec#contentLibraries}.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + }, + "creator": { + "description": "Creator of the namespace. Namespace self-service uses this field to populate the user who created this namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesPrincipal" + }, + "namespace_network": { + "description": "This field that accepts parameters to define a vSphere Namespace Network object that will automatically be associated with this Namespace. Networks created in this operation will be given an autogenerated ID and cannot be referenced by other Namespaces.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesNetworkCreateSpec" + } + }, + "required": [ + "cluster", + "namespace" + ] + }, + "VcenterNamespacesInstancesCreateSpecV2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the sSupervisor hosting the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the namespace. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name is unique across all Namespaces in this vCenter server. In this version, this maps to the name of a Kubernetes namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "description": { + "description": "Description for the namespace.\nIf unset, no description is added to the namespace.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.\nIf unset, no resource limits will be set on the namespace.", + "type": "object" + }, + "access_list": { + "description": "Access controls associated with the namespace.\nIf unset, only users with Administrator role can access the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.\nIf unset, storage policies will not be associated with the namespace which will prevent users from being able to provision pods with persistent storage on the namespace. Users will be able to provision pods which use local storage.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed on NSX-T. \nWhen using NSXT_CONTAINER_PLUGIN as network provider, a new network dedicated to the namespace will be created as part of namespace creation to override cluster network configs if Instances.NsxNetworkCreateSpec is set.\n \nIf the field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\n\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be used by the VM Image Service but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n\nIf unset, no additional Content Libraries will be configured for the VM Image Service except for the Content Libraries specified in {VMServiceSpec#contentLibraries}.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + }, + "creator": { + "description": "Creator of the namespace. Namespace self-service uses this field to populate the user who created this namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesPrincipal" + }, + "namespace_network": { + "description": "This field that accepts parameters to define a vSphere Namespace Network object that will automatically be associated with this Namespace. Networks created in this operation will be given an autogenerated ID and cannot be referenced by other Namespaces.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesNetworkCreateSpec" + } + }, + "required": [ + "supervisor", + "namespace" + ] + }, + "VcenterNamespacesInstancesCreateV2": { + "$ref": "#/definitions/VcenterNamespacesInstancesCreateSpecV2", + "description": "The specification for setting up the namespace." + }, + "VcenterNamespacesInstancesInfo": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster hosting the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "config_status": { + "description": "Current setting for Instances.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespacesInstancesConfigStatus" + }, + "messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesMessage" + } + }, + "stats": { + "description": "Basic runtime statistics for the namespace.", + "$ref": "#/definitions/VcenterNamespacesInstancesStats" + }, + "description": { + "description": "Description of the namespace.", + "type": "string" + }, + "resource_spec": { + "description": "Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are associated with the namespace.", + "type": "object" + }, + "access_list": { + "description": "Access controls associated with the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Networks associated with the namespace.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be included in this list but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n\nIf unset, no Content Libraries are configured for the VM Image Service.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + }, + "creator": { + "description": "Creator of the namespace. Namespace self-service uses this field to populate the user who created this namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesPrincipal" + }, + "self_service_namespace": { + "description": "Flag to indicate the self service namespace.\nIf unset, the namespace is not marked as self service namespace.", + "type": "boolean" + } + }, + "required": [ + "cluster", + "config_status", + "messages", + "stats", + "description", + "access_list", + "storage_specs" + ] + }, + "VcenterNamespacesInstancesInfoV2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor hosting the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "config_status": { + "description": "Current setting for Instances.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespacesInstancesConfigStatus" + }, + "messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesMessage" + } + }, + "stats": { + "description": "Basic runtime statistics for the namespace.", + "$ref": "#/definitions/VcenterNamespacesInstancesStats" + }, + "description": { + "description": "Description of the namespace.", + "type": "string" + }, + "resource_spec": { + "description": "Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are associated with the namespace.", + "type": "object" + }, + "access_list": { + "description": "Access controls associated with the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Networks associated with the namespace.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be included in this list but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n\nIf unset, no Content Libraries are configured for the VM Image Service.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + }, + "creator": { + "description": "Creator of the namespace. Namespace self-service uses this field to populate the user who created this namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesPrincipal" + }, + "self_service_namespace": { + "description": "Flag to indicate the self service namespace.\nIf unset, the namespace is not marked as self service namespace.", + "type": "boolean" + } + }, + "required": [ + "supervisor", + "config_status", + "messages", + "stats", + "description", + "access_list", + "storage_specs" + ] + }, + "VcenterNamespacesInstancesIpv4Cidr": { + "type": "object", + "properties": { + "address": { + "description": "The IPv4 address.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "VcenterNamespacesInstancesLoadBalancerSize": { + "type": "string", + "description": "The Instances.LoadBalancerSize enumerates the kinds of load balancer sizes supported by NSX. Small load balancer can host 10 to 20 virtual servers depending on NSX-T version. Medium load balancer can host 100 virtual servers. Large load balancer can host 1000 virtual servers.", + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "VcenterNamespacesInstancesMessage": { + "type": "object", + "properties": { + "severity": { + "description": "Type of the message.", + "$ref": "#/definitions/VcenterNamespacesInstancesMessageMessageSeverity" + }, + "details": { + "description": "Details about the message.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "severity" + ] + }, + "VcenterNamespacesInstancesMessageMessageSeverity": { + "type": "string", + "description": "The Instances.Message.MessageSeverity enumerated type represents the severity of the message.", + "enum": [ + "INFO", + "WARNING", + "ERROR" + ] + }, + "VcenterNamespacesInstancesNetworkCreateSpec": { + "type": "object", + "properties": { + "network_provider": { + "description": "The network provider that will manage the vSphere Namespaces network object.", + "$ref": "#/definitions/VcenterNamespacesInstancesNetworkProvider" + }, + "network": { + "description": "The create spec for an NSXT-backed Namespaces network configuration, supported by NSXT_CONTAINER_PLUGIN network provider.\nThis field is optional and it is only relevant when the value of Instances.NetworkCreateSpec.network-provider is NSXT_CONTAINER_PLUGIN.", + "$ref": "#/definitions/VcenterNamespacesInstancesNsxNetworkCreateSpec" + } + }, + "required": [ + "network_provider" + ] + }, + "VcenterNamespacesInstancesNetworkProvider": { + "type": "string", + "description": "Identifies the network plugin that networking functionalities for this vSphere Namespace.", + "enum": [ + "NSXT_CONTAINER_PLUGIN", + "VSPHERE_NETWORK" + ] + }, + "VcenterNamespacesInstancesNsxNetworkCreateSpec": { + "type": "object", + "properties": { + "namespace_network_cidrs": { + "description": "CIDR blocks from which Kubernetes allocates IP addresss for all workloads that attach to the namespace, including PodVMs, TKGS and VM Service VMs. This range should not overlap with those in Instances.NsxNetworkCreateSpec.ingress-cidrs, Instances.NsxNetworkCreateSpec.egress-cidrs, or other services running in the datacenter.\nThis field is required when Instances.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Instances.NsxNetworkCreateSpec.ingress-cidrs, Instances.NsxNetworkCreateSpec.egress-cidrs are specified. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesIpv4Cidr" + } + }, + "ingress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses for Kubernetes Ingresses and Kubernetes Services of type LoadBalancer. These ranges should not overlap with those in Instances.NsxNetworkCreateSpec.namespace-network-cidrs, Instances.NsxNetworkCreateSpec.egress-cidrs, or other services running in the datacenter.\nThis field is required when Instances.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Instances.NsxNetworkCreateSpec.namespace-network-cidrs, Instances.NsxNetworkCreateSpec.egress-cidrs are specified. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesIpv4Cidr" + } + }, + "egress_cidrs": { + "description": "CIDR blocks from which NSX assigns IP addresses used for performing SNAT from container IPs to external IPs. These ranges should not overlap with those in Instances.NsxNetworkCreateSpec.namespace-network-cidrs, Instances.NsxNetworkCreateSpec.ingress-cidrs, or other services running in the datacenter.\nThis field is required when Instances.NsxNetworkCreateSpec.routed-mode is set to False and Instances.NsxNetworkCreateSpec.nsx-tier0-gateway or any of Instances.NsxNetworkCreateSpec.namespace-network-cidrs, Instances.NsxNetworkCreateSpec.ingress-cidrs is specified. When Instances.NsxNetworkCreateSpec.routed-mode is set to True, this field is not allowed. An update operation only allows for addition of new CIDR blocks to the existing list.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesIpv4Cidr" + } + }, + "nsx_tier0_gateway": { + "description": "NSX Tier0 Gateway used for this namespace. This field does not allow update once applied.\nIf unset, cluster level settings specified in vcenter.namespace_management.Clusters.NCPClusterNetworkInfo#nsxTier0Gateway will be applied.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NSXTier0Gateway. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NSXTier0Gateway.", + "type": "string" + }, + "subnet_prefix_length": { + "description": "Size of the subnet reserved for namespace segments.\nIf unset, cluster level settings specified in vcenter.namespace_management.Clusters.NCPClusterNetworkInfo#namespaceSubnetPrefix will be applied.", + "type": "integer", + "format": "int64" + }, + "routed_mode": { + "description": "Routed mode for this namespace. When set to True, the traffic in the namespace is not NATed.\nIf unset, defaults to False. When this field is set to True, Instances.NsxNetworkCreateSpec.egress-cidrs is not allowed. This field does not allow update once applied.", + "type": "boolean" + }, + "load_balancer_size": { + "description": "The size of the NSX Load Balancer used by the namespace. This field does not allow update once applied.\nIf unset, defaults to SMALL.", + "$ref": "#/definitions/VcenterNamespacesInstancesLoadBalancerSize" + } + } + }, + "VcenterNamespacesInstancesPrincipal": { + "type": "object", + "properties": { + "subject": { + "description": "Name of the subject.", + "type": "string" + }, + "domain": { + "description": "Domain of the subject.", + "type": "string" + } + }, + "required": [ + "subject", + "domain" + ] + }, + "VcenterNamespacesInstancesSet": { + "$ref": "#/definitions/VcenterNamespacesInstancesSetSpec", + "description": "New specification for the namespace." + }, + "VcenterNamespacesInstancesSetSpec": { + "type": "object", + "properties": { + "description": { + "description": "Description for the namespace.\nIf unset, the description of the namespace will be cleared.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quota for the namespace. This will replace the existing resource constraints on the namespace in entirety. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.\nIf unset, the resource constraints on the namespace will be cleared.", + "type": "object" + }, + "access_list": { + "description": "Access control associated with the namespace.\nIf unset, the existing access controls on the namespace will be removed and users will not be able to access this namespace to create new pods. Existing pods from users will continue to run.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.\nIf unset, the existing storage policies will be disassociated with the namespace and existing limits will be cleared. Pods which are already using persistent storage from the earlier version of storage policies will be able to access them till the datastores are attached to the worker nodes.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be included in this list but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n\nIf unset, the existing Content Libraries configured for the VM Image Service will be removed.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + } + }, + "VcenterNamespacesInstancesStats": { + "type": "object", + "properties": { + "cpu_used": { + "description": "Overall CPU usage of the namespace, in MHz. This is the sum of CPU usage across all pods in the Kubernetes namespace.", + "type": "integer", + "format": "int64" + }, + "memory_used": { + "description": "Overall memory usage of the namespace (in mebibytes). This is the sum of memory usage across all pods.", + "type": "integer", + "format": "int64" + }, + "storage_used": { + "description": "Overall storage used by the namespace (in mebibytes). This is the sum of storage used by pods across all datastores in the cluster associated with storage policies configured for the namespace.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "cpu_used", + "memory_used", + "storage_used" + ] + }, + "VcenterNamespacesInstancesStorageSpec": { + "type": "object", + "properties": { + "policy": { + "description": "ID of the storage policy. A Kubernetes storage class is created for this storage policy if it does not exist already.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "limit": { + "description": "The maximum amount of storage (in mebibytes) which can be utilized by the namespace for this specification.\nIf unset, no limits are placed.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy" + ] + }, + "VcenterNamespacesInstancesSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster hosting the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "description": { + "description": "Description of the namespace.", + "type": "string" + }, + "config_status": { + "description": "Current setting for Instances.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespacesInstancesConfigStatus" + }, + "stats": { + "description": "Basic runtime statistics for the namespace.", + "$ref": "#/definitions/VcenterNamespacesInstancesStats" + }, + "self_service_namespace": { + "description": "Flag to indicate the self service namespace.\nIf unset, the namespace is not marked as self service namespace.", + "type": "boolean" + } + }, + "required": [ + "cluster", + "namespace", + "description", + "config_status", + "stats" + ] + }, + "VcenterNamespacesInstancesSummaryV2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor hosting the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "description": { + "description": "Description of the namespace.", + "type": "string" + }, + "config_status": { + "description": "Current setting for Instances.ConfigStatus.", + "$ref": "#/definitions/VcenterNamespacesInstancesConfigStatus" + }, + "stats": { + "description": "Basic runtime statistics for the namespace.", + "$ref": "#/definitions/VcenterNamespacesInstancesStats" + }, + "self_service_namespace": { + "description": "Flag to indicate the self service namespace.\nIf unset, the namespace is not marked as self service namespace.", + "type": "boolean" + } + }, + "required": [ + "supervisor", + "namespace", + "description", + "config_status", + "stats" + ] + }, + "VcenterNamespacesInstancesUpdate": { + "$ref": "#/definitions/VcenterNamespacesInstancesUpdateSpec", + "description": "Specification for updating the namespace." + }, + "VcenterNamespacesInstancesUpdateSpec": { + "type": "object", + "properties": { + "description": { + "description": "Description for the namespace.\nIf unset, the description of the namespace will not be modified.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quota updates on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#updateResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1Update.\nIf unset, the resource constraints on the namespace will not be modified.", + "type": "object" + }, + "access_list": { + "description": "Access control associated with the namespace.\nIf unset, access controls on the namespace will not be modified. Existing pods from users will continue to run.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesAccess" + } + }, + "storage_specs": { + "description": "Storage associated with the namespace.\nIf unset, storage policies and their limit will not be modified. Pods which are already using persistent storage from the earlier version of storage policies will be able to access them till the datastores are attached to the worker nodes.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "vm_service_spec": { + "description": "VM Service specification associated with the namespace. \n NOTE: Any change in the VM Service Content Libraries associated with the namespace will be updated and merged with the the Content Library list in VM Image Service. If {UpdateSpec#contentLibraries} is unset, the Content Libraries specified here will be honored if no writable Content Libraries are removed from the current Content Library list by Instances.get operation, otherwise InvalidArgument error will be thrown.\n\nIf unset, the Content Libraries get configured based on the values in {UpdateSpec#contentLibraries}, if it is specified.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory. \nThe Content Libraries specified in {VMServiceSpec#contentLibraries} will also be included in this list but will be read-only by default to users. \n\nIf the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then: \n\n - The Content Library is only surfaced to users once. \n - The settings here are honored. \n \n NOTE: Any change in the VM Image Service Content Libraries associated with the namespace will be updated and merged with the Content Library list in Instances.VMServiceSpec. If {UpdateSpec#vmServiceSpec#contentLibraries} is unset, the Content Libraries specified here will be honored and the Content Libraries removed from the current Content Library list by Instances.get operation will also be removed from VM Service.\n\nIf unset, the Content Libraries get configured based on the values in {UpdateSpec#vmServiceSpec#contentLibraries}, if it is specified.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + } + }, + "VcenterNamespacesInstancesVMServiceSpec": { + "type": "object", + "properties": { + "content_libraries": { + "description": "Set of Content Libraries for use by the VM Service. The Content Libraries specified should exist in vSphere inventory. \nThe Content Libraries specified for the VM Image Service, using {CreateSpec#contentLibraries} during Instances.create operation or {UpdateSpec#contentLibraries} during Instances.update operation or {SetSpec#contentLibraries} during Instances.set operation will also be included in this list. \n\nIf the same Content Library is present both here and in VM Image Service specification, then: \n\n - The Content Library is only surfaced to users once. \n - The settings in VM Image Service specification are honored. \n\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: content.Library. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: content.Library.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "vm_classes": { + "description": "Set of VirtualMachineClasses for use by the VM Service. The class names specified here should exist in vSphere inventory. If this field is empty in an updated specification, all VirtualMachineClasses that are currently associated with the namespace will be disassociated from it. \n NOTE: Any change in virtual machine classes associated with the namespace will not impact existing VMs.\n\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.VirtualMachineClass. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.VirtualMachineClass.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterNamespacesNamespaceSelfServiceActivateTemplateSpec": { + "type": "object", + "properties": { + "template": { + "description": "Identifier of the namespace template that is being activated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + }, + "permissions": { + "description": "Namespace Self Service permission to subjects.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSubject" + } + }, + "resource_spec": { + "description": "Resource quotas that the template defines. Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.", + "type": "object" + }, + "storage_specs": { + "description": "Storage associated with the self service namespace.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN as the network provider, since the network(s) for this namespace will be managed by NSX-T Container Plugin. If field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "items": { + "type": "string" + } + }, + "vm_service_spec": { + "description": "VM Service specification to be associated with the namespace template. Namespaces created using this template will have access to the virtual machine classes and Content Libraries specified in this {ActivateTemplateSpec#vmServiceSpec} by default.\nIf unset, the namespaces created using this template will not have access to any virtual machine classes, and to any Content Libraries by default unless Content Libraries are specified in the {ActivateTemplateSpec#contentLibraries}.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "Content Library specifications to be associated with the namespace template. Namespaces created using this template will have access to the Content Libraries specified in this {ActivateTemplateSpec#contentLibraries} by default.\nIf unset, the namespaces created using this template will not have access to any Content Libraries by default unless Content Libraries are specified in the {ActivateTemplateSpec#vmServiceSpec}.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + }, + "required": [ + "template", + "permissions", + "resource_spec", + "storage_specs" + ] + }, + "VcenterNamespacesNamespaceSelfServiceActivateWithTemplate": { + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceActivateTemplateSpec", + "description": "Specification for activating namespace self service on the cluster by granting users/groups to create Supervisor Namespaces." + }, + "VcenterNamespacesNamespaceSelfServiceCapability": { + "type": "string", + "description": "The NamespaceSelfService.Capability enumerated type describes the self-service namespace capability of the cluster on which vSphere Namespaces enabled.", + "enum": [ + "UNKNOWN", + "SUPPORTED", + "NOTSUPPORTED" + ] + }, + "VcenterNamespacesNamespaceSelfServiceInfo": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the cluster to which namespace service is associated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "capability": { + "description": "The self-service namespace capability of the cluster with vSphere Namespaces enabled.", + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceCapability" + }, + "status": { + "description": "The current status of the namespace-self-service.", + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceStatus" + }, + "messages": { + "description": "Current set of messages associated with the object.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesMessage" + } + } + }, + "required": [ + "cluster", + "capability", + "status", + "messages" + ] + }, + "VcenterNamespacesNamespaceSelfServiceStatus": { + "type": "string", + "description": "The page describes the status of the namespace self-service on the cluster on which vSphere Namespaces enabled.", + "enum": [ + "CONFIGURING", + "RUNNING", + "REMOVING", + "DEACTIVATED", + "ERROR" + ] + }, + "VcenterNamespacesNamespaceSelfServiceSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the cluster to which namespace service is associated.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "capability": { + "description": "The self-service namespace capability of the cluster with vSphere Namespaces enabled.", + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceCapability" + }, + "status": { + "description": "The current status of the namespace-self-service.", + "$ref": "#/definitions/VcenterNamespacesNamespaceSelfServiceStatus" + } + }, + "required": [ + "cluster", + "capability", + "status" + ] + }, + "VcenterNamespacesNamespaceTemplatesCreate": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesCreateSpec", + "description": "Specification for setting up the namespace template." + }, + "VcenterNamespacesNamespaceTemplatesCreateSpec": { + "type": "object", + "properties": { + "template": { + "description": "Identifier of the namespace template. This has DNS_LABEL restrictions as specified in . This name is unique across all namespaces templates in this vCenter server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization. This field should not be empty and at least one policy should be supplied. The {link create} throws {term InvalidArgument} exception if this field is set empty.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization. vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed by NSX-T Container Plugin. If field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSubject" + } + }, + "vm_service_spec": { + "description": "VM Service specification to be associated with the namespace template. Namespaces created using this template will have access to the virtual machine classes and Content Libraries specified in this {CreateSpec#vmServiceSpec} by default.\nIf unset, the namespaces created using this template will not have access to any virtual machine classes by default, and to any Content Libraries by default unless Content Libraries are specified in the {CreateSpec#contentLibraries}.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "Content Library specifications to be associated with the namespace template. Namespaces created using this template will have access to the Content Libraries specified in this {CreateSpec#contentLibraries} by default.\nIf unset, the namespaces created using this template will not have access to any Content Libraries by default unless Content Libraries are specified in the {CreateSpec#vmServiceSpec}.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + }, + "required": [ + "template", + "resource_spec", + "storage_specs" + ] + }, + "VcenterNamespacesNamespaceTemplatesCreateV2": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesCreateSpec", + "description": "Specification for setting up the namespace template." + }, + "VcenterNamespacesNamespaceTemplatesInfo": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are defined in the namespace template.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSubject" + } + }, + "vm_service_spec": { + "description": "Current set of virtual machine classes and Content Libraries associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "Current set of Content Library specifications associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + }, + "required": [ + "cluster", + "template", + "storage_specs" + ] + }, + "VcenterNamespacesNamespaceTemplatesInfoV2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are defined in the namespace template.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSubject" + } + }, + "vm_service_spec": { + "description": "Current set of virtual machine classes and Content Libraries associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "Current set of Content Library specifications associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + }, + "required": [ + "supervisor", + "template", + "storage_specs" + ] + }, + "VcenterNamespacesNamespaceTemplatesSubject": { + "type": "object", + "properties": { + "subject_type": { + "description": "Type of the subject.", + "$ref": "#/definitions/VcenterNamespacesAccessSubjectType" + }, + "subject": { + "description": "Name of the subject.", + "type": "string" + }, + "domain": { + "description": "Domain of the subject.", + "type": "string" + } + }, + "required": [ + "subject_type", + "subject", + "domain" + ] + }, + "VcenterNamespacesNamespaceTemplatesSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + } + }, + "required": [ + "cluster", + "template" + ] + }, + "VcenterNamespacesNamespaceTemplatesSummaryV2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + } + }, + "required": [ + "supervisor", + "template" + ] + }, + "VcenterNamespacesNamespaceTemplatesUpdate": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesUpdateSpec", + "description": "Specification for updating the namespace template." + }, + "VcenterNamespacesNamespaceTemplatesUpdateSpec": { + "type": "object", + "properties": { + "resource_spec": { + "description": "Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.\nIf unset, no resource limits will be set on the namespace.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.\nIf unset then no update will be made.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesStorageSpec" + } + }, + "networks": { + "description": "vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed by NSX-T Container Plugin. If field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesSubject" + } + }, + "vm_service_spec": { + "description": "VM Service specification to be associated with the namespace template. The virtual machine classes and Content Library associations of the template will be updated according to this {UpdateSpec#vmServiceSpec}.\nIf unset, the namespaces created using this template will not have access to any virtual machine classes by default, and to any Content Libraries by default unless Content Libraries are specified in the {UpdateSpec#contentLibraries}.", + "$ref": "#/definitions/VcenterNamespacesInstancesVMServiceSpec" + }, + "content_libraries": { + "description": "Content Library specifications to be associated with the namespace template. Namespaces created using this template will have access to the Content Libraries specified in this {UpdateSpec#contentLibraries} by default.\nIf unset, the namespaces created using this template will not have access to any Content Libraries by default unless Content Libraries are specified in the {UpdateSpec#vmServiceSpec}.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterNamespacesInstancesContentLibrarySpec" + } + } + } + }, + "VcenterNamespacesNamespaceTemplatesUpdateV2": { + "$ref": "#/definitions/VcenterNamespacesNamespaceTemplatesUpdateSpec", + "description": "Specification for updating the namespace template." + }, + "VcenterNamespacesUserInstancesFilterSpec": { + "type": "object", + "properties": { + "username": { + "description": "Identifier of the user.\nIf set, only return namespaces the given user has permissions to access. If unset, this filter is not applied.", + "type": "string" + }, + "groups": { + "description": "List of group names.\nIf set, only return namespaces that are associated with the given group(s). If unset, this filter is not applied.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterNamespacesUserInstancesSummary": { + "type": "object", + "properties": { + "namespace": { + "description": "Identifier of the namespace.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.Instance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.Instance.", + "type": "string" + }, + "master_host": { + "description": "IP address or FQDN of the API endpoint for the given namespace.", + "type": "string" + } + }, + "required": [ + "namespace", + "master_host" + ] + }, + "VcenterNetworkFilterSpec": { + "type": "object", + "properties": { + "networks": { + "description": "Identifiers of networks that can match the filter.\nIf unset or empty, networks with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Network.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that networks must have to match the filter (see Network.Summary.name).\nIf unset or empty, networks with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "types": { + "description": "Types that networks must have to match the filter (see Network.Summary.type).\nIf unset, networks with any type match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterNetworkType" + } + }, + "folders": { + "description": "Folders that must contain the network for the network to match the filter.\nIf unset or empty, networks in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the network for the network to match the filter.\nIf unset or empty, networks in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterNetworkSummary": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "name": { + "description": "Name of the network.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the vCenter Server network.", + "$ref": "#/definitions/VcenterNetworkType" + } + }, + "required": [ + "network", + "name", + "type" + ] + }, + "VcenterNetworkType": { + "type": "string", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "VcenterOvfDiskProvisioningType": { + "type": "string", + "description": "The DiskProvisioningType enumerated type defines the virtual disk provisioning types that can be set for a disk on the target platform.", + "enum": [ + "thin", + "thick", + "eagerZeroedThick" + ] + }, + "VcenterOvfExportFlagInfo": { + "type": "object", + "properties": { + "option": { + "description": "The name of the export flag that is supported by the server.", + "type": "string" + }, + "description": { + "description": "Localizable description of the export flag.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "option", + "description" + ] + }, + "VcenterOvfImportFlagInfo": { + "type": "object", + "properties": { + "option": { + "description": "The name of the import flag that is supported by the deployment platform.", + "type": "string" + }, + "description": { + "description": "Localizable description of the import flag.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "option", + "description" + ] + }, + "VcenterOvfLibraryItemCreate": { + "type": "object", + "properties": { + "source": { + "$ref": "#/definitions/VcenterOvfLibraryItemDeployableIdentity", + "description": "Identifier of the virtual machine or virtual appliance to use as the source." + }, + "target": { + "$ref": "#/definitions/VcenterOvfLibraryItemCreateTarget", + "description": "Specification of the target content library and library item." + }, + "create_spec": { + "$ref": "#/definitions/VcenterOvfLibraryItemCreateSpec", + "description": "Information used to create the OVF package from the source virtual machine or virtual appliance." + } + }, + "required": [ + "source", + "target", + "create_spec" + ] + }, + "VcenterOvfLibraryItemCreateResult": { + "type": "object", + "properties": { + "succeeded": { + "description": "Whether the LibraryItem.create operation completed successfully.", + "type": "boolean" + }, + "ovf_library_item_id": { + "description": "Identifier of the created or updated library item.\nIf unset, the LibraryItem.create operation failed and LibraryItem.CreateResult.error will describe the error(s) that caused the failure.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "error": { + "description": "Errors, warnings, and informational messages produced by the LibraryItem.create operation.\nIf unset, no errors, warnings, or informational messages were reported by the LibraryItem.create operation.", + "$ref": "#/definitions/VcenterOvfLibraryItemResultInfo" + } + }, + "required": [ + "succeeded" + ] + }, + "VcenterOvfLibraryItemCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name to use in the OVF descriptor stored in the library item.\nIf unset, the server will use source's current name.", + "type": "string" + }, + "description": { + "description": "Description to use in the OVF descriptor stored in the library item.\nIf unset, the server will use source's current annotation.", + "type": "string" + }, + "flags": { + "description": "Flags to use for OVF package creation. The supported flags can be obtained using ExportFlag.list.\nIf unset, no flags will be used.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterOvfLibraryItemCreateTarget": { + "type": "object", + "properties": { + "library_id": { + "description": "Identifier of the library in which a new library item should be created. This field is not used if the LibraryItem.CreateTarget.library-item-id field is specified.\nThis field is currently required. \n In the future, if unset, the LibraryItem.CreateTarget.library-item-id field must be specified. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "library_item_id": { + "description": "Identifier of the library item that should be should be updated.\nIf unset, a new library item will be created. The LibraryItem.CreateTarget.library-id field must be specified if this field is set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + } + } + }, + "VcenterOvfLibraryItemDeploy": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/VcenterOvfLibraryItemDeploymentTarget", + "description": "Specification of the deployment target." + }, + "deployment_spec": { + "$ref": "#/definitions/VcenterOvfLibraryItemResourcePoolDeploymentSpec", + "description": "Specification of how the OVF package should be deployed to the target." + } + }, + "required": [ + "target", + "deployment_spec" + ] + }, + "VcenterOvfLibraryItemDeployableIdentity": { + "type": "object", + "properties": { + "type": { + "description": "Type of the deployable resource.\nWhen clients pass a value of this structure as a parameter, the field must be one of VirtualMachine or VirtualApp. When operations return a value of this structure as a result, the field will be one of VirtualMachine or VirtualApp.", + "type": "string" + }, + "id": { + "description": "Identifier of the deployable resource.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for one of these resource types: VirtualMachine or VirtualApp. When operations return a value of this structure as a result, the field will be an identifier for one of these resource types: VirtualMachine or VirtualApp.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "VcenterOvfLibraryItemDeploymentResult": { + "type": "object", + "properties": { + "succeeded": { + "description": "Whether the LibraryItem.deploy operation completed successfully.", + "type": "boolean" + }, + "resource_id": { + "description": "Identifier of the deployed resource entity.\nIf unset, the LibraryItem.deploy operation failed and LibraryItem.DeploymentResult.error will describe the error(s) that caused the failure.", + "$ref": "#/definitions/VcenterOvfLibraryItemDeployableIdentity" + }, + "error": { + "description": "Errors, warnings, and informational messages produced by the LibraryItem.deploy operation.\nIf unset, no errors, warnings, or informational messages were reported by the LibraryItem.deploy operation.", + "$ref": "#/definitions/VcenterOvfLibraryItemResultInfo" + } + }, + "required": [ + "succeeded" + ] + }, + "VcenterOvfLibraryItemDeploymentTarget": { + "type": "object", + "properties": { + "resource_pool_id": { + "description": "Identifier of the resource pool to which the virtual machine or virtual appliance should be attached.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host_id": { + "description": "Identifier of the target host on which the virtual machine or virtual appliance will run. The target host must be a member of the cluster that contains the resource pool identified by LibraryItem.DeploymentTarget.resource-pool-id.\nIf unset, the server will automatically select a target host from the resource pool if LibraryItem.DeploymentTarget.resource-pool-id is a stand-alone host or a cluster with Distributed Resource Scheduling (DRS) enabled.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "folder_id": { + "description": "Identifier of the vCenter folder that should contain the virtual machine or virtual appliance. The folder must be virtual machine folder.\nIf unset, the server will choose the deployment folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "resource_pool_id" + ] + }, + "VcenterOvfLibraryItemFilter": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/VcenterOvfLibraryItemDeploymentTarget", + "description": "Specification of the deployment target." + } + }, + "required": [ + "target" + ] + }, + "VcenterOvfLibraryItemOvfSummary": { + "type": "object", + "properties": { + "name": { + "description": "Default name for the virtual machine or virtual appliance.\nIf unset, the OVF descriptor did not specify a name.", + "type": "string" + }, + "annotation": { + "description": "Default annotation for the virtual machine or virtual appliance.\nIf unset, the OVF descriptor did not specify an annotation.", + "type": "string" + }, + "EULAs": { + "description": "End User License Agreements specified in the OVF descriptor. All end user license agreements must be accepted in order for the LibraryItem.deploy operation to succeed. See LibraryItem.ResourcePoolDeploymentSpec.accept-all-eula.", + "type": "array", + "items": { + "type": "string" + } + }, + "networks": { + "description": "Section identifiers for sections of type ovf:NetworkSection in the OVF descriptor. These identifiers can be used as keys in LibraryItem.ResourcePoolDeploymentSpec.network-mappings.\nIf unset, the OVF descriptor did not specify any networks.", + "type": "array", + "items": { + "type": "string" + } + }, + "storage_groups": { + "description": "Section identifiers for sections of type vmw:StorageGroupSection in the OVF descriptor. These identifiers can be used as keys in LibraryItem.ResourcePoolDeploymentSpec.storage-mappings.\nIf unset, the OVF descriptor did not specify any storage groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_params": { + "description": "Additional OVF parameters which can be specified for the deployment target. These OVF parameters can be inspected, optionally modified, and used as values in LibraryItem.ResourcePoolDeploymentSpec.additional-parameters for the LibraryItem.deploy operation.\nIf unset, the OVF descriptor does not require addtional parameters or does not have additional parameters suitable for the deployment target.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in OvfParams. When operations return a value of this structure as a result, the field will contain all the attributes defined in OvfParams.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "EULAs" + ] + }, + "VcenterOvfLibraryItemResourcePoolDeploymentSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name assigned to the deployed target virtual machine or virtual appliance.\nIf unset, the server will use the name from the OVF package.", + "type": "string" + }, + "annotation": { + "description": "Annotation assigned to the deployed target virtual machine or virtual appliance.\nIf unset, the server will use the annotation from the OVF package.", + "type": "string" + }, + "accept_all_EULA": { + "description": "Whether to accept all End User License Agreements. See LibraryItem.OvfSummary.eulas.", + "type": "boolean" + }, + "network_mappings": { + "description": "Specification of the target network to use for sections of type ovf:NetworkSection in the OVF descriptor. The key in the map is the section identifier of the ovf:NetworkSection section in the OVF descriptor and the value is the target network to be used for deployment.\nIf unset, the server will choose a network mapping.\nWhen clients pass a value of this structure as a parameter, the value in the field map must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the value in the field map will be an identifier for the resource type: Network.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "storage_mappings": { + "description": "Specification of the target storage to use for sections of type vmw:StorageGroupSection in the OVF descriptor. The key in the map is the section identifier of the ovf:StorageGroupSection section in the OVF descriptor and the value is the target storage specification to be used for deployment. See LibraryItem.StorageGroupMapping.\nIf unset, the server will choose a storage mapping.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterOvfLibraryItemStorageGroupMapping" + } + }, + "storage_provisioning": { + "description": "Default storage provisioning type to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the provisioning type.", + "$ref": "#/definitions/VcenterOvfDiskProvisioningType" + }, + "storage_profile_id": { + "description": "Default storage profile to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the default profile.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: StorageProfile.", + "type": "string" + }, + "locale": { + "description": "The locale to use for parsing the OVF descriptor.\nIf unset, the server locale will be used.", + "type": "string" + }, + "flags": { + "description": "Flags to be use for deployment. The supported flag values can be obtained using ImportFlag.list.\nIf unset, no flags will be used.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_parameters": { + "description": "Additional OVF parameters that may be needed for the deployment. Additional OVF parameters may be required by the OVF descriptor of the OVF package in the library item. Examples of OVF parameters that can be specified through this field include, but are not limited to: \n - DeploymentOptionParams\n - ExtraConfigParams\n - IpAllocationParams\n - PropertyParams\n - ScaleOutParams\n - VcenterExtensionParams\n \nIf unset, the server will choose default settings for all parameters necessary for the LibraryItem.deploy operation. See LibraryItem.deploy.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in OvfParams. When operations return a value of this structure as a result, the field will contain all the attributes defined in OvfParams.", + "type": "array", + "items": { + "type": "object" + } + }, + "default_datastore_id": { + "description": "Default datastore to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the default datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "vm_config_spec": { + "description": "The LibraryItem.ResourcePoolDeploymentSpec.vm-config-spec is used for virtual machine configuration settings including hardware specifications to use in place of the OVF descriptor. If set, the OVF descriptor acts as a disk descriptor. Fields in the LibraryItem.ResourcePoolDeploymentSpec parameters such as LibraryItem.ResourcePoolDeploymentSpec.name that overlap with settings in the LibraryItem.ResourcePoolDeploymentSpec.vm-config-spec are not overridden and will continue to be used. Similarly, storage settings in the LibraryItem.ResourcePoolDeploymentSpec that affect the disks on the virtual machine namely LibraryItem.ResourcePoolDeploymentSpec.storage-mappings, LibraryItem.ResourcePoolDeploymentSpec.storage-profile-id, LibraryItem.ResourcePoolDeploymentSpec.storage-provisioning and LibraryItem.ResourcePoolDeploymentSpec.default-datastore-id will also be honored.\nIf unset, the relevant virtual machine specifications in the OVF descriptor of the OVF template will be used.", + "$ref": "#/definitions/VcenterOvfLibraryItemVmConfigSpec" + } + }, + "required": [ + "accept_all_EULA" + ] + }, + "VcenterOvfLibraryItemResultInfo": { + "type": "object", + "properties": { + "errors": { + "description": "Errors reported by the LibraryItem.create or LibraryItem.deploy operation. These errors would have prevented the LibraryItem.create or LibraryItem.deploy operation from completing successfully.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfOvfError" + } + }, + "warnings": { + "description": "Warnings reported by the LibraryItem.create or LibraryItem.deploy operation. These warnings would not have prevented the LibraryItem.create or LibraryItem.deploy operation from completing successfully, but there might be issues that warrant attention.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfOvfWarning" + } + }, + "information": { + "description": "Information messages reported by the LibraryItem.create or LibraryItem.deploy operation. For example, a non-required parameter was ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfOvfInfo" + } + } + }, + "required": [ + "errors", + "warnings", + "information" + ] + }, + "VcenterOvfLibraryItemStorageGroupMapping": { + "type": "object", + "properties": { + "type": { + "description": "Type of storage deployment target to use for the vmw:StorageGroupSection section. The specified value must be DATASTORE or STORAGE_PROFILE.", + "$ref": "#/definitions/VcenterOvfLibraryItemStorageGroupMappingType" + }, + "datastore_id": { + "description": "Target datastore to be used for the storage group.\nThis field is optional and it is only relevant when the value of LibraryItem.StorageGroupMapping.type is DATASTORE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_profile_id": { + "description": "Target storage profile to be used for the storage group.\nThis field is optional and it is only relevant when the value of LibraryItem.StorageGroupMapping.type is STORAGE_PROFILE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: StorageProfile.", + "type": "string" + }, + "provisioning": { + "description": "Target provisioning type to use for the storage group.\nIf unset, LibraryItem.ResourcePoolDeploymentSpec.storage-provisioning will be used.", + "$ref": "#/definitions/VcenterOvfDiskProvisioningType" + } + }, + "required": [ + "type" + ] + }, + "VcenterOvfLibraryItemStorageGroupMappingType": { + "type": "string", + "description": "The LibraryItem.StorageGroupMapping.Type enumerated type defines the supported types of storage targets for sections of type vmw:StorageGroupSection in the OVF descriptor.", + "enum": [ + "DATASTORE", + "STORAGE_PROFILE" + ] + }, + "VcenterOvfLibraryItemVmConfigSpec": { + "type": "object", + "properties": { + "provider": { + "description": "The LibraryItem.VmConfigSpec.provider selects a provider from the list of available providers.", + "$ref": "#/definitions/VcenterOvfLibraryItemVmConfigSpecProvider" + }, + "xml": { + "description": "The LibraryItem.VmConfigSpec.xml is a conditional configuration made available upon selecting the XML. It is used to pass in a vim.vm.ConfigSpec for a virtual machine that has been serialized to XML and base64 encoded.\nThis field is optional and it is only relevant when the value of LibraryItem.VmConfigSpec.provider is XML.", + "type": "string" + } + }, + "required": [ + "provider" + ] + }, + "VcenterOvfLibraryItemVmConfigSpecProvider": { + "type": "string", + "description": "The LibraryItem.VmConfigSpecProvider is used to provide the optional LibraryItem.VmConfigSpec used when deploying an OVF template.", + "enum": [ + "XML" + ] + }, + "VcenterOvfOvfError": { + "type": "object", + "properties": { + "category": { + "description": "The message category.", + "$ref": "#/definitions/VcenterOvfOvfMessageCategory" + }, + "issues": { + "description": "List of parse issues (see ParseIssue).\nThis field is optional and it is only relevant when the value of OvfMessage.category is VALIDATION.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfParseIssue" + } + }, + "name": { + "description": "The name of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "value": { + "description": "The value of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "message": { + "description": "A localizable message.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "error": { + "description": "Represents a server Error.\nThis field is optional and it is only relevant when the value of OvfMessage.category is SERVER.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in Error. When operations return a value of this structure as a result, the field will contain all the attributes defined in Error.", + "type": "object" + } + }, + "required": [ + "category" + ] + }, + "VcenterOvfOvfInfo": { + "type": "object", + "properties": { + "messages": { + "description": "A list of localizable messages (see LocalizableMessage).", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "messages" + ] + }, + "VcenterOvfOvfMessageCategory": { + "type": "string", + "description": "The OvfMessage.Category enumerated type defines the categories of messages (see OvfMessage).", + "enum": [ + "VALIDATION", + "INPUT", + "SERVER" + ] + }, + "VcenterOvfOvfWarning": { + "type": "object", + "properties": { + "category": { + "description": "The message category.", + "$ref": "#/definitions/VcenterOvfOvfMessageCategory" + }, + "issues": { + "description": "List of parse issues (see ParseIssue).\nThis field is optional and it is only relevant when the value of OvfMessage.category is VALIDATION.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterOvfParseIssue" + } + }, + "name": { + "description": "The name of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "value": { + "description": "The value of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "message": { + "description": "A localizable message.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "error": { + "description": "Represents a server Error.\nThis field is optional and it is only relevant when the value of OvfMessage.category is SERVER.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in Error. When operations return a value of this structure as a result, the field will contain all the attributes defined in Error.", + "type": "object" + } + }, + "required": [ + "category" + ] + }, + "VcenterOvfParseIssue": { + "type": "object", + "properties": { + "category": { + "description": "The category of the parse issue.", + "$ref": "#/definitions/VcenterOvfParseIssueCategory" + }, + "file": { + "description": "The name of the file in which the parse issue was found.", + "type": "string" + }, + "line_number": { + "description": "The line number of the line in the file (see ParseIssue.file) where the parse issue was found (or -1 if not applicable).", + "type": "integer", + "format": "int64" + }, + "column_number": { + "description": "The position in the line (see ParseIssue.line-number) (or -1 if not applicable).", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "A localizable message describing the parse issue.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "category", + "file", + "line_number", + "column_number", + "message" + ] + }, + "VcenterOvfParseIssueCategory": { + "type": "string", + "description": "The ParseIssue.Category enumerated type defines the categories of issues that can be found when parsing files inside an OVF package (see ParseIssue) including OVF descriptor (which is an XML document), manifest and certificate files, or exporting an OVF package.", + "enum": [ + "VALUE_ILLEGAL", + "ATTRIBUTE_REQUIRED", + "ATTRIBUTE_ILLEGAL", + "ELEMENT_REQUIRED", + "ELEMENT_ILLEGAL", + "ELEMENT_UNKNOWN", + "SECTION_UNKNOWN", + "SECTION_RESTRICTION", + "PARSE_ERROR", + "GENERATE_ERROR", + "VALIDATION_ERROR", + "EXPORT_ERROR", + "INTERNAL_ERROR" + ] + }, + "VcenterResourcePoolCreate": { + "$ref": "#/definitions/VcenterResourcePoolCreateSpec", + "description": "Specification of the new resource pool to be created, see ResourcePool.CreateSpec." + }, + "VcenterResourcePoolCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the resource pool.", + "type": "string" + }, + "parent": { + "description": "Parent of the created resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "cpu_allocation": { + "description": "Resource allocation for CPU.\nif unset or empty, use the default CPU allocation specification.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationCreateSpec" + }, + "memory_allocation": { + "description": "Resource allocation for memory.\nif unset or empty, use the default memory allocation specification.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationCreateSpec" + } + }, + "required": [ + "name", + "parent" + ] + }, + "VcenterResourcePoolFilterSpec": { + "type": "object", + "properties": { + "resource_pools": { + "description": "Identifiers of resource pools that can match the filter.\nIf unset or empty, resource pools with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that resource pools must have to match the filter (see ResourcePool.Info.name).\nIf unset or empty, resource pools with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "parent_resource_pools": { + "description": "Resource pools that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "hosts": { + "description": "Hosts that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "Clusters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterResourcePoolInfo": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter Server resource pool.", + "type": "string" + }, + "resource_pools": { + "description": "Identifiers of the child resource pools contained in this resource pool.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "cpu_allocation": { + "description": "Resource allocation information for CPU.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationInfo" + }, + "memory_allocation": { + "description": "Resource allocation information for memory.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationInfo" + } + }, + "required": [ + "name", + "resource_pools" + ] + }, + "VcenterResourcePoolResourceAllocationCreateSpec": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.reservation will be set to 0.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.expandable-reservation will be set to true.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.limit will be set to -1.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.shares will be set to 'NORMAL'.", + "$ref": "#/definitions/VcenterResourcePoolSharesInfo" + } + } + }, + "VcenterResourcePoolResourceAllocationInfo": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.", + "$ref": "#/definitions/VcenterResourcePoolSharesInfo" + } + }, + "required": [ + "reservation", + "expandable_reservation", + "limit", + "shares" + ] + }, + "VcenterResourcePoolResourceAllocationUpdateSpec": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.reservation will be set to 0.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.expandable-reservation will be set to true.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.limit will be set to -1.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.shares will be set to 'NORMAL'.", + "$ref": "#/definitions/VcenterResourcePoolSharesInfo" + } + } + }, + "VcenterResourcePoolSharesInfo": { + "type": "object", + "properties": { + "level": { + "description": "The allocation level. It maps to a pre-determined set of numeric values for shares. If the shares value does not map to a predefined size, then the level is set as CUSTOM.", + "$ref": "#/definitions/VcenterResourcePoolSharesInfoLevel" + }, + "shares": { + "description": "When ResourcePool.SharesInfo.level is set to CUSTOM, it is the number of shares allocated. Otherwise, this value is ignored. \n There is no unit for this value. It is a relative measure based on the settings for other resource pools.\n\nThis field is optional and it is only relevant when the value of ResourcePool.SharesInfo.level is CUSTOM.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "level" + ] + }, + "VcenterResourcePoolSharesInfoLevel": { + "type": "string", + "description": "The ResourcePool.SharesInfo.Level enumerated type defines the possible values for the allocation level.", + "enum": [ + "LOW", + "NORMAL", + "HIGH", + "CUSTOM" + ] + }, + "VcenterResourcePoolSummary": { + "type": "object", + "properties": { + "resource_pool": { + "description": "Identifier of the resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "name": { + "description": "Name of the resource pool.", + "type": "string" + } + }, + "required": [ + "resource_pool", + "name" + ] + }, + "VcenterResourcePoolUpdate": { + "$ref": "#/definitions/VcenterResourcePoolUpdateSpec", + "description": "Specification for updating the configuration of the resource pool." + }, + "VcenterResourcePoolUpdateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the resource pool.\nif unset or empty, the name of the resource pool will not be changed.", + "type": "string" + }, + "cpu_allocation": { + "description": "Resource allocation for CPU.\nif unset or empty, the CPU allocation of the resource pool will not be changed.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationUpdateSpec" + }, + "memory_allocation": { + "description": "Resource allocation for memory.\nif unset or empty, the memory allocation of the resource pool will not be changed.", + "$ref": "#/definitions/VcenterResourcePoolResourceAllocationUpdateSpec" + } + } + }, + "VcenterServicesServiceHealth": { + "type": "string", + "description": "The Service.Health enumerated type defines the possible values for health of a service.", + "enum": [ + "DEGRADED", + "HEALTHY", + "HEALTHY_WITH_WARNINGS" + ] + }, + "VcenterServicesServiceInfo": { + "type": "object", + "properties": { + "name_key": { + "description": "Service name key. Can be used to lookup resource bundle", + "type": "string" + }, + "description_key": { + "description": "Service description key. Can be used to lookup resource bundle", + "type": "string" + }, + "startup_type": { + "description": "Startup Type.", + "$ref": "#/definitions/VcenterServicesServiceStartupType" + }, + "state": { + "description": "Running State.", + "$ref": "#/definitions/VcenterServicesServiceState" + }, + "health": { + "description": "Health of service.\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "$ref": "#/definitions/VcenterServicesServiceHealth" + }, + "health_messages": { + "description": "Localizable messages associated with the health of the service\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "name_key", + "description_key", + "startup_type", + "state" + ] + }, + "VcenterServicesServiceStartupType": { + "type": "string", + "description": "The Service.StartupType enumerated type defines valid Startup Type for vCenter Server services.", + "enum": [ + "MANUAL", + "AUTOMATIC", + "DISABLED" + ] + }, + "VcenterServicesServiceState": { + "type": "string", + "description": "The Service.State enumerated type defines valid Run State for services.", + "enum": [ + "STARTING", + "STOPPING", + "STARTED", + "STOPPED" + ] + }, + "VcenterServicesServiceUpdate": { + "$ref": "#/definitions/VcenterServicesServiceUpdateSpec", + "description": "Service Update specification." + }, + "VcenterServicesServiceUpdateSpec": { + "type": "object", + "properties": { + "startup_type": { + "description": "Startup Type\nIf unspecified, leaves value unchanged.", + "$ref": "#/definitions/VcenterServicesServiceStartupType" + } + } + }, + "VcenterStoragePoliciesCheckCompatibility": { + "type": "object", + "properties": { + "datastores": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Datastores used to check compatibility against a storage policy. The number of datastores is limited to 1024.\nThe parameter must contain identifiers for the resource type: Datastore." + } + }, + "required": [ + "datastores" + ] + }, + "VcenterStoragePoliciesCompatibilityInfo": { + "type": "object", + "properties": { + "compatible_datastores": { + "description": "Info about a list of datastores compatible with a specific storage policy.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterStoragePoliciesCompatibleDatastoreInfo" + } + } + }, + "required": [ + "compatible_datastores" + ] + }, + "VcenterStoragePoliciesCompatibleDatastoreInfo": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "VcenterStoragePoliciesComplianceFilterSpec": { + "type": "object", + "properties": { + "status": { + "description": "Compliance Status that a virtual machine must have to match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceStatus" + } + } + }, + "required": [ + "status" + ] + }, + "VcenterStoragePoliciesComplianceStatus": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "VcenterStoragePoliciesComplianceSummary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of virtual machine\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "vm_home": { + "description": "Compliance status of the virtual machine home.\nIf unset or empty, vmHome is not associated with a storage policy.", + "$ref": "#/definitions/VcenterStoragePoliciesComplianceStatus" + }, + "disks": { + "description": "List of the virtual hard disk.\nIf unset or empty, virtual machine entity does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceStatus" + } + } + }, + "required": [ + "vm" + ] + }, + "VcenterStoragePoliciesComplianceVMFilterSpec": { + "type": "object", + "properties": { + "status": { + "description": "Compliance Status that a virtual machine must have to match the filter. Atleast one status must be specified.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceVMStatus" + } + }, + "vms": { + "description": "Identifiers of virtual machines that can match the filter\nIf unset or empty, virtual machines with any identifier matches the filter\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "status" + ] + }, + "VcenterStoragePoliciesComplianceVMInfo": { + "type": "object", + "properties": { + "vm_home": { + "description": "Compliance status of the virtual machine home.\nIf unset or empty, virtual machine home is not associated with a storage policy.", + "$ref": "#/definitions/VcenterStoragePoliciesComplianceVMStatus" + }, + "disks": { + "description": "A Map of virtual disks and their compliance status If empty, the virtual machine does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterStoragePoliciesComplianceVMStatus" + } + } + }, + "required": [ + "disks" + ] + }, + "VcenterStoragePoliciesComplianceVMStatus": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "VcenterStoragePoliciesFilterSpec": { + "type": "object", + "properties": { + "policies": { + "description": "Identifiers of storage policies that can match the filter.\nIf unset or empty, storage policies with any identifiers match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.StoragePolicy.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterStoragePoliciesSummary": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "name": { + "description": "Name of the storage policy.", + "type": "string" + }, + "description": { + "description": "Description of the storage policy.", + "type": "string" + } + }, + "required": [ + "policy", + "name", + "description" + ] + }, + "VcenterStoragePoliciesVMInfo": { + "type": "object", + "properties": { + "vm_home": { + "description": "Flag to indicate whether or not the virtual machine home is associated with the given storage policy.", + "type": "boolean" + }, + "disks": { + "description": "List of the virtual disks that are associated with the given storage policy.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "vm_home", + "disks" + ] + }, + "VcenterSystemConfigDeploymentTypeInfo": { + "type": "object", + "properties": { + "type": { + "description": "The type of the appliance.", + "$ref": "#/definitions/VcenterDeploymentApplianceType" + } + }, + "required": [ + "type" + ] + }, + "VcenterSystemConfigDeploymentTypeReconfigure": { + "$ref": "#/definitions/VcenterSystemConfigDeploymentTypeReconfigureSpec", + "description": "ReconfigureSpec to set the appliance type." + }, + "VcenterSystemConfigDeploymentTypeReconfigureSpec": { + "type": "object", + "properties": { + "type": { + "description": "The type of the appliance.", + "$ref": "#/definitions/VcenterDeploymentApplianceType" + }, + "remote_psc": { + "description": "External PSC to register with when reconfiguring a VCSA_EMBEDDED appliance to a VCSA_EXTERNAL appliance.\nOnly required when reconfiguring an VCSA_EMBEDDED node to a VCSA_EXTERNAL.", + "$ref": "#/definitions/VcenterDeploymentRemotePscSpec" + } + }, + "required": [ + "type" + ] + }, + "VcenterSystemConfigPscRegistrationInfo": { + "type": "object", + "properties": { + "address": { + "description": "The IP address or DNS resolvable name of the PSC this appliance is registered with.", + "type": "string" + }, + "https_port": { + "description": "The HTTPs port used by the external PSC.", + "type": "integer", + "format": "int64" + }, + "sso_domain": { + "description": "The Single Sign-On domain name of the external PSC.", + "type": "string" + } + }, + "required": [ + "address", + "https_port", + "sso_domain" + ] + }, + "VcenterSystemConfigPscRegistrationRepoint": { + "$ref": "#/definitions/VcenterDeploymentRemotePscSpec", + "description": "RemotePscSpec structure containing information about the external PSC node to repoint this vCenter Server appliance to." + }, + "VcenterSystemHello": { + "$ref": "#/definitions/VcenterSystemHelloSpec", + "description": "Client capabilities including list of supported API release IDs." + }, + "VcenterSystemHelloResult": { + "type": "object", + "properties": { + "api_release": { + "description": "Mutually supported API release ID to be used in subsequent API calls to the current vCenter system.", + "type": "string" + } + }, + "required": [ + "api_release" + ] + }, + "VcenterSystemHelloSpec": { + "type": "object", + "properties": { + "api_releases": { + "description": "List of API release IDs that the client can work with in order of preference. The server will select the first mutually supported release ID.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "api_releases" + ] + }, + "VcenterTaggingAssociationsIterationSpec": { + "type": "object", + "properties": { + "marker": { + "description": "Marker is an opaque token that allows the caller to request the next page of tag associations.\nIf unset or empty, first page of tag associations will be returned.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.tagging.associations.Marker. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.tagging.associations.Marker.", + "type": "string" + } + } + }, + "VcenterTaggingAssociationsLastIterationStatus": { + "type": "string", + "description": "The last status for the iterator. A field of this type is returned as part of the result and indicates to the caller of the API whether it can continue to make requests for more data. \n The last status only reports on the state of the iteration at the time data was last returned. As a result, it not does guarantee if the next call will succeed in getting more data or not. \n\n Failures to retrieve results will be returned as Error responses. These last statuses are only returned when the iterator is operating as expected.", + "enum": [ + "READY", + "END_OF_DATA" + ] + }, + "VcenterTaggingAssociationsListResult": { + "type": "object", + "properties": { + "associations": { + "description": "List of tag associations.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTaggingAssociationsSummary" + } + }, + "marker": { + "description": "Marker is an opaque data structure that allows the caller to request the next page of tag associations.\nIf unset or empty, there are no more tag associations to request.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.tagging.associations.Marker. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.tagging.associations.Marker.", + "type": "string" + }, + "status": { + "description": "The last status for the iterator that indicates whether any more results can be expected if the caller continues to make requests for more data using the iterator.", + "$ref": "#/definitions/VcenterTaggingAssociationsLastIterationStatus" + } + }, + "required": [ + "associations", + "status" + ] + }, + "VcenterTaggingAssociationsSummary": { + "type": "object", + "properties": { + "tag": { + "description": "The identifier of a tag.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.tagging.Tag. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.tagging.Tag.", + "type": "string" + }, + "object": { + "description": "The identifier of an associated object.", + "$ref": "#/definitions/VapiStdDynamicID" + } + }, + "required": [ + "tag", + "object" + ] + }, + "VcenterTopologyNodesApplianceType": { + "type": "string", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "VcenterTopologyNodesFilterSpec": { + "type": "object", + "properties": { + "types": { + "description": "Types of the appliance that a vCenter and Platform Services Controller node must be to match the filter (see Nodes.ApplianceType.\nIf unset or empty, node of any ApplianceType match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTopologyNodesApplianceType" + } + } + } + }, + "VcenterTopologyNodesInfo": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name of the node.", + "type": "string" + }, + "type": { + "description": "Appliance type of the node.", + "$ref": "#/definitions/VcenterTopologyNodesApplianceType" + }, + "replication_partners": { + "description": "List of replication partners' node identifiers. Identifiers can be either IP address or DNS resolvable name of the partner node.\nThis field is optional and it is only relevant when the value of Nodes.Info.type is one of VCSA_EMBEDDED or PSC_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "items": { + "type": "string" + } + }, + "client_affinity": { + "description": "Identifier of the affinitized Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the affinitized node.\nThis field is optional and it is only relevant when the value of Nodes.Info.type is VCSA_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + } + }, + "required": [ + "domain", + "type" + ] + }, + "VcenterTopologyNodesSummary": { + "type": "object", + "properties": { + "node": { + "description": "Identifier for the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "type": { + "description": "Appliance type of the node.", + "$ref": "#/definitions/VcenterTopologyNodesApplianceType" + }, + "replication_partners": { + "description": "List of replication partners' node identifiers. Identifiers can be either IP address or DNS resolvable name of the partner node.\nThis field is optional and it is only relevant when the value of Nodes.Summary.type is one of VCSA_EMBEDDED or PSC_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "items": { + "type": "string" + } + }, + "client_affinity": { + "description": "Identifier of the affinitized Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the affinitized node.\nThis field is optional and it is only relevant when the value of Nodes.Summary.type is VCSA_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + } + }, + "required": [ + "node", + "type" + ] + }, + "VcenterTopologyReplicationStatusFilterSpec": { + "type": "object", + "properties": { + "nodes": { + "description": "Identifier that a vCenter and Platform Services Controller node must have to match the filter. (see ReplicationStatus.Summary.node).\nIf unset or empty, all vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTopologyReplicationStatusSummary": { + "type": "object", + "properties": { + "node": { + "description": "Identifier for the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "replication_partner": { + "description": "Identifier for the vCenter or Platform Services Controller replication partner. Identifier can be either IP address or DNS resolvable name of the replication partner.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "partner_available": { + "description": "Indicates if the VMware Directory Service on partner is reachable or not.", + "type": "boolean" + }, + "status_available": { + "description": "Indicates if the replication status for the node with respect to replication partner can be retrieved or not.", + "type": "boolean" + }, + "replicating": { + "description": "Indicates if node is processing replication changes from the replication partner.\nThis field will be unset if the partner host or replication status is not available, i.e, if ReplicationStatus.Summary.partner-available or ReplicationStatus.Summary.status-available is false.", + "type": "boolean" + }, + "change_lag": { + "description": "Number of replication changes node is behind the replication partner.\nThis field will be unset if the partner host or replication status is not available, i.e, if ReplicationStatus.Summary.partner-available or ReplicationStatus.Summary.status-available is false.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "node", + "replication_partner", + "partner_available", + "status_available" + ] + }, + "VcenterTrustedInfrastructureAttestationServicesCreate": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesCreateSpec", + "description": "The CreateSpec for the new service." + }, + "VcenterTrustedInfrastructureAttestationServicesCreateSpec": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group specifies the Key Provider Service instances that can accept reports issued by this Attestation Service instance.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureAttestationServicesFilterSpec": { + "type": "object", + "properties": { + "services": { + "description": "A set of IDs by which to filter the services.\nIf unset, the services will not be filtered by ID.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.attestation.Service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "A set of address by which to filter.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "group": { + "description": "The group specifies the Key Provider Service instances that can accept reports issued by this Attestation Service instance.\nIf unset, the services will not be filtered by group.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service belongs to.\nIf unset, the services will not be filtered by trustAuthorityCluster.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureAttestationServicesInfo": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group specifies the Key Provider Service instances that can accept reports issued by this Attestation Service instance.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureAttestationServicesList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureAttestationServicesFilterSpec", + "description": "Return only services matching the specified filters.\nIf {@term.unset} return all services." + }, + "VcenterTrustedInfrastructureAttestationServicesSummary": { + "type": "object", + "properties": { + "service": { + "description": "The service's unique identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group specifies the Key Provider Service instances that can accept reports issued by this Attestation Service instance.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service instance belongs to.", + "type": "string" + } + }, + "required": [ + "service", + "address", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysFilterSpec": { + "type": "object", + "properties": { + "types": { + "description": "Type of the endorsement key.\nif unset or empty, the result will not be filtered by EndorsementKeys.FilterSpec.types.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysType" + } + } + } + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysInfo": { + "type": "object", + "properties": { + "type": { + "description": "The TPM endorsement key type.", + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysType" + }, + "public_area": { + "description": "The TPM endorsement key public area. \n The public area is a TPM2B_PUBLIC structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 12.2.5 TPM2B_PUBLIC", + "type": "string", + "format": "binary" + }, + "name": { + "description": "The TPM endorsement key name. \n The name is a TPM2B_NAME structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 10.5.3 TPM2B_NAME", + "type": "string", + "format": "binary" + }, + "qualified_name": { + "description": "The TPM endorsement key qualified name. \n The qualified name is a TPM2B_NAME structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 10.5.3 TPM2B_NAME", + "type": "string", + "format": "binary" + }, + "public_key": { + "description": "The TPM public endorsement key in PEM format.\nif unset, the PEM format public key could not be determined.", + "type": "string" + }, + "certificate": { + "description": "The TPM endorsement key certificate in PEM format.\nif unset, the certificate cannot be retrieved from the TPM.", + "type": "string" + }, + "manufacturer_certificate_uri": { + "description": "The TPM endorsement key issuer URL extracted from the TPM endorsement key certificate.\nif unset, the URI cannot be retrieved from the endorsement key certificate.", + "type": "string" + }, + "manufacturer_certificates": { + "description": "The TPM manufacturer's endorsement key certificate chain. \n Endorsement key certificates are signed by the TPM manufacturer. When available, the EndorsementKeys.Info.manufacturer-certificates field will contain the TPM manufacturer's endorsement key certificate chain.\n\nif unset, the certificate chain is not available.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "type", + "public_area", + "name", + "qualified_name" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysPolicyPcrSpec": { + "type": "object", + "properties": { + "pcrs": { + "description": "The PCRs to which the data is sealed. \n The PCR selection is a TPML_PCR_SELECTION structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 10.9.7 TPML_PCR_SELECTION", + "type": "string", + "format": "binary" + }, + "pcr_digest": { + "description": "The digest of the PCRs selected in EndorsementKeys.PolicyPcrSpec.pcrs. \n The digest is a TPM2B_DIGEST structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 10.4.2 TPM2B_DIGEST\n\nIf unset, then the PCR digest is calculated by the service based on the current PCR state.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "pcrs" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysSummary": { + "type": "object", + "properties": { + "key": { + "description": "A unique identifier for the TPM endorsement key.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.tpm.EndorsementKey. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.tpm.EndorsementKey.", + "type": "string" + }, + "type": { + "description": "The TPM endorsement key type.", + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysType" + } + }, + "required": [ + "key", + "type" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysType": { + "type": "string", + "enum": [ + "RSA_2048", + "ECC_NIST_P_256" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysUnseal": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysUnsealSpec", + "description": "the unseal spec." + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysUnsealSpec": { + "type": "object", + "properties": { + "public_area": { + "description": "The public area which corresponding to the EndorsementKeys.UnsealSpec.private-area secret that is being unsealed. \n The public area is a TPM2B_PUBLIC structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 12.2.5 TPM2B_PUBLIC \n\n This public area is used as the \"objectPublic\" input to the TPM2_Import command. \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 13.3 TPM2_Import", + "type": "string", + "format": "binary" + }, + "private_area": { + "description": "A private area that contains a secret to be unsealed. \n The private area is symmetrically encrypted with the seed value derived from EndorsementKeys.UnsealSpec.seed. \n\n The private area is a TPM2B_PRIVATE structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 12.3.7 TPM2B_PRIVATE \n\n This private area is used as the \"duplicate\" input to the TPM2_Import command. \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 13.3 TPM2_Import", + "type": "string", + "format": "binary" + }, + "seed": { + "description": "A seed value that is encrypted by the TPM endorsement key. \n The seed will be decrypted with the endorsement key and then will be used as a symmetric key to decrypt EndorsementKeys.UnsealSpec.private-area. This ensures that only a TPM with the expected endorsement key can unseal the secret. \n\n The seed value is a TPM2B_ENCRYPTED_SECRET structure. \n\n Trusted Platform Module Library Part 2: Structures, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 11.4.3 TPM2B_ENCRYPTED_SECRET \n\n This seed is used as the \"inSymSeed\" input to the TPM2_Import command. \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 13.3 TPM2_Import", + "type": "string", + "format": "binary" + }, + "policy_pcr": { + "description": "PCR policy required to unseal the secret. \n Used as input to the TPM2_PolicyPCR command on a session that is created for issuing the TPM2_Unseal command. \n\n Trusted Platform Module Library Part 3: Commands, Family \"2.0\", Level 00 Revision 01.59, November 8, 2019, Section 23.7 TPM2_PolicyPCR\n\nIf unset, then a zeroed authorization policy is used for the TPM2_Unseal session.", + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEndorsementKeysPolicyPcrSpec" + } + }, + "required": [ + "public_area", + "private_area", + "seed" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEventLogInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type of the event log.", + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmEventLogType" + }, + "data": { + "description": "Event log data in the format described by EventLog.Info.type.\nThis field is currently required. It may be optional in a future version.", + "type": "string", + "format": "binary" + }, + "truncated": { + "description": "Indicates if the event log is truncated. \n An event log is truncated when there was insufficient memory to store one or more event entries.", + "type": "boolean" + }, + "banks": { + "description": "The resulting PCR banks from event log replay.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmPcrBank" + } + } + }, + "required": [ + "type", + "truncated", + "banks" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmEventLogType": { + "type": "string", + "description": "The EventLog.Type enumerated type lists the event log types.", + "enum": [ + "EFI_TCG2_EVENT_LOG_FORMAT_TCG_2" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmFilterSpec": { + "type": "object", + "properties": { + "major_versions": { + "description": "The TPM major version number.\nif unset or empty, the result will not be filtered by version number.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "integer", + "format": "int64" + } + }, + "active": { + "description": "The TPM status.\nif unset, the result will not be filtered by status.", + "type": "boolean" + } + } + }, + "VcenterTrustedInfrastructureHostsHardwareTpmHashAlgorithm": { + "type": "string", + "description": "The HashAlgorithm enumerated type defines the possible hash algorithms.", + "enum": [ + "SHA256", + "SHA384", + "SHA512", + "SM3_256" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmInfo": { + "type": "object", + "properties": { + "major_version": { + "description": "The TPM major version number.", + "type": "integer", + "format": "int64" + }, + "minor_version": { + "description": "The TPM minor version number.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "The TPM status. \n Inactive TPMs cannot be used for sealing or attestation.", + "type": "boolean" + }, + "manufacturer": { + "description": "The TPM manufacturer.\nif unset, manufacturer is not available.", + "type": "string" + }, + "model": { + "description": "The TPM model.\nif unset, model is not available.", + "type": "string" + }, + "firmware_version": { + "description": "The TPM firmware version.\nif unset, firmware version is not available.", + "type": "string" + }, + "banks": { + "description": "The list of the PCR banks of the TPM device.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmPcrBank" + } + } + }, + "required": [ + "major_version", + "minor_version", + "active", + "banks" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmPcrBank": { + "type": "object", + "properties": { + "algorithm": { + "description": "The hash algorithm that is used by TPM to calculate the PCR values.", + "$ref": "#/definitions/VcenterTrustedInfrastructureHostsHardwareTpmHashAlgorithm" + }, + "pcrs": { + "description": "The index of PCR and corresponding TPM digest value.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "algorithm", + "pcrs" + ] + }, + "VcenterTrustedInfrastructureHostsHardwareTpmSummary": { + "type": "object", + "properties": { + "tpm": { + "description": "A unique identifier for the TPM instance.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.hosts.hardware.Tpm.", + "type": "string" + }, + "major_version": { + "description": "The TPM major version number.", + "type": "integer", + "format": "int64" + }, + "minor_version": { + "description": "The TPM minor version number.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "The TPM status. \n Inactive TPMs cannot be used for sealing or attestation.", + "type": "boolean" + } + }, + "required": [ + "tpm", + "major_version", + "minor_version", + "active" + ] + }, + "VcenterTrustedInfrastructureKmsServicesCreate": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesCreateSpec", + "description": "The CreateSpec for the new service." + }, + "VcenterTrustedInfrastructureKmsServicesCreateSpec": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider service can accept reports from.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureKmsServicesFilterSpec": { + "type": "object", + "properties": { + "services": { + "description": "A set of IDs by which to filter the services.\nIf unset, the services will not be filtered by ID.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.kms.Service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "A set of address by which to filter.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.\nIf unset, the Services will not be filtered by group.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service belongs to.\nIf unset, the Services will not be filtered by trustAuthorityCluster.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureKmsServicesInfo": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureKmsServicesList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureKmsServicesFilterSpec", + "description": "Return only services matching the specified filters.\nIf {@term.unset} return all services." + }, + "VcenterTrustedInfrastructureKmsServicesSummary": { + "type": "object", + "properties": { + "service": { + "description": "The service's unique identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider service belongs to.", + "type": "string" + } + }, + "required": [ + "service", + "address", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureNetworkAddress": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the service.", + "type": "string" + }, + "port": { + "description": "The port of the service.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "hostname" + ] + }, + "VcenterTrustedInfrastructurePrincipalInfo": { + "type": "object", + "properties": { + "certificates": { + "description": "The certificates used by the STS to sign tokens for this vCenter.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "issuer": { + "description": "The service which created and signed the security token.", + "type": "string" + }, + "principal": { + "description": "The principal used by this vCenter instance to retrieve tokens. Currently this is the vCenter solution user.", + "$ref": "#/definitions/VcenterTrustedInfrastructureStsPrincipal" + }, + "name": { + "description": "The user-friednly name of the vCenter.", + "type": "string" + } + }, + "required": [ + "certificates", + "issuer", + "principal", + "name" + ] + }, + "VcenterTrustedInfrastructureStsPrincipal": { + "type": "object", + "properties": { + "id": { + "description": "The principal's ID.", + "$ref": "#/definitions/VcenterTrustedInfrastructureStsPrincipalId" + }, + "type": { + "description": "The type of the principal (user or group).", + "$ref": "#/definitions/VcenterTrustedInfrastructureStsPrincipalType" + } + }, + "required": [ + "id", + "type" + ] + }, + "VcenterTrustedInfrastructureStsPrincipalId": { + "type": "object", + "properties": { + "name": { + "description": "The principal's username.", + "type": "string" + }, + "domain": { + "description": "The principal's domain.", + "type": "string" + } + }, + "required": [ + "name", + "domain" + ] + }, + "VcenterTrustedInfrastructureStsPrincipalType": { + "type": "string", + "description": "The StsPrincipalType enum can be either users or groups.", + "enum": [ + "STS_USER", + "STS_GROUP" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationOsEsxBaseImagesFilterSpec": { + "type": "object", + "properties": { + "version": { + "description": "Search criteria by ESX base image version numbers.\nversion if {@term.unset} return all ESX version numbers.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.os.esx.BaseImage.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "display_name": { + "description": "Search criteria by ESX base image version version numbers.\ndisplayName if {@term.unset} return all ESX display version numbers.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "health": { + "description": "Search criteria by health indicator.\nhealth if {@term.unset} return all health indicators.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationOsEsxBaseImagesHealth" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationOsEsxBaseImagesHealth": { + "type": "string", + "enum": [ + "NONE", + "OK", + "WARNING", + "ERROR" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationOsEsxBaseImagesImportFromImgdbTask": { + "type": "string", + "format": "binary", + "description": "ESX metadata on a cluster level." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2CaCertificatesCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "A unique name for the TPM CA certificate.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.CaCertificate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.CaCertificate.", + "type": "string" + }, + "cert_chain": { + "description": "The CA certificate chain. \n Certificates may either be added one at a time, or as a chain. Adding the certificates as a chain allows the group to be managed as a whole. For example, an entire chain can be deleted in one CaCertificates.delete operation. \n\n When certificates are added one at a time, the order must be root first, followed by any intermediates. The intermediates certificates must also be ordered in the direction from root to leaf. \n\n Similarly, when added as a chain the list must be ordered in the direction from root to leaf.\n\nIf unset creation will fail.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "name" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2CaCertificatesCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2CaCertificatesCreateSpec", + "description": "The new CA certificate details." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2EndorsementKeysCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "A unique name for the TPM endorsement key. \n The unique name should be something that an administrator can use to easily identify the remote system. For example, the hostname, or hardware UUID.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.EndorsementKey. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.attestation.tpm2.EndorsementKey.", + "type": "string" + }, + "public_key": { + "description": "TPM public endorsement key in PEM format.\nIf unset EndorsementKeys.CreateSpec.certificate must be set.", + "type": "string" + }, + "certificate": { + "description": "TPM endorsement key certificate in PEM format. \n When a endorsement key certificate is provided, it will be verified against the CA certificate list. Endorsement key certificates that are not signed by one of the CA certificates will be rejected. \n\n Using this format allows for failures to be caught during configuration rather than later during attestation.\n\nIf unset EndorsementKeys.CreateSpec.public-key must be set.", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2EndorsementKeysCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2EndorsementKeysCreateSpec", + "description": "The configuration." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2SettingsUpdateSpec": { + "type": "object", + "properties": { + "require_endorsement_keys": { + "description": "Require registered TPM endorsement keys.\nIf unset the current state will remain unchanged.", + "type": "boolean" + }, + "require_certificate_validation": { + "description": "Require TPM endorsement key certificate validation.\nIf unset the current state will remain unchanged.", + "type": "boolean" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2SettingsUpdateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersAttestationTpm2SettingsUpdateSpec", + "description": "The settings." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsCreateSpec": { + "type": "object", + "properties": { + "certificates": { + "description": "The certificates used by the vCenter STS to sign tokens.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "issuer_alias": { + "description": "A user-friendly alias of the service which created and signed the security token.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: esx.authentication.trust.security-token-issuer. When operations return a value of this structure as a result, the field will be an identifier for the resource type: esx.authentication.trust.security-token-issuer.", + "type": "string" + }, + "issuer": { + "description": "The service which created and signed the security token.", + "type": "string" + }, + "principal": { + "description": "The principal used by the vCenter to retrieve tokens.", + "$ref": "#/definitions/VcenterTrustedInfrastructureStsPrincipal" + } + }, + "required": [ + "certificates", + "issuer_alias", + "issuer", + "principal" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsCreateSpec", + "description": "The CreateSpec specifying the connection information." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsFilterSpec": { + "type": "object", + "properties": { + "id": { + "description": "The unqiue identifier of a connection profile.\nIf unset, no filtration will be performed by ID.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.authentication.clientprofile. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.authentication.clientprofile.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "principals": { + "description": "The principal used by the vCenter to retrieve tokens.\nIf unset, no filtration will be performed by principals.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureStsPrincipal" + } + }, + "issuer": { + "description": "The service which created and signed the security token.\nIf unset, no filtration will be performed by issuer.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: esx.authentication.trust.security-token-issuer. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: esx.authentication.trust.security-token-issuer.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsListTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersConsumerPrincipalsFilterSpec", + "description": "A FilterSpec specifying the profiles to be listed.\nIf {@term.unset} return all policies." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersFilterSpec": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifies the cluster.\ncluster If {@term.unset} return all Trust Authority Clusters.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "state": { + "description": "The state of the TrustAuthorityClusters.\nstate If {@term.unset} return all Trust Authority Clusters.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersState" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersInfo": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifies the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "state": { + "description": "The state of the cluster.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersState" + } + }, + "required": [ + "cluster", + "state" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersClientCertificateUpdateSpec": { + "type": "object", + "properties": { + "certificate": { + "description": "Public certificate used by every host in the cluster.", + "type": "string" + }, + "private_key": { + "description": "Private part of the certificate.\nIf unset, the update request is for a public/private client certificate pair, not for a signed CSR.", + "type": "string", + "format": "password" + } + }, + "required": [ + "certificate" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersClientCertificateUpdateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersClientCertificateUpdateSpec", + "description": "The update spec." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCreateSpec": { + "type": "object", + "properties": { + "provider": { + "description": "Name of the provider. \n A unique string chosen by the client.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.trust_authority_clusters.kms.Provider.", + "type": "string" + }, + "master_key_id": { + "description": "Master key ID created for the provider. \n A unique Key ID.", + "type": "string" + }, + "key_server": { + "description": "Key server associated with this Provider.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerCreateSpec" + } + }, + "required": [ + "provider", + "master_key_id", + "key_server" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCreateSpec", + "description": "Provider information." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCredentialSetTask": { + "type": "string", + "format": "password", + "description": "KMIP KMS password or AWS access key." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersCurrentPeerCertificatesFilterSpec": { + "type": "object", + "properties": { + "server_names": { + "description": "Names that key server must have to match the filter (see CurrentPeerCertificates.Summary.server-name).\nIf unset or empty, key servers with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "trusted": { + "description": "Trust status that server certificates must have to match the filter (see CurrentPeerCertificates.Summary.trusted).\nIf unset, trusted and untrusted server certificates match the filter.", + "type": "boolean" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Type of the key server.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerCreateSpecType" + }, + "description": { + "description": "Description of the key server.\nIf unset, description will not be added.", + "type": "string" + }, + "proxy_server": { + "description": "Proxy server configuration.\nIf unset, the key server will not use a proxy server.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "connection_timeout": { + "description": "Connection timeout in seconds.\nIf unset, connection timeout will not be set.", + "type": "integer", + "format": "int64" + }, + "kmip_server": { + "description": "Configuration information for Key Management Interoperability Protocol (KMIP) based key server.\nThis field is optional and it is only relevant when the value of Providers.KeyServerCreateSpec.type is KMIP.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKmipServerCreateSpec" + } + }, + "required": [ + "type" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerCreateSpecType": { + "type": "string", + "description": "The Providers.KeyServerCreateSpec.Type enumerated type lists the key server types.", + "enum": [ + "KMIP" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerUpdateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Type of the key server. \n\n\nIf unset, key server type and configuration information will remain unchanged. In this case all key server configuration information fields (e.g KMIP) should be unset.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerUpdateSpecType" + }, + "description": { + "description": "Description of the key server. \n\n\nIf unset, description will remain unchanged.", + "type": "string" + }, + "proxy_server": { + "description": "Proxy server configuration. \n\n\nIf unset, proxy server configuration will remain unchanged.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "connection_timeout": { + "description": "Connection timeout in seconds. \n\n\nIf unset, connection timeout will remain unchanged.", + "type": "integer", + "format": "int64" + }, + "kmip_server": { + "description": "Configuration information for KMIP based key server. \n\n\nIf unset, kmip server configuration will remain unchanged.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKmipServerUpdateSpec" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerUpdateSpecType": { + "type": "string", + "description": "The Providers.KeyServerUpdateSpec.Type enumerated type list the key server types.", + "enum": [ + "KMIP" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKmipServerCreateSpec": { + "type": "object", + "properties": { + "servers": { + "description": "List of Key Management Interoperability Protocol (KMIP) compliant key servers. \n Key servers must be configured for active-active replication. If the server port is unset, a default value for KMIP's port will be used.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersServer" + } + }, + "username": { + "description": "Username for authentication.\nIf unset, no username will be added.", + "type": "string" + } + }, + "required": [ + "servers" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKmipServerUpdateSpec": { + "type": "object", + "properties": { + "servers": { + "description": "List of KMIP compliant key servers. \n Key servers must be configured for active-active replication. If the server port is unset, a default value for KMIP's port will be used. \n\n\n\nIf unset, server configuration will remain unchanged.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersServer" + } + }, + "username": { + "description": "Username for authentication. \n\n\nIf unset, username will remain unchanged.", + "type": "string" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersServer": { + "type": "object", + "properties": { + "name": { + "description": "Name of the server. \n A unique string chosen by the client.", + "type": "string" + }, + "address": { + "description": "The server's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "required": [ + "name", + "address" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersTrustedPeerCertificatesUpdateSpec": { + "type": "object", + "properties": { + "certificates": { + "description": "Public certificates of key server to trust.\nIf unset, the trusted server certificates will not be updated.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersTrustedPeerCertificatesUpdateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersTrustedPeerCertificatesUpdateSpec", + "description": "The update spec" + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersUpdateSpec": { + "type": "object", + "properties": { + "master_key_id": { + "description": "Master key identifier created for the provider. \n A unique Key identifier. \n\n\n\nIf unset, masterKeyId will remain unchanged.", + "type": "string" + }, + "key_server": { + "description": "Key server associated with this provider. \n\n\nIf unset, key server configuration will remain unchanged.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersKeyServerUpdateSpec" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersUpdateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersKmsProvidersUpdateSpec", + "description": "Provider information." + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersState": { + "type": "string", + "enum": [ + "ENABLE", + "DISABLE" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersSummary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifies the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "state": { + "description": "The state of the TrustAuthorityClusters.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersState" + } + }, + "required": [ + "cluster", + "state" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersUpdateSpec": { + "type": "object", + "properties": { + "state": { + "description": "The state of the TrustAuthorityClusters.\nstate If {@term.unset} no operation is performed.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersState" + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityClustersUpdateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityClustersUpdateSpec", + "description": "The specification for update of a cluster." + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsAttestationFilterSpec": { + "type": "object", + "properties": { + "hosts": { + "description": "A set of host IDs by which to filter the services.\nIf unset, the services will not be filtered by the hosts on which they run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "A set of cluster IDs by which to filter the services.\nIf unset, the services will not be filtered by the clusters on which they run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "The service's address.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "groups": { + "description": "The group IDs determines which Attestation Service instances this Attestation Service can communicate with.\nIf unset, the services will not be filtered by groupId.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsAttestationInfo": { + "type": "object", + "properties": { + "host": { + "description": "The trusted ESX on which the service runs.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group ID determines which Attestation Service instances this Attestation Service can communicate with.", + "type": "string" + }, + "cluster": { + "description": "The opaque string identifier of the cluster in which the Attestation Service is part of.", + "type": "string" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "host", + "address", + "group", + "cluster", + "trusted_CA" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsAttestationList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsAttestationFilterSpec", + "description": "Return details about Attestation Services matching the filter.\nIf {@term.unset} return all registered Attestation Services." + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsAttestationSummary": { + "type": "object", + "properties": { + "summary_type": { + "description": "Defines the verbosity of the summary.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsAttestationSummaryType" + }, + "host": { + "description": "The trusted ESX on which the service runs.\nThis field is optional and it is only relevant when the value of Attestation.Summary.summary-type is one of BRIEF, NORMAL, or FULL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "address": { + "description": "The service's address.\nThis field is optional and it is only relevant when the value of Attestation.Summary.summary-type is one of BRIEF, NORMAL, or FULL.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group ID determines which Attestation Service instances this Attestation Service can communicate with.\nThis field is optional and it is only relevant when the value of Attestation.Summary.summary-type is one of NORMAL or FULL.", + "type": "string" + }, + "cluster": { + "description": "The opaque string identifier of the cluster in which the Attestation Service is part of.\nThis field is optional and it is only relevant when the value of Attestation.Summary.summary-type is one of NORMAL or FULL.", + "type": "string" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.\nThis field is optional and it is only relevant when the value of Attestation.Summary.summary-type is FULL.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "summary_type" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsAttestationSummaryType": { + "type": "string", + "description": "The connection information could include the certificates or be a shorter summary.", + "enum": [ + "FULL", + "NORMAL", + "BRIEF" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsKmsFilterSpec": { + "type": "object", + "properties": { + "hosts": { + "description": "A set of host IDs by which to filter the services.\nIf unset, the services will not be filtered by the hosts on which they run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "A set of cluster IDs by which to filter the services.\nIf unset, the services will not be filtered by the clusters on which they run.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "The service's address.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "groups": { + "description": "The group determines reports issued by which Attestation Service instances this Key Provider Service can accept.\nIf unset, the services will not be filtered by groupId.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsKmsInfo": { + "type": "object", + "properties": { + "host": { + "description": "The trusted ESX on which the service runs.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group ID determines which Attestation Service instances this Key Provider Service can communicate with.", + "type": "string" + }, + "cluster": { + "description": "The opaque string identifier of the cluster in which the Key Provider Service is part of.", + "type": "string" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "host", + "address", + "group", + "cluster", + "trusted_CA" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsKmsList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsKmsFilterSpec", + "description": "Return details about Key Provider Services matching the filter.\nIf {@term.unset} return all registered Key Provider Services." + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsKmsSummary": { + "type": "object", + "properties": { + "summary_type": { + "description": "Defines the verbosity of the summary.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustAuthorityHostsKmsSummaryType" + }, + "host": { + "description": "The trusted ESX on which the service runs.\nThis field is optional and it is only relevant when the value of Kms.Summary.summary-type is one of BRIEF, NORMAL, or FULL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "address": { + "description": "The service's address.\nThis field is optional and it is only relevant when the value of Kms.Summary.summary-type is one of BRIEF, NORMAL, or FULL.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group ID determines which Attestation Service instances this Key Provider Service can communicate with.\nThis field is optional and it is only relevant when the value of Kms.Summary.summary-type is one of NORMAL or FULL.", + "type": "string" + }, + "cluster": { + "description": "The opaque string identifier of the cluster in which the Key Provider Service is part of.\nThis field is optional and it is only relevant when the value of Kms.Summary.summary-type is one of NORMAL or FULL.", + "type": "string" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.\nThis field is optional and it is only relevant when the value of Kms.Summary.summary-type is FULL.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + } + }, + "required": [ + "summary_type" + ] + }, + "VcenterTrustedInfrastructureTrustAuthorityHostsKmsSummaryType": { + "type": "string", + "description": "The connection information could include the certificates or be a shorter summary.", + "enum": [ + "FULL", + "NORMAL", + "BRIEF" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigFilterSpec": { + "type": "object", + "properties": { + "health": { + "description": "The health of the applied Attestation Service configuration.\nIf unset, no filtration will be performed by health.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigHealth" + } + }, + "address": { + "description": "The network address of the Attestation Service configured for use in the Trusted Cluster.\nIf unset, no filtration will be performed by network address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + } + } + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigHealth": { + "type": "string", + "description": "The ServicesAppliedConfig.Health enumerated type is an indicator for the consistency of the applied Attestation Service configuration in a cluster with respect to the desired state.", + "enum": [ + "NONE", + "OK", + "ERROR" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigListTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesAppliedConfigFilterSpec", + "description": "The specification for the subset of results desired to be returned.\nIf {@term.unset} all results are returned." + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Source of truth for the configuration of the Attestation Service.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateSpecSourceType" + }, + "service": { + "description": "The service's unique ID.\nThis field is optional and it is only relevant when the value of Services.CreateSpec.type is SERVICE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The attestation cluster's unique ID.\nThis field is optional and it is only relevant when the value of Services.CreateSpec.type is CLUSTER.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateSpecSourceType": { + "type": "string", + "description": "The Services.CreateSpec.SourceType enumerated type specifies the source of truth the Attestation Service will use for its configuration.", + "enum": [ + "SERVICE", + "CLUSTER" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesCreateSpec", + "description": "Describes the registered instance of the Attestation Service" + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesFilterSpec": { + "type": "object", + "properties": { + "services": { + "description": "A set of IDs by which to filter the services.\nIf unset, the services will not be filtered by ID.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.attestation.Service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "The service's address.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "group": { + "description": "The group specifies the Key Provider Service instances can accept reports issued by this Attestation Service instance.\nIf unset, the services will not be filtered by group.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service instance belongs to.\nIf unset, the services will not be filtered by trustAuthorityCluster.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesInfo": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group determines the Key Provider Service instances can accept reports issued by this Attestation Service instance.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersAttestationServicesFilterSpec", + "description": "Only return services matching the filters.\nIf {@term.unset} return all services." + }, + "VcenterTrustedInfrastructureTrustedClustersAttestationServicesSummary": { + "type": "object", + "properties": { + "service": { + "description": "The service's unique identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.attestation.Service.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group specifies the Key Provider Service instances can accept reports issued by this Attestation Service instance.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Attestation Service belongs to.", + "type": "string" + } + }, + "required": [ + "service", + "address", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigFilterSpec": { + "type": "object", + "properties": { + "health": { + "description": "The health of the applied Key Provider Service configuration.\nIf unset, no filtration will be performed by health.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigHealth" + } + }, + "address": { + "description": "The network address of the Key Provider Service configured for use in the Trusted Cluster.\nIf unset, no filtration will be performed by network address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + } + } + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigHealth": { + "type": "string", + "description": "The ServicesAppliedConfig.Health enumerated type is an indicator for the consistency of the applied Key Provider Service configuration in a cluster with respect to the desired state.", + "enum": [ + "NONE", + "OK", + "ERROR" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigListTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesAppliedConfigFilterSpec", + "description": "The specification for the subset of results desired to be returned.\nIf {@term.unset} all results are returned." + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Source of truth for the configuration of the Key Provider Service.", + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateSpecSourceType" + }, + "service": { + "description": "The service's unique ID.\nThis field is optional and it is only relevant when the value of Services.CreateSpec.type is SERVICE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The attestation cluster's unique ID.\nThis field is optional and it is only relevant when the value of Services.CreateSpec.type is CLUSTER.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateSpecSourceType": { + "type": "string", + "description": "The Services.CreateSpec.SourceType enumerated type specifies source of truth the Key Provider Service will use for its configuration.", + "enum": [ + "SERVICE", + "CLUSTER" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateTask": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesCreateSpec", + "description": "Describes the registered instance of the Key Provider Service" + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesFilterSpec": { + "type": "object", + "properties": { + "services": { + "description": "A set of IDs by which to filter the services.\nIf unset, the services will not be filtered by ID.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.trusted_infrastructure.kms.Service. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "address": { + "description": "The service's address.\nIf unset, the services will not be filtered by address.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + } + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.\nIf unset, the services will not be filtered by group.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service instance belongs to.\nIf unset, the services will not be filtered by trustAuthorityCluster.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesInfo": { + "type": "object", + "properties": { + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "trusted_CA": { + "description": "The service's TLS certificate chain.", + "$ref": "#/definitions/VcenterTrustedInfrastructureX509CertChain" + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service belongs to.", + "type": "string" + } + }, + "required": [ + "address", + "trusted_CA", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesList": { + "$ref": "#/definitions/VcenterTrustedInfrastructureTrustedClustersKmsServicesFilterSpec", + "description": "Only return services matching the filters.\nIf {@term.unset} return all services." + }, + "VcenterTrustedInfrastructureTrustedClustersKmsServicesSummary": { + "type": "object", + "properties": { + "service": { + "description": "The service's unique identifier.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.trusted_infrastructure.kms.Service.", + "type": "string" + }, + "address": { + "description": "The service's address.", + "$ref": "#/definitions/VcenterTrustedInfrastructureNetworkAddress" + }, + "group": { + "description": "The group determines the Attestation Service instances this Key Provider Service can accept reports from.", + "type": "string" + }, + "trust_authority_cluster": { + "description": "The cluster specifies the Trust Authority Cluster this Key Provider Service belongs to.", + "type": "string" + } + }, + "required": [ + "service", + "address", + "group", + "trust_authority_cluster" + ] + }, + "VcenterTrustedInfrastructureX509CertChain": { + "type": "object", + "properties": { + "cert_chain": { + "description": "Certificate chain in base64 format", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "cert_chain" + ] + }, + "VcenterVMClone": { + "$ref": "#/definitions/VcenterVMCloneSpec", + "description": "Virtual machine clone specification." + }, + "VcenterVMClonePlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the cloned virtual machine should be placed.\nIf field is unset, the system will use the virtual machine folder of the source virtual machine. If this results in a conflict due to other placement parameters, the virtual machine clone operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the cloned virtual machine should be placed.\nIf field is unset, the system will use the resource pool of the source virtual machine. If this results in a conflict due to other placement parameters, the virtual machine clone operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the cloned virtual machine should be placed. \n If VM.ClonePlacementSpec.host and VM.ClonePlacementSpec.resource-pool are both specified, VM.ClonePlacementSpec.resource-pool must belong to VM.ClonePlacementSpec.host. \n\n If VM.ClonePlacementSpec.host and VM.ClonePlacementSpec.cluster are both specified, VM.ClonePlacementSpec.host must be a member of VM.ClonePlacementSpec.cluster.\n\nIf this field is unset, if VM.ClonePlacementSpec.resource-pool is unset, the cloned virtual machine will use the host of the source virtual machine. if VM.ClonePlacementSpec.resource-pool is set, and the target is a standalone host, the host is used. if VM.ClonePlacementSpec.resource-pool is set, and the target is a DRS cluster, a host will be picked by DRS. if VM.ClonePlacementSpec.resource-pool is set, and the target is a cluster without DRS, InvalidArgument will be thrown.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the cloned virtual machine should be placed. \n If VM.ClonePlacementSpec.cluster and VM.ClonePlacementSpec.resource-pool are both specified, VM.ClonePlacementSpec.resource-pool must belong to VM.ClonePlacementSpec.cluster. \n\n If VM.ClonePlacementSpec.cluster and VM.ClonePlacementSpec.host are both specified, VM.ClonePlacementSpec.host must be a member of VM.ClonePlacementSpec.cluster.\n\nIf VM.ClonePlacementSpec.resource-pool or VM.ClonePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the cloned virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine clone operation unless individually overridden.\nIf field is unset, the system will use the datastore of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMCloneSpec": { + "type": "object", + "properties": { + "source": { + "description": "Virtual machine to clone from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/VcenterVMClonePlacementSpec" + }, + "disks_to_remove": { + "description": "Set of Disks to Remove.\nIf unset, all disks will be copied. If the same identifier is in VM.CloneSpec.disks-to-update InvalidArgument fault will be returned.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "disks_to_update": { + "description": "Map of Disks to Update.\nIf unset, all disks will copied to the datastore specified in the VM.ClonePlacementSpec.datastore field of VM.CloneSpec.placement. If the same identifier is in VM.CloneSpec.disks-to-remove InvalidArgument fault will be thrown.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVMDiskCloneSpec" + } + }, + "power_on": { + "description": "Attempt to perform a VM.CloneSpec.power-on after clone.\nIf unset, the virtual machine will not be powered on.", + "type": "boolean" + }, + "guest_customization_spec": { + "description": "Guest customization spec to apply to the virtual machine after the virtual machine is deployed.\nIf unset, the guest operating system is not customized after clone.", + "$ref": "#/definitions/VcenterVMGuestCustomizationSpec" + } + }, + "required": [ + "source", + "name" + ] + }, + "VcenterVMCloneTask": { + "$ref": "#/definitions/VcenterVMCloneSpec", + "description": "Virtual machine clone specification." + }, + "VcenterVMCreate": { + "$ref": "#/definitions/VcenterVMCreateSpec", + "description": "Virtual machine specification." + }, + "VcenterVMCreateSpec": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Guest OS.", + "$ref": "#/definitions/VcenterVmGuestOS" + }, + "name": { + "description": "Virtual machine name.\nIf unset, a default name will be generated by the server.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable resources on which to place the virtual machine.", + "$ref": "#/definitions/VcenterVMPlacementSpec" + }, + "hardware_version": { + "description": "Virtual hardware version.\nIf unset, defaults to the most recent version supported by the server.", + "$ref": "#/definitions/VcenterVmHardwareVersion" + }, + "boot": { + "description": "Boot configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/VcenterVmHardwareBootCreateSpec" + }, + "boot_devices": { + "description": "Boot device configuration.\nIf unset, a server-specific boot sequence will be used.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareBootDeviceEntryCreateSpec" + } + }, + "cpu": { + "description": "CPU configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/VcenterVmHardwareCpuUpdateSpec" + }, + "memory": { + "description": "Memory configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/VcenterVmHardwareMemoryUpdateSpec" + }, + "disks": { + "description": "List of disks.\nIf unset, a single blank virtual disk of a guest-specific size will be created on the same storage as the virtual machine configuration, and will use a guest-specific host bus adapter type. If the guest-specific size is 0, no virtual disk will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareDiskCreateSpec" + } + }, + "nics": { + "description": "List of Ethernet adapters.\nIf unset, no Ethernet adapters will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareEthernetCreateSpec" + } + }, + "cdroms": { + "description": "List of CD-ROMs.\nIf unset, no CD-ROM devices will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareCdromCreateSpec" + } + }, + "floppies": { + "description": "List of floppy drives.\nIf unset, no floppy drives will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareFloppyCreateSpec" + } + }, + "parallel_ports": { + "description": "List of parallel ports.\nIf unset, no parallel ports will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareParallelCreateSpec" + } + }, + "serial_ports": { + "description": "List of serial ports.\nIf unset, no serial ports will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareSerialCreateSpec" + } + }, + "sata_adapters": { + "description": "List of SATA adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a SATA host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is SATA.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataCreateSpec" + } + }, + "scsi_adapters": { + "description": "List of SCSI adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a SCSI host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is SCSI. The type of the SCSI adapter will be a guest-specific default type.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiCreateSpec" + } + }, + "nvme_adapters": { + "description": "List of NVMe adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a NVMe host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is NVMe.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeCreateSpec" + } + }, + "storage_policy": { + "description": "The VM.StoragePolicySpec structure contains information about the storage policy that is to be associated with the virtual machine home (which contains the configuration and log files).\nIf unset the datastore default storage policy (if applicable) is applied. Currently a default storage policy is only supported by object datastores : VVol and vSAN. For non-object datastores, if unset then no storage policy would be associated with the virtual machine home.", + "$ref": "#/definitions/VcenterVMStoragePolicySpec" + } + }, + "required": [ + "guest_OS" + ] + }, + "VcenterVMDiskCloneSpec": { + "type": "object", + "properties": { + "datastore": { + "description": "Destination datastore to clone disk.\nThis field is currently required. In the future, if this field is unset disk will be copied to the datastore specified in the VM.ClonePlacementSpec.datastore field of VM.CloneSpec.placement.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMDiskRelocateSpec": { + "type": "object", + "properties": { + "datastore": { + "description": "Destination datastore to relocate disk.\nThis field is currently required. In the future, if this field is unset, disk will use the datastore specified in VM.RelocatePlacementSpec.datastore field of VM.RelocateSpec.placement.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMFilterSpec": { + "type": "object", + "properties": { + "vms": { + "description": "Identifiers of virtual machines that can match the filter.\nIf unset or empty, virtual machines with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that virtual machines must have to match the filter (see VM.Info.name).\nIf unset or empty, virtual machines with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "hosts": { + "description": "Hosts that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines on any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "Clusters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "resource_pools": { + "description": "Resource pools that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "power_states": { + "description": "Power states that a virtual machine must be in to match the filter (see Power.Info.state.\nIf unset or empty, virtual machines in any power state match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/VcenterVmPowerState" + } + } + } + }, + "VcenterVMGuestCustomizationSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the customization specification.\nIf unset, no guest customization is performed.", + "type": "string" + } + } + }, + "VcenterVMInfo": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Guest OS.", + "$ref": "#/definitions/VcenterVmGuestOS" + }, + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "identity": { + "description": "Identity of the virtual machine.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/VcenterVmIdentityInfo" + }, + "power_state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/VcenterVmPowerState" + }, + "instant_clone_frozen": { + "description": "Indicates whether the virtual machine is frozen for instant clone, or not.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "hardware": { + "description": "Virtual hardware version information.", + "$ref": "#/definitions/VcenterVmHardwareInfo" + }, + "boot": { + "description": "Boot configuration.", + "$ref": "#/definitions/VcenterVmHardwareBootInfo" + }, + "boot_devices": { + "description": "Boot device configuration. If the list has no entries, a server-specific default boot sequence is used.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareBootDeviceEntry" + } + }, + "cpu": { + "description": "CPU configuration.", + "$ref": "#/definitions/VcenterVmHardwareCpuInfo" + }, + "memory": { + "description": "Memory configuration.", + "$ref": "#/definitions/VcenterVmHardwareMemoryInfo" + }, + "disks": { + "description": "List of disks.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareDiskInfo" + } + }, + "nics": { + "description": "List of Ethernet adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareEthernetInfo" + } + }, + "cdroms": { + "description": "List of CD-ROMs.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Cdrom. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareCdromInfo" + } + }, + "floppies": { + "description": "List of floppy drives.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Floppy. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareFloppyInfo" + } + }, + "parallel_ports": { + "description": "List of parallel ports.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareParallelInfo" + } + }, + "serial_ports": { + "description": "List of serial ports.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareSerialInfo" + } + }, + "sata_adapters": { + "description": "List of SATA adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataInfo" + } + }, + "scsi_adapters": { + "description": "List of SCSI adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiInfo" + } + }, + "nvme_adapters": { + "description": "List of NVMe adapters.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeInfo" + } + } + }, + "required": [ + "guest_OS", + "name", + "power_state", + "hardware", + "boot", + "boot_devices", + "cpu", + "memory", + "disks", + "nics", + "cdroms", + "floppies", + "parallel_ports", + "serial_ports", + "sata_adapters", + "scsi_adapters" + ] + }, + "VcenterVMInstantClone": { + "$ref": "#/definitions/VcenterVMInstantCloneSpec", + "description": "Virtual machine InstantCloneSpec." + }, + "VcenterVMInstantClonePlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the InstantCloned virtual machine should be placed.\nIf field is unset, the system will use the virtual machine folder of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the InstantCloned virtual machine should be placed.\nIf field is unset, the system will use the resource pool of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the InstantCloned virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine InstantClone operation.\nIf field is unset, the system will use the datastore of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMInstantCloneSpec": { + "type": "object", + "properties": { + "source": { + "description": "Virtual machine to InstantClone from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the new virtual machine.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/VcenterVMInstantClonePlacementSpec" + }, + "nics_to_update": { + "description": "Map of NICs to update.\nIf unset, no NICs will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareEthernetUpdateSpec" + } + }, + "disconnect_all_nics": { + "description": "Indicates whether all NICs on the destination virtual machine should be disconnected from the newtwork\nIf unset, connection status of all NICs on the destination virtual machine will be the same as on the source virtual machine.", + "type": "boolean" + }, + "parallel_ports_to_update": { + "description": "Map of parallel ports to Update.\nIf unset, no parallel ports will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareParallelUpdateSpec" + } + }, + "serial_ports_to_update": { + "description": "Map of serial ports to Update.\nIf unset, no serial ports will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmHardwareSerialUpdateSpec" + } + }, + "bios_uuid": { + "description": "128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.\nIf unset, will be generated.", + "type": "string" + } + }, + "required": [ + "source", + "name" + ] + }, + "VcenterVMPlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nThis field is currently required if both VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are unset. In the future, if this field is unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.host. \n\n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nThis field may be unset if VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.cluster. \n\n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.host are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nIf VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine creation operation.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable storage for the virtual machine; if storage cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMRegister": { + "$ref": "#/definitions/VcenterVMRegisterSpec", + "description": "Specification of the location of the virtual machine files and the placement of the new virtual machine." + }, + "VcenterVMRegisterPlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nThis field is currently required if both VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are unset. In the future, if this field is unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.host. \n\n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nThis field may be unset if VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.cluster. \n\n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.host are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nIf VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "VcenterVMRegisterSpec": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore on which the virtual machine's configuration state is stored.\nIf unset, VM.RegisterSpec.path must also be unset and VM.RegisterSpec.datastore-path must be set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "path": { + "description": "Path to the virtual machine's configuration file on the datastore corresponding to {@link #datastore).\nIf unset, VM.RegisterSpec.datastore must also be unset and VM.RegisterSpec.datastore-path must be set.", + "type": "string" + }, + "datastore_path": { + "description": "Datastore path for the virtual machine's configuration file in the format \"[datastore name] path\". For example \"[storage1] Test-VM/Test-VM.vmx\".\nIf unset, both VM.RegisterSpec.datastore and VM.RegisterSpec.path must be set.", + "type": "string" + }, + "name": { + "description": "Virtual machine name.\nIf unset, the display name from the virtual machine's configuration file will be used.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable resources on which to place the virtual machine.", + "$ref": "#/definitions/VcenterVMRegisterPlacementSpec" + } + } + }, + "VcenterVMRelocate": { + "$ref": "#/definitions/VcenterVMRelocateSpec", + "description": "Relocate specification." + }, + "VcenterVMRelocatePlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nIf this field is unset, the virtual machine will stay in the current folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nIf this field is unset, the virtual machine will stay in the current resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.RelocatePlacementSpec.host and VM.RelocatePlacementSpec.resource-pool are both specified, VM.RelocatePlacementSpec.resource-pool must belong to VM.RelocatePlacementSpec.host. \n\n If VM.RelocatePlacementSpec.host and VM.RelocatePlacementSpec.cluster are both specified, VM.RelocatePlacementSpec.host must be a member of VM.RelocatePlacementSpec.cluster.\n\nIf this field is unset, if VM.RelocatePlacementSpec.resource-pool is unset, the virtual machine will remain on the current host. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a standalone host, the host is used. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a DRS cluster, a host will be picked by DRS. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a cluster without DRS, InvalidArgument will be thrown.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.RelocatePlacementSpec.cluster and VM.RelocatePlacementSpec.resource-pool are both specified, VM.RelocatePlacementSpec.resource-pool must belong to VM.RelocatePlacementSpec.cluster. \n\n If VM.RelocatePlacementSpec.cluster and VM.RelocatePlacementSpec.host are both specified, VM.RelocatePlacementSpec.host must be a member of VM.RelocatePlacementSpec.cluster.\n\nIf VM.RelocatePlacementSpec.resource-pool or VM.RelocatePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are associated with the virtual machine, unless individually overridden.\nIf this field is unset, the virtual machine will remain on the current datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "VcenterVMRelocateSpec": { + "type": "object", + "properties": { + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the other existing placement of the virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/VcenterVMRelocatePlacementSpec" + }, + "disks": { + "description": "Individual disk relocation map.\nIf unset, all disks will migrate to the datastore specified in the VM.RelocatePlacementSpec.datastore field of VM.RelocateSpec.placement.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVMDiskRelocateSpec" + } + } + } + }, + "VcenterVMRelocateTask": { + "$ref": "#/definitions/VcenterVMRelocateSpec", + "description": "Relocate specification." + }, + "VcenterVMStoragePolicySpec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy which should be associated with the virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "policy" + ] + }, + "VcenterVMSummary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of the virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the Virtual machine.", + "type": "string" + }, + "power_state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/VcenterVmPowerState" + }, + "cpu_count": { + "description": "Number of CPU cores.\nThis field will be unset if the virtual machine configuration is not available. For example, the configuration information would be unavailable if the server is unable to access the virtual machine files on disk, and is often also unavailable during the intial phases of virtual machine creation.", + "type": "integer", + "format": "int64" + }, + "memory_size_MiB": { + "description": "Memory size in mebibytes.\nThis field will be unset if the virtual machine configuration is not available. For example, the configuration information would be unavailable if the server is unable to access the virtual machine files on disk, and is often also unavailable during the intial phases of virtual machine creation.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "vm", + "name", + "power_state" + ] + }, + "VcenterVchaClusterActiveGet": { + "type": "object", + "properties": { + "vc_spec": { + "$ref": "#/definitions/VcenterVchaCredentialsSpec", + "description": "Contains active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance." + }, + "partial": { + "type": "boolean", + "description": "If true, then return only the information that does not require connecting to the Active vCenter Server. \n If false or unset, then return all the information.\nIf unset, then return all the information." + } + } + }, + "VcenterVchaClusterActiveInfo": { + "type": "object", + "properties": { + "management": { + "description": "IP specification for the Management network.", + "$ref": "#/definitions/VcenterVchaIpSpec" + }, + "ha": { + "description": "IP specification for the HA network.\nIf unset, then the second NIC of the Active Node of the VCHA cluster is not configured.", + "$ref": "#/definitions/VcenterVchaIpSpec" + }, + "placement": { + "description": "Contains the placement information of the active node.\nIf unset, the request specified that placement information of the active node should not be included.", + "$ref": "#/definitions/VcenterVchaPlacementInfo" + } + }, + "required": [ + "management" + ] + }, + "VcenterVchaClusterActiveSpec": { + "type": "object", + "properties": { + "ha_network_type": { + "description": "The type of the Network object used by the HA network.\n If the Cluster.ActiveSpec.ha-network field is set, then the Cluster.ActiveSpec.ha-network-type field must be set.\n If the Cluster.ActiveSpec.ha-network field is unset, then the Cluster.ActiveSpec.ha-network-type field is ignored.\nIf unset and the Cluster.ActiveSpec.ha-network field is unset, then the second NIC is assumed to be already configured.\n If unset and the Cluster.ActiveSpec.ha-network field is set, then an error is reported.", + "$ref": "#/definitions/VcenterVchaNetworkType" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\n If the Cluster.ActiveSpec.ha-network field is set, then the Cluster.ActiveSpec.ha-network-type field must be set.\n If the Cluster.ActiveSpec.ha-network field is unset, then the Cluster.ActiveSpec.ha-network-type field is ignored.\nIf unset and the Cluster.ActiveSpec.ha-network-type field is unset, then the second NIC is assumed to be already configured.\n If unset and the Cluster.ActiveSpec.ha-network field is set, then an error is reported.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/VcenterVchaIpSpec" + } + }, + "required": [ + "ha_ip" + ] + }, + "VcenterVchaClusterClusterMode": { + "type": "string", + "description": "The Cluster.ClusterMode enumerated type defines the possible modes for a VCHA Cluster.", + "enum": [ + "ENABLED", + "DISABLED", + "MAINTENANCE" + ] + }, + "VcenterVchaClusterClusterState": { + "type": "string", + "description": "The Cluster.ClusterState enumerated type defines the possible for a VCHA Cluster.", + "enum": [ + "HEALTHY", + "DEGRADED", + "ISOLATED" + ] + }, + "VcenterVchaClusterConfigState": { + "type": "string", + "description": "The Cluster.ConfigState enumerated type defines the VCHA configuration state.", + "enum": [ + "CONFIGURED", + "NOTCONFIGURED", + "INVALID", + "PREPARED" + ] + }, + "VcenterVchaClusterDeploySpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "deployment": { + "description": "Contains the deployment type.", + "$ref": "#/definitions/VcenterVchaClusterType" + }, + "active": { + "description": "Contains the active node's network configuration.", + "$ref": "#/definitions/VcenterVchaClusterActiveSpec" + }, + "passive": { + "description": "Contains the passive node's placement configuration.", + "$ref": "#/definitions/VcenterVchaClusterPassiveSpec" + }, + "witness": { + "description": "Contains the witness node's placement configuration.", + "$ref": "#/definitions/VcenterVchaClusterWitnessSpec" + } + }, + "required": [ + "deployment", + "active", + "passive", + "witness" + ] + }, + "VcenterVchaClusterDeployTask": { + "$ref": "#/definitions/VcenterVchaClusterDeploySpec", + "description": "Contains the deploy specification for all three nodes of a VCHA cluster." + }, + "VcenterVchaClusterDeploymentTypeInfo": { + "type": "object", + "properties": { + "deployment_type": { + "description": "Identifies the deployment type of the VCHA cluster.", + "$ref": "#/definitions/VcenterVchaClusterDeploymentTypeType" + } + }, + "required": [ + "deployment_type" + ] + }, + "VcenterVchaClusterDeploymentTypeType": { + "type": "string", + "description": "The DeploymentType.Type enumerated type defines the possible deployment types for a VCHA Cluster.", + "enum": [ + "NONE", + "AUTO", + "MANUAL" + ] + }, + "VcenterVchaClusterErrorCondition": { + "type": "object", + "properties": { + "error": { + "description": "Contains an error condition.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "recommendation": { + "description": "Contains a recommendation on handling the error condition.\nIf unset, there is no tip for the error condition.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "required": [ + "error" + ] + }, + "VcenterVchaClusterFailoverTask": { + "type": "object", + "properties": { + "planned": { + "type": "boolean", + "description": "If false, a failover is initiated immediately and may result in data loss.\n If true, a failover is initated after the Active node flushes its state to Passive and there is no data loss." + } + }, + "required": [ + "planned" + ] + }, + "VcenterVchaClusterGet": { + "type": "object", + "properties": { + "vc_spec": { + "$ref": "#/definitions/VcenterVchaCredentialsSpec", + "description": "Contains active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance." + }, + "partial": { + "type": "boolean", + "description": "If true, then return only the information that does not require connecting to the Active vCenter Server.\n If false or unset, then return all the information.\nIf unset, then return all the information." + } + } + }, + "VcenterVchaClusterInfo": { + "type": "object", + "properties": { + "config_state": { + "description": "Configuration state of the VCHA cluster.\n The active node's management vCenter server credentials are not required to populate this field.\nIf unset, then the information is unavailable.", + "$ref": "#/definitions/VcenterVchaClusterConfigState" + }, + "node1": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable.", + "$ref": "#/definitions/VcenterVchaClusterNodeInfo" + }, + "node2": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterNodeInfo" + }, + "witness": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterWitnessInfo" + }, + "mode": { + "description": "Operational mode of the VCHA Cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterClusterMode" + }, + "health_state": { + "description": "Last known state of the VCHA Cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterClusterState" + }, + "health_exception": { + "description": "Health warning messages if the health information is unavailable.\nIf unset, then the cluster is in a healthy state.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "health_warnings": { + "description": "A collection of messages describing the reason for a non-healthy Cluster.\nIf unset, then the cluster is in a healthy state.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVchaClusterErrorCondition" + } + }, + "manual_failover_allowed": { + "description": "Specifies if manual failover is allowed.\nIf unset, then the cluster state healthy and manual failover allowance in accordance with the cluster mode.", + "type": "boolean" + }, + "auto_failover_allowed": { + "description": "Specifies if automatic failover is allowed.\nIf unset, then the cluster state healthy and automatic failover allowance in accordance with the cluster mode.", + "type": "boolean" + } + } + }, + "VcenterVchaClusterIpFamily": { + "type": "string", + "description": "The Cluster.IpFamily enumerated type defines the IP address family.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "VcenterVchaClusterIpInfo": { + "type": "object", + "properties": { + "ip_family": { + "description": "Family of the ip.", + "$ref": "#/definitions/VcenterVchaClusterIpFamily" + }, + "ipv4": { + "description": "If the type of the ip family is IPV4, then this will point to IPv4 address specification.\nThis field is optional and it is only relevant when the value of Cluster.IpInfo.ip-family is IPV4.", + "$ref": "#/definitions/VcenterVchaClusterIpv4Info" + }, + "ipv6": { + "description": "If the type of the ip family is IPV6, then this will point to IPv6 address specification.\nThis field is optional and it is only relevant when the value of Cluster.IpInfo.ip-family is IPV6.", + "$ref": "#/definitions/VcenterVchaClusterIpv6Info" + }, + "gateway_ip": { + "description": "Gateway IP address.\nIf unset, no gateway is specified.", + "type": "string" + } + }, + "required": [ + "ip_family" + ] + }, + "VcenterVchaClusterIpv4Info": { + "type": "object", + "properties": { + "address": { + "description": "IP address of the configured network interface.", + "type": "string" + }, + "subnet_mask": { + "description": "The subnet mask of the interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix of the interface.\nIf unset , then the subnet mask is invalid.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "subnet_mask" + ] + }, + "VcenterVchaClusterIpv6Info": { + "type": "object", + "properties": { + "address": { + "description": "IP address of the configured network interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix of the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "VcenterVchaClusterModeClusterMode": { + "type": "string", + "description": "The Mode.ClusterMode enumerated type defines the possible modes for a VCHA Cluster.", + "enum": [ + "ENABLED", + "DISABLED", + "MAINTENANCE" + ] + }, + "VcenterVchaClusterModeInfo": { + "type": "object", + "properties": { + "mode": { + "description": "Identifies the mode of the VCHA cluster.", + "$ref": "#/definitions/VcenterVchaClusterModeClusterMode" + } + }, + "required": [ + "mode" + ] + }, + "VcenterVchaClusterModeSetTask": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/definitions/VcenterVchaClusterModeClusterMode", + "description": "Clustermode to change the VCHA cluster mode to." + } + }, + "required": [ + "mode" + ] + }, + "VcenterVchaClusterNodeInfo": { + "type": "object", + "properties": { + "failover_ip": { + "description": "Failover IP address that this node will assume after the failover to serve client requests. Each failover node can have a different failover IP address.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeInfo.failover-ip.\nIf unset, then it will assume the public IP address of the Active vCenter Server.", + "$ref": "#/definitions/VcenterVchaClusterIpInfo" + }, + "ha_ip": { + "description": "VCHA Cluster network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\n The active node's management vCenter server credentials are not required to populate this Cluster.NodeInfo.ha-ip.", + "$ref": "#/definitions/VcenterVchaClusterIpInfo" + }, + "runtime": { + "description": "Runtime information for the node in the VCHA Cluster.\n The active node's management vCenter server credentials are required to populate some fields of Cluster.NodeInfo.runtime.\nIf unset, then the information is unavailable or the specified Active vCenter server management credentials are invalid or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterNodeRuntimeInfo" + } + }, + "required": [ + "ha_ip" + ] + }, + "VcenterVchaClusterNodeRole": { + "type": "string", + "description": "The Cluster.NodeRole enumerated type defines the role node can be in a VCHA Cluster.", + "enum": [ + "ACTIVE", + "PASSIVE", + "WITNESS" + ] + }, + "VcenterVchaClusterNodeRuntimeInfo": { + "type": "object", + "properties": { + "state": { + "description": "Last known state of the node.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeRuntimeInfo.state.\nIf unset, then information is unavailable or the passive and witness nodes are not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterNodeState" + }, + "role": { + "description": "Last known role of the node.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeRuntimeInfo.role.\nIf unset, then information is unavailable or the passive and witness nodes are not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterNodeRole" + }, + "placement": { + "description": "Placement information of the node.\n The active node's management vCenter server credentials are required to populate most fields of Cluster.NodeRuntimeInfo.placement.\nIf unset, then the information is unavailable or the specified Active vCenter server management credentials are invalid or the node is not cloned yet or the VCHA cluster was deployed in a manual fashion.", + "$ref": "#/definitions/VcenterVchaPlacementInfo" + } + } + }, + "VcenterVchaClusterNodeState": { + "type": "string", + "description": "The Cluster.NodeState enumerated type defines possible state a node can be in a VCHA Cluster.", + "enum": [ + "UP", + "DOWN" + ] + }, + "VcenterVchaClusterNodeVmInfo": { + "type": "object", + "properties": { + "vm": { + "description": "The identifier of the virtual machine of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine:VCenter.", + "type": "string" + }, + "bios_uuid": { + "description": "BIOS UUID for the node.", + "type": "string" + } + }, + "required": [ + "vm", + "bios_uuid" + ] + }, + "VcenterVchaClusterPassiveCheck": { + "$ref": "#/definitions/VcenterVchaClusterPassiveCheckSpec", + "description": "Contains the passive node's placement specification." + }, + "VcenterVchaClusterPassiveCheckResult": { + "type": "object", + "properties": { + "warnings": { + "description": "A list of problems which may require attention, but which are not fatal.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "errors": { + "description": "A list of problems which are fatal to the operation and the operation will fail.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "warnings", + "errors" + ] + }, + "VcenterVchaClusterPassiveCheckSpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "placement": { + "description": "Contains the node's placement information for validation.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + } + }, + "required": [ + "placement" + ] + }, + "VcenterVchaClusterPassiveRedeploySpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "placement": { + "description": "Contains the node's placement information.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + }, + "ha_ip": { + "description": "Contains the VCHA HA network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\nIf unset, then the stored network configuration for the VCHA HA network for the passive node will be used.", + "$ref": "#/definitions/VcenterVchaIpSpec" + }, + "failover_ip": { + "description": "Failover IP address that this node must assume after the failover to serve client requests.\nIf unset, then the public IP address of the Active vCenter Server is assumed.", + "$ref": "#/definitions/VcenterVchaIpSpec" + } + }, + "required": [ + "placement" + ] + }, + "VcenterVchaClusterPassiveRedeployTask": { + "$ref": "#/definitions/VcenterVchaClusterPassiveRedeploySpec", + "description": "Contains the passive node's redeploy specification." + }, + "VcenterVchaClusterPassiveSpec": { + "type": "object", + "properties": { + "placement": { + "description": "Contains the placement configuration of the node.\nIf unset, then the it is assumed that the clone will be done manually by the customer. In this case, the placement configuration for the witness node should also be omitted. Only the network configuration will be setup. Once the passive and witness nodes are cloned from the active node, the VCHA high availability is turned on.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/VcenterVchaIpSpec" + }, + "failover_ip": { + "description": "IP specification for the management network.\nIf unset, then it will assume the public IP address of the Active vCenter Server.", + "$ref": "#/definitions/VcenterVchaIpSpec" + } + }, + "required": [ + "ha_ip" + ] + }, + "VcenterVchaClusterType": { + "type": "string", + "description": "The Cluster.Type enumerated type defines the possible deployment types for a VCHA Cluster.", + "enum": [ + "AUTO", + "MANUAL" + ] + }, + "VcenterVchaClusterUndeploySpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "force_delete": { + "description": "Flag controlling in what circumstances the virtual machines will be deleted. For this flag to take effect, the VCHA cluster should have been successfully configured using automatic deployment. \n - If true, the Cluster.UndeploySpec.vms field will be ignored, the VCHA cluster specific information is removed, and the passive and witness virtual machines will be deleted.\n - If false, the Cluster.UndeploySpec.vms field contains the information identifying the passive and witness virtual machines.\n \n = If the Cluster.UndeploySpec.vms field is set, then it will be validated prior to deleting the passive and witness virtual machines and VCHA cluster specific information is removed.\n = If the Cluster.UndeploySpec.vms field is unset, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.\n \nIf unset, the Cluster.UndeploySpec.vms field contains the information identifying the passive and witness virtual machines. \n - If the Cluster.UndeploySpec.vms field is set, then it will be validated prior to deleting the passive and witness virtual machines. VCHA cluster specific information is removed.\n - If the Cluster.UndeploySpec.vms field is unset, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.", + "type": "boolean" + }, + "vms": { + "description": "Contains virtual machine information for the passive and witness virtual machines. For this flag to take effect, the VCHA cluster should have been successfully configured using automatic deployment. \n If set, the Cluster.UndeploySpec.force-delete field controls whether this information is validated. \n\n - If the Cluster.UndeploySpec.force-delete field is true, then this information is ignored, VCHA cluster specific information is removed and the passive and witness virtual machines will be deleted.\n - If the Cluster.UndeploySpec.force-delete field is unset or false, then this information is validated prior to deleting the passive and witness virtual machines. VCHA cluster specific information is removed.\n \nIf unset, the Cluster.UndeploySpec.force-delete field controls the deletion of the passive and witness virtual machines. \n - If the Cluster.UndeploySpec.force-delete field is true, then the passive and witness virtual machines will be deleted. VCHA cluster specific information is removed. \n - If the Cluster.UndeploySpec.force-delete field is unset or false, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.", + "$ref": "#/definitions/VcenterVchaClusterVmInfo" + } + } + }, + "VcenterVchaClusterUndeployTask": { + "$ref": "#/definitions/VcenterVchaClusterUndeploySpec", + "description": "Contains the undeploy specification for a VCHA cluster." + }, + "VcenterVchaClusterVmInfo": { + "type": "object", + "properties": { + "passive": { + "description": "The virtual machine information of the passive node.", + "$ref": "#/definitions/VcenterVchaClusterNodeVmInfo" + }, + "witness": { + "description": "The virtual machine information of the witness node.", + "$ref": "#/definitions/VcenterVchaClusterNodeVmInfo" + } + }, + "required": [ + "passive", + "witness" + ] + }, + "VcenterVchaClusterWitnessCheck": { + "$ref": "#/definitions/VcenterVchaClusterWitnessCheckSpec", + "description": "Contains the witness node's placement specification." + }, + "VcenterVchaClusterWitnessCheckResult": { + "type": "object", + "properties": { + "warnings": { + "description": "A list of problems which may require attention, but which are not fatal.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + }, + "errors": { + "description": "A list of problems which are fatal to the operation and the operation will fail.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "warnings", + "errors" + ] + }, + "VcenterVchaClusterWitnessCheckSpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "placement": { + "description": "Contains the node's placement information for validation.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + } + }, + "required": [ + "placement" + ] + }, + "VcenterVchaClusterWitnessInfo": { + "type": "object", + "properties": { + "ha_ip": { + "description": "VCHA Cluster network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\n The active node's management vCenter server credentials are not required to populate Cluster.WitnessInfo.ha-ip.", + "$ref": "#/definitions/VcenterVchaClusterIpInfo" + }, + "runtime": { + "description": "Runtime information for the node in the VCHA Cluster.\n The active node's management vCenter server credentials are required to populate some fields of Cluster.WitnessInfo.runtime.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/VcenterVchaClusterNodeRuntimeInfo" + } + }, + "required": [ + "ha_ip" + ] + }, + "VcenterVchaClusterWitnessRedeploySpec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/VcenterVchaCredentialsSpec" + }, + "placement": { + "description": "Contains the node's placement information.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + }, + "ha_ip": { + "description": "Contains the VCHA HA network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\nIf unset, then the stored network configuration for the VCHA HA network for the witness node will be used.", + "$ref": "#/definitions/VcenterVchaIpSpec" + } + }, + "required": [ + "placement" + ] + }, + "VcenterVchaClusterWitnessRedeployTask": { + "$ref": "#/definitions/VcenterVchaClusterWitnessRedeploySpec", + "description": "Contains the witness node's redeploy specification." + }, + "VcenterVchaClusterWitnessSpec": { + "type": "object", + "properties": { + "placement": { + "description": "Contains the placement configuration of the node.\nIf unset, then it is assumed that the clone will be done manually by the customer. In this case, the placement configuration for the witness node should also be omitted. Only the network configuration will be setup. Once the passive and witness nodes are cloned from the active node, the VCHA high availability is turned on.", + "$ref": "#/definitions/VcenterVchaPlacementSpec" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/VcenterVchaIpSpec" + } + }, + "required": [ + "ha_ip" + ] + }, + "VcenterVchaConnectionSpec": { + "type": "object", + "properties": { + "hostname": { + "description": "IP Address or DNS of the vCenter.", + "type": "string" + }, + "port": { + "description": "Port number.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 hash of the server SSL certificate.\nIf unset, empty ssl thumbprint is assumed.", + "type": "string" + }, + "username": { + "description": "Username to access the server.\nThis field is currently required. If unset, an error is returned. In the future, if this field is unset, the system will attempt to identify the user. If a user cannot be identified, then the requested operation will fail.", + "type": "string" + }, + "password": { + "description": "Password for the specified user.\nThis field is currently required. If unset, an empty password is assumed. In the future, if this field is unset, the system will attempt to authenticate the user. If a user cannot be identified, then the requested operation will fail.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname" + ] + }, + "VcenterVchaCredentialsSpec": { + "type": "object", + "properties": { + "active_location": { + "description": "Connection information for the management vCenter Server of the Active Node in a VCHA Cluster.", + "$ref": "#/definitions/VcenterVchaConnectionSpec" + } + }, + "required": [ + "active_location" + ] + }, + "VcenterVchaDiskInfo": { + "type": "object", + "properties": { + "datastore": { + "description": "The identifier of the datastore to put all the virtual disks on.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore:VCenter.", + "type": "string" + }, + "datastore_name": { + "description": "The name of the datastore.", + "type": "string" + } + }, + "required": [ + "datastore", + "datastore_name" + ] + }, + "VcenterVchaDiskSpec": { + "type": "object", + "properties": { + "datastore": { + "description": "The identifier of the datastore to put all the virtual disks on.\nThis field needs to be set. If unset, then see vim.vm.RelocateSpec.datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore:VCenter.", + "type": "string" + } + } + }, + "VcenterVchaIpFamily": { + "type": "string", + "description": "The IpFamily enumerated type defines the Ip address family.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "VcenterVchaIpSpec": { + "type": "object", + "properties": { + "ip_family": { + "description": "Family of the IP address to configure the interface.", + "$ref": "#/definitions/VcenterVchaIpFamily" + }, + "ipv4": { + "description": "If the family of the ip is IPV4, then this will point to IPv4 address specification.\nThis field is optional and it is only relevant when the value of IpSpec.ip-family is IPV4.", + "$ref": "#/definitions/VcenterVchaIpv4Spec" + }, + "ipv6": { + "description": "If the family of the ip is IPV6, then this will point to IPv6 address specification.\nThis field is optional and it is only relevant when the value of IpSpec.ip-family is IPV6.", + "$ref": "#/definitions/VcenterVchaIpv6Spec" + }, + "default_gateway": { + "description": "The IP address of the Gateway for this interface.\nIf unset, gateway will not be used for the network interface.", + "type": "string" + }, + "dns_servers": { + "description": "The list of IP addresses of the DNS servers for this interface. This list is a comma separated list.\nIf unset, DNS servers will not be used for the network interface.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ip_family" + ] + }, + "VcenterVchaIpv4Spec": { + "type": "object", + "properties": { + "address": { + "description": "IPV4 address to be used to configure the interface.", + "type": "string" + }, + "subnet_mask": { + "description": "The subnet mask for the interface.\nIf unset and the Ipv4Spec.prefix field is unset, then an error will be reported.\n If unset and the Ipv4Spec.prefix field is set, then the Ipv4Spec.prefix field will be used to create a subnet mask whose first prefix bits are 1 and the remaining bits 0.\n If both the Ipv4Spec.subnet-mask field and the Ipv4Spec.prefix field are set and they do not represent the same value, then an error will be reported.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.\nIf unset and the Ipv4Spec.subnet-mask field is unset, this an error will be reported.\n If unset and the Ipv4Spec.subnet-mask field is set, then the Ipv4Spec.subnet-mask field will be used.\n If both the Ipv4Spec.subnet-mask field and the Ipv4Spec.prefix field are set and they do not represent the same value, then an error will be reported.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address" + ] + }, + "VcenterVchaIpv6Spec": { + "type": "object", + "properties": { + "address": { + "description": "IPv6 address to be used to configure the interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "VcenterVchaNetworkType": { + "type": "string", + "description": "The NetworkType enumerated type defines the type of a vCenter Server network.", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP" + ] + }, + "VcenterVchaOperationsInfo": { + "type": "object", + "properties": { + "disabled": { + "description": "Identifiers of the operations that are current disabled. These operation strings are one of \"vcenter.vcha.cluster.deploy\", \"vcenter.vcha.cluster.failover\", \"vcenter.vcha.cluster.passive.redeploy\", \"vcenter.vcha.cluster.witness.redeploy\", \"vcenter.vcha.cluster.mode.set\", \"vcenter.vcha.cluster.undeploy\" and \"vcenter.vcha.cluster.get\".\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "active": { + "description": "Identifiers of the operations that are currently running. These operation strings are one of \"vcenter.vcha.cluster.deploy\", \"vcenter.vcha.cluster.failover\", \"vcenter.vcha.cluster.passive.redeploy\", \"vcenter.vcha.cluster.witness.redeploy\", \"vcenter.vcha.cluster.mode.set\", and \"vcenter.vcha.cluster.undeploy\".\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "disabled", + "active" + ] + }, + "VcenterVchaPlacementInfo": { + "type": "object", + "properties": { + "management_vcenter_name": { + "description": "The hostname of the vCenter server that is managing the VCHA node.", + "type": "string" + }, + "management_vcenter_server_guid": { + "description": "The unique identifier of the vCenter server that is managing the VCHA node.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "vm_name": { + "description": "The virtual machine name of the VCHA node.", + "type": "string" + }, + "datacenter": { + "description": "The identifier of the datacenter of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datacenter:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datacenter:VCenter.", + "type": "string" + }, + "datacenter_name": { + "description": "The name of the datacenter of the VCHA node.", + "type": "string" + }, + "host": { + "description": "The identifier of the host of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "host_name": { + "description": "The name of the host of the VCHA node.", + "type": "string" + }, + "cluster": { + "description": "The identifier of the cluster of which PlacementInfo.host is member.\nIf unset, PlacementInfo.host is a standalone host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "cluster_name": { + "description": "The name of the cluster of which PlacementInfo.host is member.\nIf unset, PlacementInfo.host is a standalone host.", + "type": "string" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "ha_network_name": { + "description": "The name of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.", + "type": "string" + }, + "ha_network_type": { + "description": "The type of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.", + "$ref": "#/definitions/VcenterVchaNetworkType" + }, + "management_network": { + "description": "The identifier of the Network object used for the Management network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "management_network_name": { + "description": "The name of the Network object used for the Management network.", + "type": "string" + }, + "management_network_type": { + "description": "The type of the Network object used for the Management network.", + "$ref": "#/definitions/VcenterVchaNetworkType" + }, + "storage": { + "description": "The storage information of the VCHA node.", + "$ref": "#/definitions/VcenterVchaDiskInfo" + }, + "bios_uuid": { + "description": "BIOS UUID for the node.\nIf unset, the information is currently unavailable.", + "type": "string" + } + }, + "required": [ + "management_vcenter_name", + "vm_name", + "datacenter", + "datacenter_name", + "host", + "host_name", + "management_network", + "management_network_name", + "management_network_type", + "storage" + ] + }, + "VcenterVchaPlacementSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the VCHA node to be used for the virtual machine name.", + "type": "string" + }, + "folder": { + "description": "The identifier of the folder to deploy the VCHA node to.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "host": { + "description": "The identifier of the host to deploy the VCHA node to.\nIf unset, see vim.vm.RelocateSpec.host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "The identifier of the resource pool to deploy the VCHA node to.\nIf unset, then the active node's resource pool will be used.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "ha_network_type": { + "description": "The type of the Network object used by the HA network.\n If the PlacementSpec.ha-network field is set, then the PlacementSpec.ha-network-type field must be set.\n If the PlacementSpec.ha-network field is unset, then the PlacementSpec.ha-network-type field is ignored.\nIf unset and the PlacementSpec.ha-network field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n If unset and the PlacementSpec.ha-network field is set, then an error is reported.", + "$ref": "#/definitions/VcenterVchaNetworkType" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\n If the PlacementSpec.ha-network field is set, then the {#link #haNetworkType} field must be set.\n If the PlacementSpec.ha-network field is unset, then the PlacementSpec.ha-network-type field is ignored.\nIf unset and the PlacementSpec.ha-network-type field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "management_network_type": { + "description": "The type of the Network object used by the Management network.\n If the PlacementSpec.management-network field is set, then the {#link #managementNetworkType} field must be set.\n If the PlacementSpec.management-network field is unset, then the PlacementSpec.management-network-type field is ignored.\nIf unset and the PlacementSpec.management-network field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n If unset and the PlacementSpec.management-network field is set, then an error is reported.", + "$ref": "#/definitions/VcenterVchaNetworkType" + }, + "management_network": { + "description": "The identifier of the Network object used for the Management network. If the PlacementSpec.management-network field is set, then the PlacementSpec.management-network-type field must be set.\n If the PlacementSpec.management-network field is unset, then the PlacementSpec.management-network-type field is ignored.\nIf unset and the PlacementSpec.management-network-type field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "storage": { + "description": "The storage specification to deploy the VCHA node to.\nIf unset, see vim.vm.RelocateSpec.datastore.", + "$ref": "#/definitions/VcenterVchaDiskSpec" + } + }, + "required": [ + "name", + "folder" + ] + }, + "VcenterVmComputePoliciesInfo": { + "type": "object", + "properties": { + "status": { + "description": "The compliance status of the policy on a specified object.", + "$ref": "#/definitions/VcenterComputePoliciesObjectCompliance" + } + }, + "required": [ + "status" + ] + }, + "VcenterVmConsoleTicketsCreate": { + "$ref": "#/definitions/VcenterVmConsoleTicketsCreateSpec", + "description": "Specification for the console ticket to be created." + }, + "VcenterVmConsoleTicketsCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "The type of virtual machine console ticket", + "$ref": "#/definitions/VcenterVmConsoleTicketsType" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmConsoleTicketsSummary": { + "type": "object", + "properties": { + "ticket": { + "description": "Console ticket URI", + "type": "string", + "format": "uri" + } + }, + "required": [ + "ticket" + ] + }, + "VcenterVmConsoleTicketsType": { + "type": "string", + "description": "The Tickets.Type enumerated type defines the types of console tickets.", + "enum": [ + "VMRC", + "WEBMKS" + ] + }, + "VcenterVmDataSetsAccess": { + "type": "string", + "description": "Possible Entry access modes.", + "enum": [ + "NONE", + "READ_ONLY", + "READ_WRITE" + ] + }, + "VcenterVmDataSetsCreate": { + "$ref": "#/definitions/VcenterVmDataSetsCreateSpec", + "description": "Specification of the data set to be created." + }, + "VcenterVmDataSetsCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the data set. It is recommended that this value take the form \"com.company.project\" to avoid conflict with other uses.", + "type": "string" + }, + "description": { + "description": "A description of how the data set is used by its creator. This field can contain up to 1024 bytes.", + "type": "string" + }, + "host": { + "description": "Host access control. \n Controls access to the data set by the Entries operations.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "guest": { + "description": "Guest access control. \n Controls access to the data set from the in-guest APIs.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "omit_from_snapshot_and_clone": { + "description": "If set, the data set is considered a property of the virtual machine, and is not included in a snapshot operation or when the virtual machine is cloned. When a virtual machine is reverted to a snapshot, any data set with {@link #omitFromSnapshotAndClone) set will be destroyed. Any data set with DataSets.CreateSpec.omit-from-snapshot-and-clone unset will be restored to the state when the snapshot was created.\nIf unset, the data set is not copied when a virtual machine is cloned or a snapshot is taken.", + "type": "boolean" + } + }, + "required": [ + "name", + "description", + "host", + "guest" + ] + }, + "VcenterVmDataSetsEntriesSet": { + "type": "string", + "description": "The value of the entry to set. A value can be at most 1MB." + }, + "VcenterVmDataSetsInfo": { + "type": "object", + "properties": { + "name": { + "description": "The name of the data set.", + "type": "string" + }, + "description": { + "description": "A description of how the data set is used by its creator.", + "type": "string" + }, + "host": { + "description": "Host access control. \n Controls access to the data set by the Entries operations.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "guest": { + "description": "Guest access control. \n Controls access to the data set from in-guest APIs.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "used": { + "description": "The total size in bytes of the Entry data in use by this data set.", + "type": "integer", + "format": "int64" + }, + "omit_from_snapshot_and_clone": { + "description": "If set, the data set is considered a property of the virtual machine, and is not included in a snapshot operation or when the virtual machine is cloned. When a virtual machine is reverted to a snapshot, any data set with {@link #omitFromSnapshotAndClone) set will be destroyed. Any data set with DataSets.Info.omit-from-snapshot-and-clone unset will be restored to the state when the snapshot was created.", + "type": "boolean" + } + }, + "required": [ + "name", + "description", + "host", + "guest", + "used", + "omit_from_snapshot_and_clone" + ] + }, + "VcenterVmDataSetsSummary": { + "type": "object", + "properties": { + "data_set": { + "description": "The identifier of the data set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.DataSet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.DataSet.", + "type": "string" + }, + "name": { + "description": "The name of the data set.", + "type": "string" + }, + "description": { + "description": "The description of the data set.", + "type": "string" + } + }, + "required": [ + "data_set", + "name", + "description" + ] + }, + "VcenterVmDataSetsUpdate": { + "$ref": "#/definitions/VcenterVmDataSetsUpdateSpec", + "description": "new attributes of the data set. Data sets should only be modified by the application that creates them. Otherwise the application may stop working." + }, + "VcenterVmDataSetsUpdateSpec": { + "type": "object", + "properties": { + "description": { + "description": "A description of how the data set is used by its creator. This field can contain up to 1024 bytes.\nIf set, the value is changed.", + "type": "string" + }, + "host": { + "description": "The access control from the host.\nIf set, the value is changed.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "guest": { + "description": "The access control from the guest.\nIf set, the value is changed.", + "$ref": "#/definitions/VcenterVmDataSetsAccess" + }, + "omit_from_snapshot_and_clone": { + "description": "If set, the data set is considered a property of the virtual machine, and is not included in a snapshot operation or when the virtual machine is cloned. When a virtual machine is reverted to a snapshot, any data set with {@link #omitFromSnapshotAndClone) set will be destroyed. Any data set with DataSets.UpdateSpec.omit-from-snapshot-and-clone unset will be restored to the state when the snapshot was created.\nIf set, the value is changed.", + "type": "boolean" + } + } + }, + "VcenterVmGuestCredentials": { + "type": "object", + "properties": { + "interactive_session": { + "description": "If set, the operation will interact with the logged-in desktop session in the guest. This requires that the logged-on user matches the user specified by the Credentials. This is currently only supported for USERNAME_PASSWORD.", + "type": "boolean" + }, + "type": { + "description": "The guest credentials type", + "$ref": "#/definitions/VcenterVmGuestCredentialsType" + }, + "user_name": { + "description": "For SAML_BEARER_TOKEN, this is the guest user to be associated with the credentials. For USERNAME_PASSWORD this is the guest username.\nIf no user is specified for SAML_BEARER_TOKEN, a guest dependent mapping will decide what guest user account is applied.", + "type": "string" + }, + "password": { + "description": "password\nThis field is optional and it is only relevant when the value of Credentials.type is USERNAME_PASSWORD.", + "type": "string", + "format": "password" + }, + "saml_token": { + "description": "SAML Bearer Token\nThis field is optional and it is only relevant when the value of Credentials.type is SAML_BEARER_TOKEN.", + "type": "string", + "format": "password" + } + }, + "required": [ + "interactive_session", + "type" + ] + }, + "VcenterVmGuestCredentialsType": { + "type": "string", + "description": "Types of guest credentials", + "enum": [ + "USERNAME_PASSWORD", + "SAML_BEARER_TOKEN" + ] + }, + "VcenterVmGuestCustomizationInfo": { + "type": "object", + "properties": { + "status": { + "description": "The status of the customization operation.", + "$ref": "#/definitions/VcenterVmGuestCustomizationInfoStatus" + }, + "error": { + "description": "Description of the error if the Customization.Info.status of customization operation is FAILED.\nThis field will be unset if the status is not FAILED or there is no information available for the error.", + "type": "string" + }, + "start_time": { + "description": "Time when the customization process has started inside the guest operating system.\nThis field will be unset if the status is PENDING.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the customization process has completed inside the guest operating system.\nThis field will be unset if the status is not SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "status" + ] + }, + "VcenterVmGuestCustomizationInfoStatus": { + "type": "string", + "description": "The Customization.Info.Status enumerated type defines the status values that can be reported for the customization operation.", + "enum": [ + "IDLE", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED" + ] + }, + "VcenterVmGuestCustomizationSet": { + "$ref": "#/definitions/VcenterVmGuestCustomizationSetSpec", + "description": "The customization settings to be applied to the guest operating system." + }, + "VcenterVmGuestCustomizationSetSpec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the customization specification that has be retrieved from the virtual center inventory and applied for the virtual machine. Either one of Customization.SetSpec.name or Customization.SetSpec.spec or none of them should be specified.\nIf unset and Customization.SetSpec.spec is also unset when executing Customization.set operation, then any pending customization for the virtual machine will be cleared.", + "type": "string" + }, + "spec": { + "description": "The customization specification that has to be applied for the virtual machine. Either one of Customization.SetSpec.name or Customization.SetSpec.spec or none of them should be specified.\nIf unset and Customization.SetSpec.name is also unset when executing Customization.set operation, then any pending customization for the virtual machine will be cleared.", + "$ref": "#/definitions/VcenterGuestCustomizationSpec" + } + } + }, + "VcenterVmGuestDhcpConfigInfo": { + "type": "object", + "properties": { + "ipv4_enabled": { + "description": "True if IPv4 DHCP is enabled, false otherwise.", + "type": "boolean" + }, + "ipv6_enabled": { + "description": "True if IPv6 DHCP is enabled, false otherwise.", + "type": "boolean" + } + }, + "required": [ + "ipv4_enabled", + "ipv6_enabled" + ] + }, + "VcenterVmGuestDnsAssignedValues": { + "type": "object", + "properties": { + "host_name": { + "description": "The host name portion of DNS name. For example, \"esx01\" part of esx01.example.com.", + "type": "string" + }, + "domain_name": { + "description": "The domain name portion of the DNS name. \"example.com\" part of esx01.example.com.", + "type": "string" + } + }, + "required": [ + "host_name", + "domain_name" + ] + }, + "VcenterVmGuestDnsConfigInfo": { + "type": "object", + "properties": { + "ip_addresses": { + "description": "The IP addresses of the DNS servers in order of use. IPv4 addresses are specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "array", + "items": { + "type": "string" + } + }, + "search_domains": { + "description": "The domain in which to search for hosts, placed in order of preference. These are the domain name portion of the DNS names.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ip_addresses", + "search_domains" + ] + }, + "VcenterVmGuestEnvironmentGet": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestEnvironmentList": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials." + }, + "names": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "The names of the variables to be read. If the set is empty, then all the environment variables are returned." + } + }, + "required": [ + "credentials", + "names" + ] + }, + "VcenterVmGuestFilesystemDirectoriesCreate": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the directory to be created." + }, + "create_parents": { + "type": "boolean", + "description": "Whether any parent directories should be created. If any failure occurs, some parent directories could be left behind.\nIf unset parent directories are not created." + } + }, + "required": [ + "credentials", + "path" + ] + }, + "VcenterVmGuestFilesystemDirectoriesCreateTemporary": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "prefix": { + "type": "string", + "description": "The prefix to be given to the new temporary directory." + }, + "suffix": { + "type": "string", + "description": "The suffix to be given to the new temporary directory." + }, + "parent_path": { + "type": "string", + "description": "The complete path to the directory in which to create the new directory.\nDirectory If unset a guest-specific default will be used." + } + }, + "required": [ + "credentials", + "prefix", + "suffix" + ] + }, + "VcenterVmGuestFilesystemDirectoriesDelete": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the directory to be deleted." + }, + "recursive": { + "type": "boolean", + "description": "If true, all files and subdirectories are also deleted. If false, the directory must be empty for the operation to succeed.\nIf unset, any directory content is not deleted." + } + }, + "required": [ + "credentials", + "path" + ] + }, + "VcenterVmGuestFilesystemDirectoriesMove": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the directory to be moved." + }, + "new_path": { + "type": "string", + "description": "The complete path to where the directory is moved or its new name. It cannot be a path to an existing directory or an existing file." + } + }, + "required": [ + "credentials", + "path", + "new_path" + ] + }, + "VcenterVmGuestFilesystemFilesCreateTemporary": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "prefix": { + "type": "string", + "description": "The prefix to be given to the new temporary file." + }, + "suffix": { + "type": "string", + "description": "The suffix to be given to the new temporary file." + }, + "parent_path": { + "type": "string", + "description": "The complete path to the directory in which to create the file.\nDirectory to use if specified, otherwise a guest-specific default will be used." + } + }, + "required": [ + "credentials", + "prefix", + "suffix" + ] + }, + "VcenterVmGuestFilesystemFilesDelete": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestFilesystemFilesFileAttributesInfo": { + "type": "object", + "properties": { + "last_modified": { + "description": "The date and time the file was last modified.", + "type": "string", + "format": "date-time" + }, + "last_accessed": { + "description": "The date and time the file was last accessed.", + "type": "string", + "format": "date-time" + }, + "symlink_target": { + "description": "The target for the file if it's a symbolic link. This is currently only set for Posix guest operating systems, but may be supported in the future on Windows guest operating systems that support symbolic links.\nSet if the file is a symbolic link.", + "type": "string" + }, + "filesystem_family": { + "description": "The type of guest filesystem.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesFilesystemFamily" + }, + "win_attributes": { + "description": "Windows-specific file information.\nThis field is optional and it is only relevant when the value of Files.FileAttributesInfo.filesystem-family is WINDOWS.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesWindowsFileAttributesInfo" + }, + "posix_attributes": { + "description": "Posix-specific file information.\nThis field is optional and it is only relevant when the value of Files.FileAttributesInfo.filesystem-family is POSIX.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesPosixFileAttributesInfo" + } + }, + "required": [ + "last_modified", + "last_accessed", + "filesystem_family" + ] + }, + "VcenterVmGuestFilesystemFilesFileAttributesUpdateSpec": { + "type": "object", + "properties": { + "last_modified": { + "description": "The date and time the file was last modified.\nIf unset the value will not be changed.", + "type": "string", + "format": "date-time" + }, + "last_accessed": { + "description": "The date and time the file was last accessed.\nIf unset the value will not be changed.", + "type": "string", + "format": "date-time" + }, + "windows": { + "description": "Windows-specific file update information.\nSet if the guest operating system is Windows.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesWindowsFileAttributesUpdateSpec" + }, + "posix": { + "description": "Posix-specific file update information.\nSet if the guest operating system is Posix.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesPosixFileAttributesUpdateSpec" + } + } + }, + "VcenterVmGuestFilesystemFilesFilesystemFamily": { + "type": "string", + "description": "The Files.FilesystemFamily enumerated type defines the types of guest operating fllesystem.", + "enum": [ + "WINDOWS", + "POSIX" + ] + }, + "VcenterVmGuestFilesystemFilesFilterSpec": { + "type": "object", + "properties": { + "match_pattern": { + "description": "The perl-compatible regular expression used to filter the returned files.\nIf unset the pattern '.*' (match everything) is used.", + "type": "string" + } + } + }, + "VcenterVmGuestFilesystemFilesGet": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestFilesystemFilesInfo": { + "type": "object", + "properties": { + "type": { + "description": "The type of file.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesType" + }, + "size": { + "description": "The file size in bytes.", + "type": "integer", + "format": "int64" + }, + "attributes": { + "description": "Attributes of a file.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesFileAttributesInfo" + } + }, + "required": [ + "type", + "size", + "attributes" + ] + }, + "VcenterVmGuestFilesystemFilesIterationSpec": { + "type": "object", + "properties": { + "size": { + "description": "Specifies the maximum number of results to return.\nIf unset information about at most 50 files will be returned.", + "type": "integer", + "format": "int64" + }, + "index": { + "description": "Which result to start the list with. If this value exceeds the number of results, an empty list will be returned.\nIf unset, the start of the list of files will be returned.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterVmGuestFilesystemFilesLastIterationStatus": { + "type": "string", + "description": "The last status for the iterator. A field of this type is returned as part of the result and indicates to the caller of the API whether it can continue to make requests for more data. The last status only reports on the state of the iteration at the time data was last returned. As a result, it not does guarantee if the next call will succeed in getting more data or not. Failures to retrieve results will be returned as Error responses. These last statuses are only returned when the iterator is operating as expected.", + "enum": [ + "READY", + "END_OF_DATA" + ] + }, + "VcenterVmGuestFilesystemFilesList": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the directory or file to query." + }, + "iteration": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesIterationSpec", + "description": "The specification of a page of results to be retrieved.\nIf unset, the first page will be retrieved." + }, + "filter": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesFilterSpec", + "description": "Specification to match files for which information should be returned.\nIf unset, the behavior is the equivalent to a Files.FilterSpec with all fields unset which means all filenames match the filter." + } + }, + "required": [ + "credentials", + "path" + ] + }, + "VcenterVmGuestFilesystemFilesListResult": { + "type": "object", + "properties": { + "files": { + "description": "A list of Files.Summary structures containing information for all the matching files.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesSummary" + } + }, + "total": { + "description": "The total number of results from the Files.list. This is a hint to the user of the iterator regarding how many items are available to be retrieved. The total could change if the inventory of items are being changed.", + "type": "integer", + "format": "int64" + }, + "start_index": { + "description": "Positional index into the logical item list of the first item returned in the list of results. The first item in the logical item list has an index of 0. This is a hint to the user of the iterator regarding the logical position in the iteration. For example, this can be used to display to the user which page of the iteration is being shown. The total could change if the inventory of items are being changed.\nIf unset no items were returned.", + "type": "integer", + "format": "int64" + }, + "end_index": { + "description": "Positional index into the logical item list of the last item returned in the list of results. The first item in the logical item list has an index of 0. This is a hint to the user of the iterator regarding the logical position in the iteration. For example, this can be used to display to the user which page of the iteration is being shown. The total could change if the inventory of items are being changed.\nIf unset no items were returned.", + "type": "integer", + "format": "int64" + }, + "status": { + "description": "The last status for the iterator that indicates whether any more results can be expected if the caller continues to make requests for more data using the iterator.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesLastIterationStatus" + } + }, + "required": [ + "files", + "total", + "status" + ] + }, + "VcenterVmGuestFilesystemFilesMove": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the original file or symbolic link to be moved." + }, + "new_path": { + "type": "string", + "description": "The complete path to the new file. It cannot be a path to an existing directory." + }, + "overwrite": { + "type": "boolean", + "description": "If true, the destination file is overwritten.\nIf unset, the destination file is not overwritten." + } + }, + "required": [ + "credentials", + "path", + "new_path" + ] + }, + "VcenterVmGuestFilesystemFilesPosixFileAttributesInfo": { + "type": "object", + "properties": { + "owner": { + "description": "The owner ID.", + "type": "integer", + "format": "int64" + }, + "group": { + "description": "The group ID.", + "type": "integer", + "format": "int64" + }, + "permissions": { + "description": "The file permissions in chmod(2) format. This field is presented as octal.", + "type": "string" + } + }, + "required": [ + "owner", + "group", + "permissions" + ] + }, + "VcenterVmGuestFilesystemFilesPosixFileAttributesUpdateSpec": { + "type": "object", + "properties": { + "owner_id": { + "description": "The owner ID.\nIf unset the value will not be changed.", + "type": "integer", + "format": "int64" + }, + "group_id": { + "description": "The group ID.\nIf unset the value will not be changed.", + "type": "integer", + "format": "int64" + }, + "permissions": { + "description": "The file permissions in chmod(2) format. This field is interpreted as octal.\nIf unset the value will not be changed.", + "type": "string" + } + } + }, + "VcenterVmGuestFilesystemFilesSummary": { + "type": "object", + "properties": { + "filename": { + "description": "The name of the file or directory with any leading directories removed.", + "type": "string" + }, + "type": { + "description": "The type of file.", + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesType" + }, + "size": { + "description": "The file size in bytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "filename", + "type", + "size" + ] + }, + "VcenterVmGuestFilesystemFilesType": { + "type": "string", + "description": "The Files.Type enumerated type defines the valid types of files.", + "enum": [ + "FILE", + "DIRECTORY", + "SYMLINK" + ] + }, + "VcenterVmGuestFilesystemFilesUpdate": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data." + }, + "path": { + "type": "string", + "description": "The complete path to the file or directory to be changed in the guest. If the file points to an symbolic link, then the attributes of the target file are changed." + }, + "file_attributes": { + "$ref": "#/definitions/VcenterVmGuestFilesystemFilesFileAttributesUpdateSpec", + "description": "Specifies the different file attributes of the guest file to be changed. See Files.FileAttributesUpdateSpec." + } + }, + "required": [ + "credentials", + "path", + "file_attributes" + ] + }, + "VcenterVmGuestFilesystemFilesWindowsFileAttributesInfo": { + "type": "object", + "properties": { + "hidden": { + "description": "The file is hidden.", + "type": "boolean" + }, + "read_only": { + "description": "The file is read-only.", + "type": "boolean" + }, + "created": { + "description": "The date and time the file was created.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hidden", + "read_only", + "created" + ] + }, + "VcenterVmGuestFilesystemFilesWindowsFileAttributesUpdateSpec": { + "type": "object", + "properties": { + "hidden": { + "description": "The file is hidden.\nIf {term unset} the value will not be changed.", + "type": "boolean" + }, + "read_only": { + "description": "The file is read-only.\nIf {term unset} the value will not be changed.", + "type": "boolean" + } + } + }, + "VcenterVmGuestFilesystemTransfersCreate": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication credentials." + }, + "spec": { + "$ref": "#/definitions/VcenterVmGuestFilesystemTransfersCreateSpec", + "description": "A specification of the type of file transfer and any applicable attibutes." + } + }, + "required": [ + "credentials", + "spec" + ] + }, + "VcenterVmGuestFilesystemTransfersCreateSpec": { + "type": "object", + "properties": { + "path": { + "description": "The complete destination path in the guest to transfer the file to or from the client. It cannot be a path to a directory or a symbolic link.", + "type": "string" + }, + "attributes": { + "description": "Details about the file to be transferred into the guest.\nMust be set if the file is being transferred to the guest. Must not be set if the file is being transferred from the guest.", + "$ref": "#/definitions/VcenterVmGuestFilesystemTransfersFileCreationAttributes" + } + }, + "required": [ + "path" + ] + }, + "VcenterVmGuestFilesystemTransfersFileCreationAttributes": { + "type": "object", + "properties": { + "size": { + "description": "The size in bytes of the file to be transferred into the guest.", + "type": "integer", + "format": "int64" + }, + "overwrite": { + "description": "Whether an existing file should be overwritten.\nIf unset any existing file will not be overwritten.", + "type": "boolean" + }, + "last_modified": { + "description": "The date and time the file was last modified.\nIf unset the value will be the time when the file is transferred into the guest.", + "type": "string", + "format": "date-time" + }, + "last_accessed": { + "description": "The date and time the file was last accessed.\nIf unset the value will be the time when the file is transferred into the guest.", + "type": "string", + "format": "date-time" + }, + "windows": { + "description": "Windows-specific file creation information.\nIf unset, the behavior is equivalent to a Transfers.WindowsFileAttributesCreateSpec with all fields unset which means the defaults are used. May only be set if the guest operating system is Windows.", + "$ref": "#/definitions/VcenterVmGuestFilesystemTransfersWindowsFileAttributesCreateSpec" + }, + "posix": { + "description": "Posix-specific file creation information.\nIf unset, the behavior is equivalent to a Transfers.PosixFileAttributesCreateSpec with all fields unset which means the defaults are used. May only be set if the guest operating system is Posix.", + "$ref": "#/definitions/VcenterVmGuestFilesystemTransfersPosixFileAttributesCreateSpec" + } + }, + "required": [ + "size" + ] + }, + "VcenterVmGuestFilesystemTransfersPosixFileAttributesCreateSpec": { + "type": "object", + "properties": { + "owner_id": { + "description": "The owner ID. If this property is not specified when passing a Transfers.PosixFileAttributesCreateSpec object to Transfers.create, the default value will be the owner Id of the user who invoked the file transfer operation.\nDefaults to uid of user invoking the operation.", + "type": "integer", + "format": "int64" + }, + "group_id": { + "description": "The group ID. If this property is not specified when passing a Transfers.PosixFileAttributesCreateSpec object to Transfers.create, the default value will be the group Id of the user who invoked the file transfer operation.\nDefaults to gid of user invoking the operation.", + "type": "integer", + "format": "int64" + }, + "permissions": { + "description": "The file permissions in chmod(2) format. If this property is not specified when passing a Transfers.PosixFileAttributesCreateSpec object to Transfers.create, the file will be created with 0644 permissions. This field is interpreted as octal.\nDefaults to 0644.", + "type": "string" + } + } + }, + "VcenterVmGuestFilesystemTransfersWindowsFileAttributesCreateSpec": { + "type": "object", + "properties": { + "hidden": { + "description": "The file is hidden.\nIf unset the file will not be hidden.", + "type": "boolean" + }, + "read_only": { + "description": "The file is read-only.\nIf unset the file will be writeable.", + "type": "boolean" + } + } + }, + "VcenterVmGuestIdentityInfo": { + "type": "object", + "properties": { + "name": { + "description": "Guest operating system identifier (short name).", + "$ref": "#/definitions/VcenterVmGuestOS" + }, + "family": { + "description": "Guest operating system family.", + "$ref": "#/definitions/VcenterVmGuestOSFamily" + }, + "full_name": { + "description": "Guest operating system full name.", + "$ref": "#/definitions/VapiStdLocalizableMessage" + }, + "host_name": { + "description": "Hostname of the guest operating system.", + "type": "string" + }, + "ip_address": { + "description": "IP address assigned by the guest operating system.\nIf unset the guest does not have an IP address.", + "type": "string" + } + }, + "required": [ + "name", + "family", + "full_name", + "host_name" + ] + }, + "VcenterVmGuestLocalFilesystemInfo": { + "type": "object", + "properties": { + "capacity": { + "description": "Total capacity of the file system, in bytes.", + "type": "integer", + "format": "int64" + }, + "free_space": { + "description": "Free space on the file system, in bytes.", + "type": "integer", + "format": "int64" + }, + "filesystem": { + "description": "Filesystem type, if known. For example, ext3 or NTFS.\nset if VMware Tools reports a value.", + "type": "string" + }, + "mappings": { + "description": "VirtualDisks backing the guest partition, if known.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestLocalFilesystemVirtualDiskMapping" + } + } + }, + "required": [ + "capacity", + "free_space" + ] + }, + "VcenterVmGuestLocalFilesystemVirtualDiskMapping": { + "type": "object", + "properties": { + "disk": { + "description": "The virtual disk.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "string" + } + }, + "required": [ + "disk" + ] + }, + "VcenterVmGuestNetworkingInfo": { + "type": "object", + "properties": { + "dns_values": { + "description": "Client DNS values. Data assigned by DNS.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/VcenterVmGuestDnsAssignedValues" + }, + "dns": { + "description": "Client DNS configuration. How DNS queries are resolved.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/VcenterVmGuestDnsConfigInfo" + } + } + }, + "VcenterVmGuestNetworkingInterfacesInfo": { + "type": "object", + "properties": { + "dns_values": { + "description": "Client DNS values. Data assigned by DNS.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/VcenterVmGuestDnsAssignedValues" + }, + "mac_address": { + "description": "MAC address of the adapter.\nIf unset then not supported by the Guest OS.", + "type": "string" + }, + "dns": { + "description": "DNS configuration of the adapter. See Networking.Info.dns for system wide settings.\nIf unset then not assigned by the Guest OS.", + "$ref": "#/definitions/VcenterVmGuestDnsConfigInfo" + }, + "ip": { + "description": "IP configuration settings of the adapter\nIf unset then not supported by the Guest OS.", + "$ref": "#/definitions/VcenterVmGuestNetworkingInterfacesIpConfigInfo" + }, + "wins_servers": { + "description": "The IP addresses of any WINS name servers for the adapter.\nIf unset then not supported by the Guest OS.", + "type": "array", + "items": { + "type": "string" + } + }, + "nic": { + "description": "Link to the corresponding virtual device.\nIf unset then the interface is not backed by a virtual device.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + } + } + }, + "VcenterVmGuestNetworkingInterfacesIpAddressInfo": { + "type": "object", + "properties": { + "ip_address": { + "description": "IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit addresses specified using eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "string" + }, + "prefix_length": { + "description": "Denotes the length of a generic Internet network address prefix. Prefix length: the valid range of values is 0-32 for IPv4, and 0-128 for IPv6. A value of n corresponds to an IP address mask that has n contiguous 1-bits from the most significant bit (MSB), with all other bits set to 0. A value of zero is valid only if the calling context defines it.", + "type": "integer", + "format": "int64" + }, + "origin": { + "description": "How this address was configured.\nIf unset the data was not available.", + "$ref": "#/definitions/VcenterVmGuestNetworkingInterfacesIpAddressOrigin" + }, + "state": { + "description": "The state of this ipAddress.", + "$ref": "#/definitions/VcenterVmGuestNetworkingInterfacesIpAddressStatus" + } + }, + "required": [ + "ip_address", + "prefix_length", + "state" + ] + }, + "VcenterVmGuestNetworkingInterfacesIpAddressOrigin": { + "type": "string", + "description": "The Interfaces.IpAddressOrigin enumerated type specifies how an IP address was obtained for an interface. See RFC 4293 IpAddressOriginTC.", + "enum": [ + "OTHER", + "MANUAL", + "DHCP", + "LINKLAYER", + "RANDOM" + ] + }, + "VcenterVmGuestNetworkingInterfacesIpAddressStatus": { + "type": "string", + "description": "The Interfaces.IpAddressStatus enumerated type defines the present status of an address on an interface. See RFC 4293 IpAddressStatusTC.", + "enum": [ + "PREFERRED", + "DEPRECATED", + "INVALID", + "INACCESSIBLE", + "UNKNOWN", + "TENTATIVE", + "DUPLICATE" + ] + }, + "VcenterVmGuestNetworkingInterfacesIpConfigInfo": { + "type": "object", + "properties": { + "ip_addresses": { + "description": "IP addresses configured on the interface.", + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmGuestNetworkingInterfacesIpAddressInfo" + } + }, + "dhcp": { + "description": "Client side DHCP for an interface.\nIf unset the IP was not configured by DHCP.", + "$ref": "#/definitions/VcenterVmGuestDhcpConfigInfo" + } + }, + "required": [ + "ip_addresses" + ] + }, + "VcenterVmGuestNetworkingRoutesInfo": { + "type": "object", + "properties": { + "network": { + "description": "IP Address of the destination IP network. IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit specified using as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "string" + }, + "prefix_length": { + "description": "The prefix length. For IPv4 the value range is 0-32. For IPv6 prefixLength is a decimal value range 0-128. The property represents the number of contiguous, higher-order bits of the address that make up the network portion of the IP address.", + "type": "integer", + "format": "int64" + }, + "gateway_address": { + "description": "Where to send the packets for this route. Unicast IP Address of the next hop router. IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit specified using as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.\nIf unset no gateway is set for the route.", + "type": "string" + }, + "interface_index": { + "description": "The network interface associated with this route. This is an index into the result of Interfaces.list The index refers to the relative position of an element in a list. For example, an index of 0 refers to the first element in the list while an index of 1 refers to the second element.\nIf unset the route is not associated with a network interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "network", + "prefix_length" + ] + }, + "VcenterVmGuestOS": { + "type": "string", + "description": "The GuestOS enumerated type defines the valid guest operating system types used for configuring a virtual machine.", + "enum": [ + "DOS", + "WIN_31", + "WIN_95", + "WIN_98", + "WIN_ME", + "WIN_NT", + "WIN_2000_PRO", + "WIN_2000_SERV", + "WIN_2000_ADV_SERV", + "WIN_XP_HOME", + "WIN_XP_PRO", + "WIN_XP_PRO_64", + "WIN_NET_WEB", + "WIN_NET_STANDARD", + "WIN_NET_ENTERPRISE", + "WIN_NET_DATACENTER", + "WIN_NET_BUSINESS", + "WIN_NET_STANDARD_64", + "WIN_NET_ENTERPRISE_64", + "WIN_LONGHORN", + "WIN_LONGHORN_64", + "WIN_NET_DATACENTER_64", + "WIN_VISTA", + "WIN_VISTA_64", + "WINDOWS_7", + "WINDOWS_7_64", + "WINDOWS_7_SERVER_64", + "WINDOWS_8", + "WINDOWS_8_64", + "WINDOWS_8_SERVER_64", + "WINDOWS_9", + "WINDOWS_9_64", + "WINDOWS_9_SERVER_64", + "WINDOWS_11_64", + "WINDOWS_12_64", + "WINDOWS_HYPERV", + "WINDOWS_SERVER_2019", + "WINDOWS_SERVER_2021", + "WINDOWS_SERVER_2025", + "FREEBSD", + "FREEBSD_64", + "FREEBSD_11", + "FREEBSD_12", + "FREEBSD_13", + "FREEBSD_14", + "FREEBSD_11_64", + "FREEBSD_12_64", + "FREEBSD_13_64", + "FREEBSD_14_64", + "REDHAT", + "RHEL_2", + "RHEL_3", + "RHEL_3_64", + "RHEL_4", + "RHEL_4_64", + "RHEL_5", + "RHEL_5_64", + "RHEL_6", + "RHEL_6_64", + "RHEL_7", + "RHEL_7_64", + "RHEL_8_64", + "RHEL_9_64", + "CENTOS", + "CENTOS_64", + "CENTOS_6", + "CENTOS_6_64", + "CENTOS_7", + "CENTOS_7_64", + "CENTOS_8_64", + "CENTOS_9_64", + "ORACLE_LINUX", + "ORACLE_LINUX_64", + "ORACLE_LINUX_6", + "ORACLE_LINUX_6_64", + "ORACLE_LINUX_7", + "ORACLE_LINUX_7_64", + "ORACLE_LINUX_8_64", + "ORACLE_LINUX_9_64", + "SUSE", + "SUSE_64", + "SLES", + "SLES_64", + "SLES_10", + "SLES_10_64", + "SLES_11", + "SLES_11_64", + "SLES_12", + "SLES_12_64", + "SLES_15_64", + "SLES_16_64", + "NLD_9", + "OES", + "SJDS", + "MANDRAKE", + "MANDRIVA", + "MANDRIVA_64", + "TURBO_LINUX", + "TURBO_LINUX_64", + "UBUNTU", + "UBUNTU_64", + "DEBIAN_4", + "DEBIAN_4_64", + "DEBIAN_5", + "DEBIAN_5_64", + "DEBIAN_6", + "DEBIAN_6_64", + "DEBIAN_7", + "DEBIAN_7_64", + "DEBIAN_8", + "DEBIAN_8_64", + "DEBIAN_9", + "DEBIAN_9_64", + "DEBIAN_10", + "DEBIAN_10_64", + "DEBIAN_11", + "DEBIAN_11_64", + "DEBIAN_12", + "DEBIAN_12_64", + "ASIANUX_3", + "ASIANUX_3_64", + "ASIANUX_4", + "ASIANUX_4_64", + "ASIANUX_5_64", + "ASIANUX_7_64", + "ASIANUX_8_64", + "ASIANUX_9_64", + "OPENSUSE", + "OPENSUSE_64", + "FEDORA", + "FEDORA_64", + "COREOS_64", + "VMWARE_PHOTON_64", + "OTHER_24X_LINUX", + "OTHER_24X_LINUX_64", + "OTHER_26X_LINUX", + "OTHER_26X_LINUX_64", + "OTHER_3X_LINUX", + "OTHER_3X_LINUX_64", + "OTHER_4X_LINUX", + "OTHER_4X_LINUX_64", + "OTHER_5X_LINUX", + "OTHER_5X_LINUX_64", + "OTHER_6X_LINUX", + "OTHER_6X_LINUX_64", + "OTHER_LINUX", + "GENERIC_LINUX", + "OTHER_LINUX_64", + "SOLARIS_6", + "SOLARIS_7", + "SOLARIS_8", + "SOLARIS_9", + "SOLARIS_10", + "SOLARIS_10_64", + "SOLARIS_11_64", + "OS2", + "ECOMSTATION", + "ECOMSTATION_2", + "NETWARE_4", + "NETWARE_5", + "NETWARE_6", + "OPENSERVER_5", + "OPENSERVER_6", + "UNIXWARE_7", + "DARWIN", + "DARWIN_64", + "DARWIN_10", + "DARWIN_10_64", + "DARWIN_11", + "DARWIN_11_64", + "DARWIN_12_64", + "DARWIN_13_64", + "DARWIN_14_64", + "DARWIN_15_64", + "DARWIN_16_64", + "DARWIN_17_64", + "DARWIN_18_64", + "DARWIN_19_64", + "DARWIN_20_64", + "DARWIN_21_64", + "DARWIN_22_64", + "DARWIN_23_64", + "VMKERNEL", + "VMKERNEL_5", + "VMKERNEL_6", + "VMKERNEL_65", + "VMKERNEL_7", + "VMKERNEL_8", + "AMAZONLINUX2_64", + "AMAZONLINUX3_64", + "CRXPOD_1", + "ROCKYLINUX_64", + "ALMALINUX_64", + "OTHER", + "OTHER_64" + ] + }, + "VcenterVmGuestOSFamily": { + "type": "string", + "description": "The GuestOSFamily enumerated type defines the valid guest operating system family types reported by a virtual machine.", + "enum": [ + "WINDOWS", + "LINUX", + "NETWARE", + "SOLARIS", + "DARWIN", + "OTHER" + ] + }, + "VcenterVmGuestOperationsInfo": { + "type": "object", + "properties": { + "guest_operations_ready": { + "description": "Guest operations availability. Whether or not the virtual machine is ready to process guest operations.", + "type": "boolean" + }, + "interactive_guest_operations_ready": { + "description": "Interactive guest operations availability. Whether or not the virtual machine is ready to process interactive guest operations.", + "type": "boolean" + } + }, + "required": [ + "guest_operations_ready", + "interactive_guest_operations_ready" + ] + }, + "VcenterVmGuestPowerInfo": { + "type": "object", + "properties": { + "state": { + "description": "The power state of the guest operating system.", + "$ref": "#/definitions/VcenterVmGuestPowerState" + }, + "operations_ready": { + "description": "Flag indicating if the virtual machine is ready to process soft power operations.", + "type": "boolean" + } + }, + "required": [ + "state", + "operations_ready" + ] + }, + "VcenterVmGuestPowerState": { + "type": "string", + "description": "Possible guest power states.", + "enum": [ + "RUNNING", + "SHUTTING_DOWN", + "RESETTING", + "STANDBY", + "NOT_RUNNING", + "UNAVAILABLE" + ] + }, + "VcenterVmGuestProcessesCreate": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials. The program will be run as the user associated with this data." + }, + "spec": { + "$ref": "#/definitions/VcenterVmGuestProcessesCreateSpec", + "description": "The arguments describing the program to be started." + } + }, + "required": [ + "credentials", + "spec" + ] + }, + "VcenterVmGuestProcessesCreateSpec": { + "type": "object", + "properties": { + "path": { + "description": "The absolute path to the program to start. \n For Linux guest operating systems, /bin/bash is used to start the program. \n\n For Solaris guest operating systems, if /bin/bash exists, its used to start the program, otherwise /bin/sh is used. If /bin/sh is used, then the process ID returned by Processes.create will be that of the shell used to start the program, rather than the program itself, due to the differences in how /bin/sh and /bin/bash work. This PID will still be usable for watching the process with Processes.list to find its exit code and elapsed time. \n\n For Windows, no shell is used. Using a simple batch file instead by prepending c:\\windows\\system32\\cmd.exe /c will allow stdio redirection to work if passed in the Processes.CreateSpec.arguments parameter.", + "type": "string" + }, + "arguments": { + "description": "The arguments to the program. \n Characters which must be escaped to the shell should also be escaped in Processes.CreateSpec.arguments. \n\n In Linux and Solaris guest operating systems, stdio redirection arguments may be used. \n\n For Windows, stdio redirection can be added to the argments if Processes.CreateSpec.path is prefixed with c:\\windows\\system32\\cmd.exe /c.\n\nIf unset no arguments are passed to the program.", + "type": "string" + }, + "working_directory": { + "description": "The absolute path of the working directory for the program to be run. VMware recommends explicitly setting the working directory for the program to be run.\n If unset or is an empty string, the behavior depends on the guest operating system. For Linux guest operating systems, if unset or is an empty string, the working directory will be the home directory of the user associated with the guest authentication. For other guest operating systems, if unset, the behavior is unspecified.", + "type": "string" + }, + "environment_variables": { + "description": "A map of environment variables, specified using the guest OS rules (for example PATH, c:\\bin;c:\\windows\\system32 or LD_LIBRARY_PATH,/usr/lib:/lib), to be set for the program being run. Note that these are not additions to the default environment variables; they define the complete set available to the program.\nIf unset, the environment variables used are guest dependent defaults.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "start_minimized": { + "description": "Makes any program window start minimized in Windows operating systems. Returns an error if set for non-Windows guests.\nDefaults to false.", + "type": "boolean" + } + }, + "required": [ + "path" + ] + }, + "VcenterVmGuestProcessesDelete": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestProcessesGet": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestProcessesInfo": { + "type": "object", + "properties": { + "name": { + "description": "The process name.", + "type": "string" + }, + "owner": { + "description": "The process owner.", + "type": "string" + }, + "command": { + "description": "The full command line of the process.", + "type": "string" + }, + "started": { + "description": "The start time of the process.", + "type": "string", + "format": "date-time" + }, + "finished": { + "description": "If the process was started using Processes.create then the process completion time will be available if queried within 5 minutes after it completes.\nSet if the process was started with Processes.create and has recently exited.", + "type": "string", + "format": "date-time" + }, + "exit_code": { + "description": "If the process was started using Processes.create then the process exit code will be available if queried within 5 minutes after it completes.\nSet if the process was started with Processes.create and has recently exited.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "name", + "owner", + "command", + "started" + ] + }, + "VcenterVmGuestProcessesList": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/VcenterVmGuestCredentials", + "description": "The guest authentication data. See Credentials." + } + }, + "required": [ + "credentials" + ] + }, + "VcenterVmGuestProcessesSummary": { + "type": "object", + "properties": { + "name": { + "description": "The process name.", + "type": "string" + }, + "pid": { + "description": "The process ID.", + "type": "integer", + "format": "int64" + }, + "owner": { + "description": "The process owner.", + "type": "string" + }, + "command": { + "description": "The full command line of the process.", + "type": "string" + }, + "started": { + "description": "The start time of the process.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "pid", + "owner", + "command", + "started" + ] + }, + "VcenterVmHardwareAdapterNvmeCreate": { + "$ref": "#/definitions/VcenterVmHardwareAdapterNvmeCreateSpec", + "description": "Specification for the new virtual NVMe adapter." + }, + "VcenterVmHardwareAdapterNvmeCreateSpec": { + "type": "object", + "properties": { + "bus": { + "description": "NVMe bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the NVMe adapter on the PCI bus.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterVmHardwareAdapterNvmeInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "bus": { + "description": "NVMe bus number.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the NVMe adapter on the PCI bus.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "bus" + ] + }, + "VcenterVmHardwareAdapterNvmeSummary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual NVMe adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "VcenterVmHardwareAdapterSataCreate": { + "$ref": "#/definitions/VcenterVmHardwareAdapterSataCreateSpec", + "description": "Specification for the new virtual SATA adapter." + }, + "VcenterVmHardwareAdapterSataCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Adapter type.\nIf unset, a guest-specific default value will be used.", + "$ref": "#/definitions/VcenterVmHardwareAdapterSataType" + }, + "bus": { + "description": "SATA bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SATA adapter on the PCI bus.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterVmHardwareAdapterSataInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Adapter type.", + "$ref": "#/definitions/VcenterVmHardwareAdapterSataType" + }, + "bus": { + "description": "SATA bus number.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SATA adapter on the PCI bus.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "type", + "bus" + ] + }, + "VcenterVmHardwareAdapterSataSummary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual SATA adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "VcenterVmHardwareAdapterSataType": { + "type": "string", + "description": "The Sata.Type enumerated type defines the valid emulation types for a virtual SATA adapter.", + "enum": [ + "AHCI" + ] + }, + "VcenterVmHardwareAdapterScsiCreate": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiCreateSpec", + "description": "Specification for the new virtual SCSI adapter." + }, + "VcenterVmHardwareAdapterScsiCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Adapter type.\nIf unset, a guest-specific default value will be used.", + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiType" + }, + "bus": { + "description": "SCSI bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SCSI adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + }, + "sharing": { + "description": "Bus sharing mode.\nIf unset, the adapter will default to NONE.", + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiSharing" + } + } + }, + "VcenterVmHardwareAdapterScsiInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Adapter type.", + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiType" + }, + "scsi": { + "description": "Address of the SCSI adapter on the SCSI bus.", + "$ref": "#/definitions/VcenterVmHardwareScsiAddressInfo" + }, + "pci_slot_number": { + "description": "Address of the SCSI adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + }, + "sharing": { + "description": "Bus sharing mode.", + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiSharing" + } + }, + "required": [ + "label", + "type", + "scsi", + "sharing" + ] + }, + "VcenterVmHardwareAdapterScsiSharing": { + "type": "string", + "description": "The Scsi.Sharing enumerated type defines the valid bus sharing modes for a virtual SCSI adapter.", + "enum": [ + "NONE", + "VIRTUAL", + "PHYSICAL" + ] + }, + "VcenterVmHardwareAdapterScsiSummary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual SCSI adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "VcenterVmHardwareAdapterScsiType": { + "type": "string", + "description": "The Scsi.Type enumerated type defines the valid emulation types for a virtual SCSI adapter.", + "enum": [ + "BUSLOGIC", + "LSILOGIC", + "LSILOGICSAS", + "PVSCSI" + ] + }, + "VcenterVmHardwareAdapterScsiUpdate": { + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiUpdateSpec", + "description": "Specification for updating the virtual SCSI adapter." + }, + "VcenterVmHardwareAdapterScsiUpdateSpec": { + "type": "object", + "properties": { + "sharing": { + "description": "Bus sharing mode. \n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareAdapterScsiSharing" + } + } + }, + "VcenterVmHardwareBootCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type to be used by the virtual machine.\nIf unset, defaults to value that is recommended for the guest OS and is supported for the virtual hardware version.", + "$ref": "#/definitions/VcenterVmHardwareBootType" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nIf unset, defaults to value that is recommended for the guest OS and is supported for the virtual hardware version.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nIf unset, defaults to a system defined default value.", + "$ref": "#/definitions/VcenterVmHardwareBootNetworkProtocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.\nIf unset, default value is 0.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine should automatically retry the boot process after a failure.\nIf unset, default value is false.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.\nIf unset, default value is 10000.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process should automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareBootDeviceEntry": { + "type": "object", + "properties": { + "type": { + "description": "Virtual device type.", + "$ref": "#/definitions/VcenterVmHardwareBootDeviceType" + }, + "nic": { + "description": "Virtual Ethernet device. Ethernet device to use as boot device for this entry.\nThis field is optional and it is only relevant when the value of Device.Entry.type is ETHERNET.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + }, + "disks": { + "description": "Virtual disk device. List of virtual disks in boot order.\nThis field is optional and it is only relevant when the value of Device.Entry.type is DISK.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareBootDeviceEntryCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Virtual Boot device type.", + "$ref": "#/definitions/VcenterVmHardwareBootDeviceType" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareBootDeviceSet": { + "type": "object", + "properties": { + "devices": { + "type": "array", + "items": { + "$ref": "#/definitions/VcenterVmHardwareBootDeviceEntry" + }, + "description": "Ordered list of boot devices." + } + }, + "required": [ + "devices" + ] + }, + "VcenterVmHardwareBootDeviceType": { + "type": "string", + "description": "The Device.Type enumerated type defines the valid device types that may be used as bootable devices.", + "enum": [ + "CDROM", + "DISK", + "ETHERNET", + "FLOPPY" + ] + }, + "VcenterVmHardwareBootInfo": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type used by the virtual machine.", + "$ref": "#/definitions/VcenterVmHardwareBootType" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nThis field is optional and it is only relevant when the value of Boot.Info.type is EFI.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nThis field is optional and it is only relevant when the value of Boot.Info.type is EFI.", + "$ref": "#/definitions/VcenterVmHardwareBootNetworkProtocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine will automatically retry the boot process after a failure.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process will automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.", + "type": "boolean" + } + }, + "required": [ + "type", + "delay", + "retry", + "retry_delay", + "enter_setup_mode" + ] + }, + "VcenterVmHardwareBootNetworkProtocol": { + "type": "string", + "description": "The Boot.NetworkProtocol enumerated type defines the valid network boot protocols supported when booting a virtual machine with EFI firmware over the network.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "VcenterVmHardwareBootType": { + "type": "string", + "description": "The Boot.Type enumerated type defines the valid firmware types for a virtual machine.", + "enum": [ + "BIOS", + "EFI" + ] + }, + "VcenterVmHardwareBootUpdate": { + "$ref": "#/definitions/VcenterVmHardwareBootUpdateSpec", + "description": "Specification for updating the boot-related settings of the virtual machine." + }, + "VcenterVmHardwareBootUpdateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type to be used by the virtual machine.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareBootType" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareBootNetworkProtocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine should automatically retry the boot process after a failure.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process should automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareCdromBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual CD-ROM device.", + "$ref": "#/definitions/VcenterVmHardwareCdromBackingType" + }, + "iso_file": { + "description": "Path of the image file backing the virtual CD-ROM device.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is ISO_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the host device backing the virtual CD-ROM device. \n\n\nThis field will be unset if Cdrom.BackingInfo.auto-detect is true and the virtual CD-ROM device is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual CD-ROM device is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + }, + "device_access_type": { + "description": "Access type for the device backing.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is one of HOST_DEVICE or CLIENT_DEVICE.", + "$ref": "#/definitions/VcenterVmHardwareCdromDeviceAccessType" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareCdromBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual CD-ROM device.", + "$ref": "#/definitions/VcenterVmHardwareCdromBackingType" + }, + "iso_file": { + "description": "Path of the image file that should be used as the virtual CD-ROM device backing.\nThis field is optional and it is only relevant when the value of Cdrom.BackingSpec.type is ISO_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual CD-ROM device backing.\nIf unset, the virtual CD-ROM device will be configured to automatically detect a suitable host device.", + "type": "string" + }, + "device_access_type": { + "description": "Access type for the device backing.\nIf unset, defaults to EMULATION.", + "$ref": "#/definitions/VcenterVmHardwareCdromDeviceAccessType" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareCdromBackingType": { + "type": "string", + "description": "The Cdrom.BackingType enumerated type defines the valid backing types for a virtual CD-ROM device.", + "enum": [ + "ISO_FILE", + "HOST_DEVICE", + "CLIENT_DEVICE" + ] + }, + "VcenterVmHardwareCdromCreate": { + "$ref": "#/definitions/VcenterVmHardwareCdromCreateSpec", + "description": "Specification for the new virtual CD-ROM device." + }, + "VcenterVmHardwareCdromCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device should be attached.\nIf unset, guest-specific default values will be used", + "$ref": "#/definitions/VcenterVmHardwareCdromHostBusAdapterType" + }, + "ide": { + "description": "Address for attaching the device to a virtual IDE adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareIdeAddressSpec" + }, + "sata": { + "description": "Address for attaching the device to a virtual SATA adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareSataAddressSpec" + }, + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/VcenterVmHardwareCdromBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareCdromDeviceAccessType": { + "type": "string", + "description": "The Cdrom.DeviceAccessType enumerated type defines the valid device access types for a physical device packing of a virtual CD-ROM device.", + "enum": [ + "EMULATION", + "PASSTHRU", + "PASSTHRU_EXCLUSIVE" + ] + }, + "VcenterVmHardwareCdromHostBusAdapterType": { + "type": "string", + "description": "The Cdrom.HostBusAdapterType enumerated type defines the valid types of host bus adapters that may be used for attaching a Cdrom to a virtual machine.", + "enum": [ + "IDE", + "SATA" + ] + }, + "VcenterVmHardwareCdromInfo": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device is attached.", + "$ref": "#/definitions/VcenterVmHardwareCdromHostBusAdapterType" + }, + "label": { + "description": "Device label.", + "type": "string" + }, + "ide": { + "description": "Address of device attached to a virtual IDE adapter.\nThis field is optional and it is only relevant when the value of Cdrom.Info.type is IDE.", + "$ref": "#/definitions/VcenterVmHardwareIdeAddressInfo" + }, + "sata": { + "description": "Address of device attached to a virtual SATA adapter.\nThis field is optional and it is only relevant when the value of Cdrom.Info.type is SATA.", + "$ref": "#/definitions/VcenterVmHardwareSataAddressInfo" + }, + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device.", + "$ref": "#/definitions/VcenterVmHardwareCdromBackingInfo" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/VcenterVmHardwareConnectionState" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "type", + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "VcenterVmHardwareCdromSummary": { + "type": "object", + "properties": { + "cdrom": { + "description": "Identifier of the virtual CD-ROM device.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Cdrom. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "type": "string" + } + }, + "required": [ + "cdrom" + ] + }, + "VcenterVmHardwareCdromUpdate": { + "$ref": "#/definitions/VcenterVmHardwareCdromUpdateSpec", + "description": "Specification for updating the virtual CD-ROM device." + }, + "VcenterVmHardwareCdromUpdateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device. \n This field may only be modified if the virtual machine is not powered on or the virtual CD-ROM device is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareCdromBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareConnectionState": { + "type": "string", + "description": "The ConnectionState enumerated type defines the valid states for a removable device that is configured to be connected.", + "enum": [ + "CONNECTED", + "RECOVERABLE_ERROR", + "UNRECOVERABLE_ERROR", + "NOT_CONNECTED", + "UNKNOWN" + ] + }, + "VcenterVmHardwareCpuInfo": { + "type": "object", + "properties": { + "count": { + "description": "Number of CPU cores.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "Number of CPU cores per socket.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding CPUs while the virtual machine is running is enabled.", + "type": "boolean" + }, + "hot_remove_enabled": { + "description": "Flag indicating whether removing CPUs while the virtual machine is running is enabled.", + "type": "boolean" + } + }, + "required": [ + "count", + "cores_per_socket", + "hot_add_enabled", + "hot_remove_enabled" + ] + }, + "VcenterVmHardwareCpuUpdate": { + "$ref": "#/definitions/VcenterVmHardwareCpuUpdateSpec", + "description": "Specification for updating the CPU-related settings of the virtual machine." + }, + "VcenterVmHardwareCpuUpdateSpec": { + "type": "object", + "properties": { + "count": { + "description": "New number of CPU cores. The number of CPU cores in the virtual machine must be a multiple of the number of cores per socket. \n The supported range of CPU counts is constrained by the configured guest operating system and virtual hardware version of the virtual machine. \n\n If the virtual machine is running, the number of CPU cores may only be increased if Cpu.Info.hot-add-enabled is true, and may only be decreased if Cpu.Info.hot-remove-enabled is true.\n\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "New number of CPU cores per socket. The number of CPU cores in the virtual machine must be a multiple of the number of cores per socket.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding CPUs while the virtual machine is running is enabled. \n This field may only be modified if the virtual machine is powered off.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "hot_remove_enabled": { + "description": "Flag indicating whether removing CPUs while the virtual machine is running is enabled. \n This field may only be modified if the virtual machine is powered off.\n\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareDiskBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual disk.", + "$ref": "#/definitions/VcenterVmHardwareDiskBackingType" + }, + "vmdk_file": { + "description": "Path of the VMDK file backing the virtual disk.\nThis field is optional and it is only relevant when the value of Disk.BackingInfo.type is VMDK_FILE.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareDiskBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual disk.", + "$ref": "#/definitions/VcenterVmHardwareDiskBackingType" + }, + "vmdk_file": { + "description": "Path of the VMDK file backing the virtual disk.\nThis field is optional and it is only relevant when the value of Disk.BackingSpec.type is VMDK_FILE.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareDiskBackingType": { + "type": "string", + "description": "The Disk.BackingType enumerated type defines the valid backing types for a virtual disk.", + "enum": [ + "VMDK_FILE" + ] + }, + "VcenterVmHardwareDiskCreate": { + "$ref": "#/definitions/VcenterVmHardwareDiskCreateSpec", + "description": "Specification for the new virtual disk." + }, + "VcenterVmHardwareDiskCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device should be attached.\nIf unset, guest-specific default values will be used", + "$ref": "#/definitions/VcenterVmHardwareDiskHostBusAdapterType" + }, + "ide": { + "description": "Address for attaching the device to a virtual IDE adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareIdeAddressSpec" + }, + "scsi": { + "description": "Address for attaching the device to a virtual SCSI adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareScsiAddressSpec" + }, + "sata": { + "description": "Address for attaching the device to a virtual SATA adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareSataAddressSpec" + }, + "nvme": { + "description": "Address for attaching the device to a virtual NVMe adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareNvmeAddressSpec" + }, + "backing": { + "description": "Existing physical resource backing for the virtual disk. Exactly one of Disk.CreateSpec.backing or Disk.CreateSpec.new-vmdk must be specified.\nIf unset, the virtual disk will not be connected to an existing backing.", + "$ref": "#/definitions/VcenterVmHardwareDiskBackingSpec" + }, + "new_vmdk": { + "description": "Specification for creating a new VMDK backing for the virtual disk. Exactly one of Disk.CreateSpec.backing or Disk.CreateSpec.new-vmdk must be specified.\nIf unset, a new VMDK backing will not be created.", + "$ref": "#/definitions/VcenterVmHardwareDiskVmdkCreateSpec" + } + } + }, + "VcenterVmHardwareDiskHostBusAdapterType": { + "type": "string", + "description": "The Disk.HostBusAdapterType enumerated type defines the valid types of host bus adapters that may be used for attaching a virtual storage device to a virtual machine.", + "enum": [ + "IDE", + "SCSI", + "SATA", + "NVME" + ] + }, + "VcenterVmHardwareDiskInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Type of host bus adapter to which the device is attached.", + "$ref": "#/definitions/VcenterVmHardwareDiskHostBusAdapterType" + }, + "ide": { + "description": "Address of device attached to a virtual IDE adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/VcenterVmHardwareIdeAddressInfo" + }, + "scsi": { + "description": "Address of device attached to a virtual SCSI adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/VcenterVmHardwareScsiAddressInfo" + }, + "sata": { + "description": "Address of device attached to a virtual SATA adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/VcenterVmHardwareSataAddressInfo" + }, + "nvme": { + "description": "Address of device attached to a virtual NVMe adapter.\nThis field is optional and it is only relevant when the value of Disk.Info.type is NVME.", + "$ref": "#/definitions/VcenterVmHardwareNvmeAddressInfo" + }, + "backing": { + "description": "Physical resource backing for the virtual disk.", + "$ref": "#/definitions/VcenterVmHardwareDiskBackingInfo" + }, + "capacity": { + "description": "Capacity of the virtual disk in bytes.\nIf unset, virtual disk is inaccessible or disk capacity is 0.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "type", + "backing" + ] + }, + "VcenterVmHardwareDiskStoragePolicySpec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy which should be associated with the VMDK file.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "policy" + ] + }, + "VcenterVmHardwareDiskSummary": { + "type": "object", + "properties": { + "disk": { + "description": "Identifier of the virtual Disk.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "string" + } + }, + "required": [ + "disk" + ] + }, + "VcenterVmHardwareDiskUpdate": { + "$ref": "#/definitions/VcenterVmHardwareDiskUpdateSpec", + "description": "Specification for updating the virtual disk." + }, + "VcenterVmHardwareDiskUpdateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual disk. \n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareDiskBackingSpec" + } + } + }, + "VcenterVmHardwareDiskVmdkCreateSpec": { + "type": "object", + "properties": { + "name": { + "description": "Base name of the VMDK file. The name should not include the '.vmdk' file extension.\nIf unset, a name (derived from the name of the virtual machine) will be chosen by the server.", + "type": "string" + }, + "capacity": { + "description": "Capacity of the virtual disk backing in bytes.\nIf unset, defaults to a guest-specific capacity.", + "type": "integer", + "format": "int64" + }, + "storage_policy": { + "description": "The Disk.StoragePolicySpec structure contains information about the storage policy that is to be associated the with VMDK file.\nIf unset the default storage policy of the target datastore (if applicable) is applied. Currently a default storage policy is only supported by object based datastores : VVol & vSAN. For non- object datastores, if unset then no storage policy would be associated with the VMDK file.", + "$ref": "#/definitions/VcenterVmHardwareDiskStoragePolicySpec" + } + } + }, + "VcenterVmHardwareEthernetBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/VcenterVmHardwareEthernetBackingType" + }, + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nIf unset, the identifier of the network backing could not be determined.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "network_name": { + "description": "Name of the standard portgroup backing the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is STANDARD_PORTGROUP.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is HOST_DEVICE.", + "type": "string" + }, + "distributed_switch_uuid": { + "description": "UUID of the distributed virtual switch that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is DISTRIBUTED_PORTGROUP.", + "type": "string" + }, + "distributed_port": { + "description": "Key of the distributed virtual port that backs the virtual Ethernet adapter.\nThis field will be unset if the virtual Ethernet device is not bound to a distributed virtual port; this can happen if the virtual machine is powered off or the virtual Ethernet device is not connected.", + "type": "string" + }, + "connection_cookie": { + "description": "Server-generated cookie that identifies the connection to the port. This ookie may be used to verify that the virtual machine is the rightful owner of the port.\nThis field will be unset if the virtual Ethernet device is not bound to a distributed virtual port; this can happen if the virtual machine is powered off or the virtual Ethernet device is not connected.", + "type": "integer", + "format": "int64" + }, + "opaque_network_type": { + "description": "Type of the opaque network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is OPAQUE_NETWORK.", + "type": "string" + }, + "opaque_network_id": { + "description": "Identifier of the opaque network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is OPAQUE_NETWORK.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareEthernetBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/VcenterVmHardwareEthernetBackingType" + }, + "network": { + "description": "Identifier of the network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingSpec.type is one of STANDARD_PORTGROUP, DISTRIBUTED_PORTGROUP, or OPAQUE_NETWORK.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "distributed_port": { + "description": "Key of the distributed virtual port that backs the virtual Ethernet adapter. Depending on the type of the Portgroup, the port may be specified using this field. If the portgroup type is early-binding (also known as static), a port is assigned when the Ethernet adapter is configured to use the port. The port may be either automatically or specifically assigned based on the value of this field. If the portgroup type is ephemeral, the port is created and assigned to a virtual machine when it is powered on and the Ethernet adapter is connected. This field cannot be specified as no free ports exist before use.\nMay be used to specify a port when the network specified on the Ethernet.BackingSpec.network field is a static or early binding distributed portgroup. If unset, the port will be automatically assigned to the Ethernet adapter based on the policy embodied by the portgroup type.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareEthernetBackingType": { + "type": "string", + "description": "The Ethernet.BackingType enumerated type defines the valid backing types for a virtual Ethernet adapter.", + "enum": [ + "STANDARD_PORTGROUP", + "HOST_DEVICE", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "VcenterVmHardwareEthernetCreate": { + "$ref": "#/definitions/VcenterVmHardwareEthernetCreateSpec", + "description": "Specification for the new virtual Ethernet adapter." + }, + "VcenterVmHardwareEthernetCreateSpec": { + "type": "object", + "properties": { + "type": { + "description": "Ethernet adapter emulation type.\nIf unset, defaults to a guest-specific type.", + "$ref": "#/definitions/VcenterVmHardwareEthernetEmulationType" + }, + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility is enabled on this virtual Ethernet adapter.\nIf unset, UPT will not be enabled on the newly-created virtual Ethernet adapter.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type.\nIf unset, defaults to GENERATED.", + "$ref": "#/definitions/VcenterVmHardwareEthernetMacAddressType" + }, + "mac_address": { + "description": "MAC address.\nWorkaround for PR1459647", + "type": "string" + }, + "pci_slot_number": { + "description": "Address of the virtual Ethernet adapter on the PCI bus. If the PCI address is invalid, the server will change when it the VM is started or as the device is hot added.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN is enabled on this virtual Ethernet adapter.\nDefaults to false if unset.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter.\nIf unset, the system may try to find an appropriate backing. If one is not found, the request will fail.", + "$ref": "#/definitions/VcenterVmHardwareEthernetBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareEthernetEmulationType": { + "type": "string", + "description": "The Ethernet.EmulationType enumerated type defines the valid emulation types for a virtual Ethernet adapter.", + "enum": [ + "E1000", + "E1000E", + "PCNET32", + "VMXNET", + "VMXNET2", + "VMXNET3" + ] + }, + "VcenterVmHardwareEthernetInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Ethernet adapter emulation type.", + "$ref": "#/definitions/VcenterVmHardwareEthernetEmulationType" + }, + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility is enabled on this virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.Info.type is VMXNET3.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type.", + "$ref": "#/definitions/VcenterVmHardwareEthernetMacAddressType" + }, + "mac_address": { + "description": "MAC address.\nMay be unset if Ethernet.Info.mac-type is MANUAL and has not been specified, or if Ethernet.Info.mac-type is GENERATED and the virtual machine has never been powered on since the Ethernet adapter was created.", + "type": "string" + }, + "pci_slot_number": { + "description": "Address of the virtual Ethernet adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN is enabled on this virtual Ethernet adapter.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter.", + "$ref": "#/definitions/VcenterVmHardwareEthernetBackingInfo" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/VcenterVmHardwareConnectionState" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "type", + "mac_type", + "wake_on_lan_enabled", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "VcenterVmHardwareEthernetMacAddressType": { + "type": "string", + "description": "The Ethernet.MacAddressType enumerated type defines the valid MAC address origins for a virtual Ethernet adapter.", + "enum": [ + "MANUAL", + "GENERATED", + "ASSIGNED" + ] + }, + "VcenterVmHardwareEthernetSummary": { + "type": "object", + "properties": { + "nic": { + "description": "Identifier of the virtual Ethernet adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + } + }, + "required": [ + "nic" + ] + }, + "VcenterVmHardwareEthernetUpdate": { + "$ref": "#/definitions/VcenterVmHardwareEthernetUpdateSpec", + "description": "Specification for updating the virtual Ethernet adapter." + }, + "VcenterVmHardwareEthernetUpdateSpec": { + "type": "object", + "properties": { + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility should be enabled on this virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged. Must be unset if the emulation type of the virtual Ethernet adapter is not VMXNET3.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareEthernetMacAddressType" + }, + "mac_address": { + "description": "MAC address. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged. Must be specified if Ethernet.UpdateSpec.mac-type is MANUAL. Must be unset if the MAC address type is not MANUAL.", + "type": "string" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN shoud be enabled on this virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareEthernetBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareFloppyBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual floppy drive.", + "$ref": "#/definitions/VcenterVmHardwareFloppyBackingType" + }, + "image_file": { + "description": "Path of the image file backing the virtual floppy drive.\nThis field is optional and it is only relevant when the value of Floppy.BackingInfo.type is IMAGE_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the host device backing the virtual floppy drive. \n\n\nThis field will be unset if Floppy.BackingInfo.auto-detect is true and the virtual floppy drive is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual floppy drive is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Floppy.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareFloppyBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual floppy drive.", + "$ref": "#/definitions/VcenterVmHardwareFloppyBackingType" + }, + "image_file": { + "description": "Path of the image file that should be used as the virtual floppy drive backing.\nThis field is optional and it is only relevant when the value of Floppy.BackingSpec.type is IMAGE_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual floppy drive backing.\nIf unset, the virtual floppy drive will be configured to automatically detect a suitable host device.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareFloppyBackingType": { + "type": "string", + "description": "The Floppy.BackingType enumerated type defines the valid backing types for a virtual floppy drive.", + "enum": [ + "IMAGE_FILE", + "HOST_DEVICE", + "CLIENT_DEVICE" + ] + }, + "VcenterVmHardwareFloppyCreate": { + "$ref": "#/definitions/VcenterVmHardwareFloppyCreateSpec", + "description": "Specification for the new virtual floppy drive." + }, + "VcenterVmHardwareFloppyCreateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual floppy drive.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/VcenterVmHardwareFloppyBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareFloppyInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "backing": { + "description": "Physical resource backing for the virtual floppy drive.", + "$ref": "#/definitions/VcenterVmHardwareFloppyBackingInfo" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/VcenterVmHardwareConnectionState" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "VcenterVmHardwareFloppySummary": { + "type": "object", + "properties": { + "floppy": { + "description": "Identifier of the virtual floppy drive.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Floppy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "type": "string" + } + }, + "required": [ + "floppy" + ] + }, + "VcenterVmHardwareFloppyUpdate": { + "$ref": "#/definitions/VcenterVmHardwareFloppyUpdateSpec", + "description": "Specification for updating the virtual floppy drive." + }, + "VcenterVmHardwareFloppyUpdateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual floppy drive. \n This field may only be modified if the virtual machine is not powered on or the virtual floppy drive is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareFloppyBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareIdeAddressInfo": { + "type": "object", + "properties": { + "primary": { + "description": "Flag specifying whether the device is attached to the primary or secondary IDE adapter of the virtual machine.", + "type": "boolean" + }, + "master": { + "description": "Flag specifying whether the device is the master or slave device on the IDE adapter.", + "type": "boolean" + } + }, + "required": [ + "primary", + "master" + ] + }, + "VcenterVmHardwareIdeAddressSpec": { + "type": "object", + "properties": { + "primary": { + "description": "Flag specifying whether the device should be attached to the primary or secondary IDE adapter of the virtual machine.\nIf unset, the server will choose a adapter with an available connection. If no IDE connections are available, the request will be rejected.", + "type": "boolean" + }, + "master": { + "description": "Flag specifying whether the device should be the master or slave device on the IDE adapter.\nIf unset, the server will choose an available connection type. If no IDE connections are available, the request will be rejected.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareInfo": { + "type": "object", + "properties": { + "version": { + "description": "Virtual hardware version.", + "$ref": "#/definitions/VcenterVmHardwareVersion" + }, + "upgrade_policy": { + "description": "Scheduled upgrade policy.", + "$ref": "#/definitions/VcenterVmHardwareUpgradePolicy" + }, + "upgrade_version": { + "description": "Target hardware version to be used on the next scheduled virtual hardware upgrade.\nThis field is optional and it is only relevant when the value of Hardware.Info.upgrade-policy is one of AFTER_CLEAN_SHUTDOWN or ALWAYS.", + "$ref": "#/definitions/VcenterVmHardwareVersion" + }, + "upgrade_status": { + "description": "Scheduled upgrade status.", + "$ref": "#/definitions/VcenterVmHardwareUpgradeStatus" + }, + "upgrade_error": { + "description": "Reason for the scheduled upgrade failure.\nThis field is optional and it is only relevant when the value of Hardware.Info.upgrade-status is FAILED.", + "type": "string" + } + }, + "required": [ + "version", + "upgrade_policy", + "upgrade_status" + ] + }, + "VcenterVmHardwareMemoryInfo": { + "type": "object", + "properties": { + "size_MiB": { + "description": "Memory size in mebibytes.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding memory while the virtual machine is running is enabled. \n Some guest operating systems may consume more resources or perform less efficiently when they run on hardware that supports adding memory while the machine is running.", + "type": "boolean" + }, + "hot_add_increment_size_MiB": { + "description": "The granularity, in mebibytes, at which memory can be added to a running virtual machine. \n When adding memory to a running virtual machine, the amount of memory added must be at least Memory.Info.hot-add-increment-size-mib and the total memory size of the virtual machine must be a multiple of {@link>hotAddIncrementSize}.\n\nOnly set when Memory.Info.hot-add-enabled is true and the virtual machine is running.", + "type": "integer", + "format": "int64" + }, + "hot_add_limit_MiB": { + "description": "The maximum amount of memory, in mebibytes, that can be added to a running virtual machine.\nOnly set when Memory.Info.hot-add-enabled is true and the virtual machine is running.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "size_MiB", + "hot_add_enabled" + ] + }, + "VcenterVmHardwareMemoryUpdate": { + "$ref": "#/definitions/VcenterVmHardwareMemoryUpdateSpec", + "description": "Specification for updating the memory-related settings of the virtual machine." + }, + "VcenterVmHardwareMemoryUpdateSpec": { + "type": "object", + "properties": { + "size_MiB": { + "description": "New memory size in mebibytes. \n The supported range of memory sizes is constrained by the configured guest operating system and virtual hardware version of the virtual machine. \n\n If the virtual machine is running, this value may only be changed if Memory.Info.hot-add-enabled is true, and the new memory size must satisfy the constraints specified by Memory.Info.hot-add-increment-size-mib and Memory.Info.hot-add-limit-mib.\n\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding memory while the virtual machine is running should be enabled. \n Some guest operating systems may consume more resources or perform less efficiently when they run on hardware that supports adding memory while the machine is running. \n\n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareNvmeAddressInfo": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "VcenterVmHardwareNvmeAddressSpec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "VcenterVmHardwareParallelBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual parallel port.", + "$ref": "#/definitions/VcenterVmHardwareParallelBackingType" + }, + "file": { + "description": "Path of the file backing the virtual parallel port.\nThis field is optional and it is only relevant when the value of Parallel.BackingInfo.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual parallel port. \n\n\nThis field will be unset if Parallel.BackingInfo.auto-detect is true and the virtual parallel port is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual parallel port is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Parallel.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareParallelBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual parallel port.", + "$ref": "#/definitions/VcenterVmHardwareParallelBackingType" + }, + "file": { + "description": "Path of the file that should be used as the virtual parallel port backing.\nThis field is optional and it is only relevant when the value of Parallel.BackingSpec.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual parallel port backing.\nIf unset, the virtual parallel port will be configured to automatically detect a suitable host device.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareParallelBackingType": { + "type": "string", + "description": "The Parallel.BackingType enumerated type defines the valid backing types for a virtual parallel port.", + "enum": [ + "FILE", + "HOST_DEVICE" + ] + }, + "VcenterVmHardwareParallelCreate": { + "$ref": "#/definitions/VcenterVmHardwareParallelCreateSpec", + "description": "Specification for the new virtual parallel port." + }, + "VcenterVmHardwareParallelCreateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual parallel port.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/VcenterVmHardwareParallelBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareParallelInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "backing": { + "description": "Physical resource backing for the virtual parallel port.", + "$ref": "#/definitions/VcenterVmHardwareParallelBackingInfo" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/VcenterVmHardwareConnectionState" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "VcenterVmHardwareParallelSummary": { + "type": "object", + "properties": { + "port": { + "description": "Identifier of the virtual parallel port.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "string" + } + }, + "required": [ + "port" + ] + }, + "VcenterVmHardwareParallelUpdate": { + "$ref": "#/definitions/VcenterVmHardwareParallelUpdateSpec", + "description": "Specification for updating the virtual parallel port." + }, + "VcenterVmHardwareParallelUpdateSpec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual parallel port. \n This field may only be modified if the virtual machine is not powered on or the virtual parallel port is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareParallelBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareSataAddressInfo": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "VcenterVmHardwareSataAddressSpec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "VcenterVmHardwareScsiAddressInfo": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "VcenterVmHardwareScsiAddressSpec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "VcenterVmHardwareSerialBackingInfo": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual serial port.", + "$ref": "#/definitions/VcenterVmHardwareSerialBackingType" + }, + "file": { + "description": "Path of the file backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual serial port. \n\n\nThis field will be unset if Serial.BackingInfo.auto-detect is true and the virtual serial port is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual serial port is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + }, + "pipe": { + "description": "Name of the pipe backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "string" + }, + "no_rx_loss": { + "description": "Flag that enables optimized data transfer over the pipe. When the value is true, the host buffers data to prevent data overrun. This allows the virtual machine to read all of the data transferred over the pipe with no data loss.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "boolean" + }, + "network_location": { + "description": "URI specifying the location of the network service backing the virtual serial port. \n - If Serial.BackingInfo.type is NETWORK_SERVER, this field is the location used by clients to connect to this server. The hostname part of the URI should either be empty or should specify the address of the host on which the virtual machine is running.\n - If Serial.BackingInfo.type is NETWORK_CLIENT, this field is the location used by the virtual machine to connect to the remote server.\n \nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of NETWORK_SERVER or NETWORK_CLIENT.", + "type": "string", + "format": "uri" + }, + "proxy": { + "description": "Proxy service that provides network access to the network backing. If set, the virtual machine initiates a connection with the proxy service and forwards the traffic to the proxy.\nIf unset, no proxy service is configured.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareSerialBackingSpec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual serial port.", + "$ref": "#/definitions/VcenterVmHardwareSerialBackingType" + }, + "file": { + "description": "Path of the file backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual serial port. \n\n\nIf unset, the virtual serial port will be configured to automatically detect a suitable host device.", + "type": "string" + }, + "pipe": { + "description": "Name of the pipe backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "string" + }, + "no_rx_loss": { + "description": "Flag that enables optimized data transfer over the pipe. When the value is true, the host buffers data to prevent data overrun. This allows the virtual machine to read all of the data transferred over the pipe with no data loss.\nIf unset, defaults to false.", + "type": "boolean" + }, + "network_location": { + "description": "URI specifying the location of the network service backing the virtual serial port. \n - If Serial.BackingSpec.type is NETWORK_SERVER, this field is the location used by clients to connect to this server. The hostname part of the URI should either be empty or should specify the address of the host on which the virtual machine is running.\n - If Serial.BackingSpec.type is NETWORK_CLIENT, this field is the location used by the virtual machine to connect to the remote server.\n \nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is one of NETWORK_SERVER or NETWORK_CLIENT.", + "type": "string", + "format": "uri" + }, + "proxy": { + "description": "Proxy service that provides network access to the network backing. If set, the virtual machine initiates a connection with the proxy service and forwards the traffic to the proxy.\nIf unset, no proxy service should be used.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmHardwareSerialBackingType": { + "type": "string", + "description": "The Serial.BackingType enumerated type defines the valid backing types for a virtual serial port.", + "enum": [ + "FILE", + "HOST_DEVICE", + "PIPE_SERVER", + "PIPE_CLIENT", + "NETWORK_SERVER", + "NETWORK_CLIENT" + ] + }, + "VcenterVmHardwareSerialCreate": { + "$ref": "#/definitions/VcenterVmHardwareSerialCreateSpec", + "description": "Specification for the new virtual serial port." + }, + "VcenterVmHardwareSerialCreateSpec": { + "type": "object", + "properties": { + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host.\nIf unset, defaults to false.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/VcenterVmHardwareSerialBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareSerialInfo": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port.", + "$ref": "#/definitions/VcenterVmHardwareSerialBackingInfo" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/VcenterVmHardwareConnectionState" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "yield_on_poll", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "VcenterVmHardwareSerialSummary": { + "type": "object", + "properties": { + "port": { + "description": "Identifier of the virtual serial port.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "string" + } + }, + "required": [ + "port" + ] + }, + "VcenterVmHardwareSerialUpdate": { + "$ref": "#/definitions/VcenterVmHardwareSerialUpdateSpec", + "description": "Specification for updating the virtual serial port." + }, + "VcenterVmHardwareSerialUpdateSpec": { + "type": "object", + "properties": { + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host. \n This field may be modified at any time, and changes applied to a connected virtual serial port take effect immediately.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port. \n This field may only be modified if the virtual machine is not powered on or the virtual serial port is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareSerialBackingSpec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "VcenterVmHardwareUpdate": { + "$ref": "#/definitions/VcenterVmHardwareUpdateSpec", + "description": "Specification for updating the virtual hardware settings of the virtual machine." + }, + "VcenterVmHardwareUpdateSpec": { + "type": "object", + "properties": { + "upgrade_policy": { + "description": "Scheduled upgrade policy. \n If set to NEVER, the Hardware.Info.upgrade-version field will be reset to unset.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/VcenterVmHardwareUpgradePolicy" + }, + "upgrade_version": { + "description": "Target hardware version to be used on the next scheduled virtual hardware upgrade. \n If specified, this field must represent a newer virtual hardware version than the current virtual hardware version reported in Hardware.Info.version.\n\nIf Hardware.UpdateSpec.upgrade-policy is set to NEVER, this field must be unset. Otherwise, if this field is unset, default to the most recent virtual hardware version supported by the server.", + "$ref": "#/definitions/VcenterVmHardwareVersion" + } + } + }, + "VcenterVmHardwareUpgrade": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/VcenterVmHardwareVersion", + "description": "New virtual machine version.\nIf unset, defaults to the most recent virtual hardware version supported by the server." + } + } + }, + "VcenterVmHardwareUpgradePolicy": { + "type": "string", + "description": "The Hardware.UpgradePolicy enumerated type defines the valid virtual hardware upgrade policies for a virtual machine.", + "enum": [ + "NEVER", + "AFTER_CLEAN_SHUTDOWN", + "ALWAYS" + ] + }, + "VcenterVmHardwareUpgradeStatus": { + "type": "string", + "description": "The Hardware.UpgradeStatus enumerated type defines the valid virtual hardware upgrade statuses for a virtual machine.", + "enum": [ + "NONE", + "PENDING", + "SUCCESS", + "FAILED" + ] + }, + "VcenterVmHardwareVersion": { + "type": "string", + "description": "The Hardware.Version enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual machine hardware versions (1003746)).", + "enum": [ + "VMX_03", + "VMX_04", + "VMX_06", + "VMX_07", + "VMX_08", + "VMX_09", + "VMX_10", + "VMX_11", + "VMX_12", + "VMX_13", + "VMX_14", + "VMX_15", + "VMX_16", + "VMX_17", + "VMX_18", + "VMX_19", + "VMX_20", + "VMX_21" + ] + }, + "VcenterVmIdentityInfo": { + "type": "object", + "properties": { + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "bios_uuid": { + "description": "128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.", + "type": "string" + }, + "instance_uuid": { + "description": "VirtualCenter-specific 128-bit UUID of a virtual machine, represented as a hexademical string. This identifier is used by VirtualCenter to uniquely identify all virtual machine instances, including those that may share the same SMBIOS UUID.", + "type": "string" + } + }, + "required": [ + "name", + "bios_uuid", + "instance_uuid" + ] + }, + "VcenterVmLibraryItemCheckOutInfo": { + "type": "object", + "properties": { + "library_item": { + "description": "Identifier of the library item that the virtual machine is checked out from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + } + }, + "required": [ + "library_item" + ] + }, + "VcenterVmLibraryItemInfo": { + "type": "object", + "properties": { + "check_out": { + "description": "Information about the checked out virtual machine.\nIf unset, the virtual machine is not checked out from a library item.", + "$ref": "#/definitions/VcenterVmLibraryItemCheckOutInfo" + } + } + }, + "VcenterVmPowerInfo": { + "type": "object", + "properties": { + "state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/VcenterVmPowerState" + }, + "clean_power_off": { + "description": "Flag indicating whether the virtual machine was powered off cleanly. This field may be used to detect that the virtual machine crashed unexpectedly and should be restarted.\nThis field is optional and it is only relevant when the value of Power.Info.state is POWERED_OFF.", + "type": "boolean" + } + }, + "required": [ + "state" + ] + }, + "VcenterVmPowerState": { + "type": "string", + "enum": [ + "POWERED_OFF", + "POWERED_ON", + "SUSPENDED" + ] + }, + "VcenterVmStoragePolicyComplianceCheck": { + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceCheckSpec", + "description": "Parameter specifies the entities on which storage policy compliance check is to be invoked. The storage compliance Info Compliance.Info is returned.\nIf unset, the behavior is equivalent to a Compliance.CheckSpec with CheckSpec#vmHome set to true and CheckSpec#disks populated with all disks attached to the virtual machine." + }, + "VcenterVmStoragePolicyComplianceCheckSpec": { + "type": "object", + "properties": { + "vm_home": { + "description": "Invoke compliance check on the virtual machine home directory if set to true.", + "type": "boolean" + }, + "disks": { + "description": "Identifiers of the virtual machine's virtual disks for which compliance should be checked.\nIf unset or empty, compliance check is invoked on all the associated disks.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "vm_home" + ] + }, + "VcenterVmStoragePolicyComplianceInfo": { + "type": "object", + "properties": { + "overall_compliance": { + "description": "The overall compliance status of the virtual machine and all it's entities.", + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceStatus" + }, + "vm_home": { + "description": "The storage policy compliance information Compliance.VmComplianceInfo for the virtual machine's home directory.\nIf unset the virtual machine home directory has no storage policy association.", + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceVmComplianceInfo" + }, + "disks": { + "description": "The compliance information Compliance.VmComplianceInfo for the virtual machine's virtual disks that are currently associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceVmComplianceInfo" + } + } + }, + "required": [ + "overall_compliance", + "disks" + ] + }, + "VcenterVmStoragePolicyComplianceStatus": { + "type": "string", + "description": "The Compliance.Status enumerated type defines the storage compliance status of a virtual machine and its applicable entities.", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "VcenterVmStoragePolicyComplianceVmComplianceInfo": { + "type": "object", + "properties": { + "status": { + "description": "Status of the compliance operation.", + "$ref": "#/definitions/VcenterVmStoragePolicyComplianceStatus" + }, + "check_time": { + "description": "Date and time of the most recent compliance check.", + "type": "string", + "format": "date-time" + }, + "policy": { + "description": "Identifier of the storage policy associated with the virtual machine.\nIf unset SPBM is unable to retrieve or determine the associated policy, Compliance.VmComplianceInfo.failure-cause is set in such casses.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "failure_cause": { + "description": "The exception that caused the compliance check to fail. There can be more than one cause, since a policy can contain capabilities from multiple providers. If empty, it implies no failures while retrieving compliance.", + "type": "array", + "items": { + "$ref": "#/definitions/VapiStdLocalizableMessage" + } + } + }, + "required": [ + "status", + "check_time", + "failure_cause" + ] + }, + "VcenterVmStoragePolicyDiskPolicySpec": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used while performing update operation on the virtual disks.", + "$ref": "#/definitions/VcenterVmStoragePolicyDiskPolicySpecPolicyType" + }, + "policy": { + "description": "Storage Policy identification.\nThis field is optional and it is only relevant when the value of Policy.DiskPolicySpec.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmStoragePolicyDiskPolicySpecPolicyType": { + "type": "string", + "description": "The Policy.DiskPolicySpec enumerated type defines the choices for how to specify the policy to be associated with a virtual disk.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_DEFAULT_POLICY" + ] + }, + "VcenterVmStoragePolicyInfo": { + "type": "object", + "properties": { + "vm_home": { + "description": "Storage Policy associated with virtual machine home.\nIfunset, the virtual machine's home directory doesn't have any storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "disks": { + "description": "Storage policies associated with virtual disks. The values in this map are storage policy identifiers. They will be identifiers for the resource type:vcenter.StoragePolicy If the map is empty, the virtual machine does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "disks" + ] + }, + "VcenterVmStoragePolicyUpdate": { + "$ref": "#/definitions/VcenterVmStoragePolicyUpdateSpec", + "description": "Storage Policy Specification for updating the virtual machine and virtual disks." + }, + "VcenterVmStoragePolicyUpdateSpec": { + "type": "object", + "properties": { + "vm_home": { + "description": "Storage policy to be used when reconfiguring the virtual machine home.\nif unset the current storage policy is retained.", + "$ref": "#/definitions/VcenterVmStoragePolicyVmHomePolicySpec" + }, + "disks": { + "description": "Storage policy or policies to be used when reconfiguring virtual machine diks.\nif unset the current storage policy is retained.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmStoragePolicyDiskPolicySpec" + } + } + } + }, + "VcenterVmStoragePolicyVmHomePolicySpec": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used while performing update operation on the virtual machine home's directory.", + "$ref": "#/definitions/VcenterVmStoragePolicyVmHomePolicySpecPolicyType" + }, + "policy": { + "description": "Storage Policy identification.\nThis field is optional and it is only relevant when the value of Policy.VmHomePolicySpec.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmStoragePolicyVmHomePolicySpecPolicyType": { + "type": "string", + "description": "The Policy.VmHomePolicySpec.PolicyType enumerated type defines the choices for how to specify the policy to be associated with the virtual machine home's directory.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_DEFAULT_POLICY" + ] + }, + "VcenterVmTemplateLibraryItemsCheckOutsCheckIn": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsCheckInSpec", + "description": "Specification used to check in the virtual machine into the library item.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + }, + "VcenterVmTemplateLibraryItemsCheckOutsCheckInSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message describing the changes made to the virtual machine.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "VcenterVmTemplateLibraryItemsCheckOutsCheckOut": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsCheckOutSpec", + "description": "Specification used to check out the source virtual machine template as a virtual machine.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + }, + "VcenterVmTemplateLibraryItemsCheckOutsCheckOutSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the virtual machine to check out of the library item.\nThis field is currently required. In the future, if this field is unset, the system will choose a suitable name for the virtual machine.", + "type": "string" + }, + "placement": { + "description": "Information used to place the checked out virtual machine.\nThis field is currently required. In the future, if this field is unset, the system will place the virtual machine on a suitable resource. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine template result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCheckOutsPlacementSpec" + }, + "powered_on": { + "description": "Specifies whether the virtual machine should be powered on after check out.\nIf unset, the virtual machine will not be powered on after check out.", + "type": "boolean" + } + } + }, + "VcenterVmTemplateLibraryItemsCheckOutsInfo": { + "type": "object", + "properties": { + "time": { + "description": "Date and time when the virtual machine was checked out.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who checked out the virtual machine.", + "type": "string" + } + }, + "required": [ + "time", + "user" + ] + }, + "VcenterVmTemplateLibraryItemsCheckOutsPlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nIf unset, the virtual machine will be placed in the same folder as the source virtual machine template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. If CheckOuts.PlacementSpec.host and CheckOuts.PlacementSpec.resource-pool are both specified, CheckOuts.PlacementSpec.resource-pool must belong to CheckOuts.PlacementSpec.host. If CheckOuts.PlacementSpec.host and CheckOuts.PlacementSpec.cluster are both specified, CheckOuts.PlacementSpec.host must be a member of CheckOuts.PlacementSpec.cluster.\nThis field may be unset if CheckOuts.PlacementSpec.resource-pool or CheckOuts.PlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine should be placed. If CheckOuts.PlacementSpec.cluster and CheckOuts.PlacementSpec.resource-pool are both specified, CheckOuts.PlacementSpec.resource-pool must belong to CheckOuts.PlacementSpec.cluster. If CheckOuts.PlacementSpec.cluster and CheckOuts.PlacementSpec.host are both specified, CheckOuts.PlacementSpec.host must be a member of CheckOuts.PlacementSpec.cluster.\nIf CheckOuts.PlacementSpec.resource-pool or CheckOuts.PlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "VcenterVmTemplateLibraryItemsCheckOutsSummary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of the checked out virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + } + }, + "required": [ + "vm" + ] + }, + "VcenterVmTemplateLibraryItemsCpuInfo": { + "type": "object", + "properties": { + "count": { + "description": "Number of CPU cores.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "Number of CPU cores per socket.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "count", + "cores_per_socket" + ] + }, + "VcenterVmTemplateLibraryItemsCpuUpdateSpec": { + "type": "object", + "properties": { + "num_cpus": { + "description": "Number of virtual processors in the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same CPU count as the source virtual machine template contained in the library item.", + "type": "integer", + "format": "int64" + }, + "num_cores_per_socket": { + "description": "Number of cores among which to distribute CPUs in the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same number of cores per socket as the source virtual machine template contained in the library item.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterVmTemplateLibraryItemsCreate": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpec", + "description": "information used to create the library item from the source virtual machine." + }, + "VcenterVmTemplateLibraryItemsCreatePlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nIf unset, the virtual machine template will be placed in the same folder as the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, the library item creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If LibraryItems.CreatePlacementSpec.host and LibraryItems.CreatePlacementSpec.resource-pool are both specified, LibraryItems.CreatePlacementSpec.resource-pool must belong to LibraryItems.CreatePlacementSpec.host. If LibraryItems.CreatePlacementSpec.host and LibraryItems.CreatePlacementSpec.cluster are both specified, LibraryItems.CreatePlacementSpec.host must be a member of LibraryItems.CreatePlacementSpec.cluster.\nThis field may be unset if LibraryItems.CreatePlacementSpec.resource-pool or LibraryItems.CreatePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, the library item creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If LibraryItems.CreatePlacementSpec.cluster and LibraryItems.CreatePlacementSpec.resource-pool are both specified, LibraryItems.CreatePlacementSpec.resource-pool must belong to LibraryItems.CreatePlacementSpec.cluster. If LibraryItems.CreatePlacementSpec.cluster and LibraryItems.CreatePlacementSpec.host are both specified, LibraryItems.CreatePlacementSpec.host must be a member of LibraryItems.CreatePlacementSpec.cluster.\nIf LibraryItems.CreatePlacementSpec.resource-pool or LibraryItems.CreatePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "VcenterVmTemplateLibraryItemsCreateSpec": { + "type": "object", + "properties": { + "source_vm": { + "description": "Identifier of the source virtual machine to create the library item from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the library item.", + "type": "string" + }, + "description": { + "description": "Description of the library item.\nIf unset, the newly created library item has the same description as the source virtual machine.", + "type": "string" + }, + "library": { + "description": "Identifier of the library in which the new library item should be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "vm_home_storage": { + "description": "Storage location for the virtual machine template's configuration and log files.\nIf unset, the virtual machine template's configuration and log files are placed on the default storage backing associated with the library specified by LibraryItems.CreateSpec.library.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecVmHomeStorage" + }, + "disk_storage": { + "description": "Storage specification for the virtual machine template's disks.\nIf both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are unset, the virtual machine template's disks are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n If LibraryItems.CreateSpec.disk-storage-overrides is unset and LibraryItems.CreateSpec.disk-storage is specified, all of the virtual machine template's disks are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\n If LibraryItems.CreateSpec.disk-storage-overrides is specified and LibraryItems.CreateSpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n\n If both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecDiskStorage" + }, + "disk_storage_overrides": { + "description": "Storage specification for individual disks in the virtual machine template. This is specified as a mapping between disk identifiers in the source virtual machine and their respective storage specifications.\nIf both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are unset, the virtual machine template's disks are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n If LibraryItems.CreateSpec.disk-storage-overrides is unset and LibraryItems.CreateSpec.disk-storage is specified, all of the virtual machine template's disks are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\n If LibraryItems.CreateSpec.disk-storage-overrides is specified and LibraryItems.CreateSpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n\n If both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecDiskStorage" + } + }, + "placement": { + "description": "Information used to place the virtual machine template.\nThis field is currently required. In the future, if this field is unset, the system will place the virtual machine template on a suitable resource. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreatePlacementSpec" + } + }, + "required": [ + "source_vm", + "name", + "library" + ] + }, + "VcenterVmTemplateLibraryItemsCreateSpecDiskStorage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier for the datastore associated with a virtual machine template's disk.\nThis field is currently required. \n If LibraryItems.CreateSpecDiskStorage.storage-policy is also specified and is incompatible with the LibraryItems.CreateSpecDiskStorage.datastore, then the disk will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for a virtual machine template's disk.\nIf unset, LibraryItems.CreateSpecDiskStorage.datastore must be specified and the virtual machine template's disk is created with the default storage policy associated with the LibraryItems.CreateSpecDiskStorage.datastore.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecDiskStoragePolicy" + } + } + }, + "VcenterVmTemplateLibraryItemsCreateSpecDiskStoragePolicy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating a virtual machine template's disk.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecDiskStoragePolicyType" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.CreateSpecDiskStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmTemplateLibraryItemsCreateSpecDiskStoragePolicyType": { + "type": "string", + "description": "Policy type for a virtual machine template's disk.", + "enum": [ + "USE_SPECIFIED_POLICY" + ] + }, + "VcenterVmTemplateLibraryItemsCreateSpecVmHomeStorage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore for the virtual machine template's configuration and log files.\nThis field is currently required. \n When LibraryItems.CreateSpecVmHomeStorage.storage-policy is also specified and is incompatible with the LibraryItems.CreateSpecVmHomeStorage.datastore, then the virtual machine template will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the virtual machine template's configuration and log files.\nIf unset, LibraryItems.CreateSpecVmHomeStorage.datastore must be specified and the virtual machine template's configuration and log files are created with the default storage policy associated with the LibraryItems.CreateSpecVmHomeStorage.datastore.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecVmHomeStoragePolicy" + } + } + }, + "VcenterVmTemplateLibraryItemsCreateSpecVmHomeStoragePolicy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the virtual machine template's configuration and log files.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCreateSpecVmHomeStoragePolicyType" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.CreateSpecVmHomeStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmTemplateLibraryItemsCreateSpecVmHomeStoragePolicyType": { + "type": "string", + "description": "Policy type for the virtual machine template's configuration and log files.", + "enum": [ + "USE_SPECIFIED_POLICY" + ] + }, + "VcenterVmTemplateLibraryItemsDeploy": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpec", + "description": "specification of how the virtual machine should be deployed." + }, + "VcenterVmTemplateLibraryItemsDeployPlacementSpec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the deployed virtual machine should be placed.\nThis field is currently required. \n If unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine deployment operation will fail. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the deployed virtual machine should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine deployment operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. If LibraryItems.DeployPlacementSpec.host and LibraryItems.DeployPlacementSpec.resource-pool are both specified, LibraryItems.DeployPlacementSpec.resource-pool must belong to LibraryItems.DeployPlacementSpec.host. If LibraryItems.DeployPlacementSpec.host and LibraryItems.DeployPlacementSpec.cluster are both specified, LibraryItems.DeployPlacementSpec.host must be a member of LibraryItems.DeployPlacementSpec.cluster.\nThis field may be unset if LibraryItems.DeployPlacementSpec.resource-pool or LibraryItems.DeployPlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine deployment operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the deployed virtual machine should be placed. If LibraryItems.DeployPlacementSpec.cluster and LibraryItems.DeployPlacementSpec.resource-pool are both specified, LibraryItems.DeployPlacementSpec.resource-pool must belong to LibraryItems.DeployPlacementSpec.cluster. If LibraryItems.DeployPlacementSpec.cluster and LibraryItems.DeployPlacementSpec.host are both specified, LibraryItems.DeployPlacementSpec.host must be a member of LibraryItems.DeployPlacementSpec.cluster.\nIf LibraryItems.DeployPlacementSpec.resource-pool or LibraryItems.DeployPlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "VcenterVmTemplateLibraryItemsDeploySpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the deployed virtual machine.", + "type": "string" + }, + "description": { + "description": "Description of the deployed virtual machine.\nIf unset, the deployed virtual machine has the same description as the source library item.", + "type": "string" + }, + "vm_home_storage": { + "description": "Storage location for the deployed virtual machine's configuration and log files.\nIf unset, the deployed virtual machine's configuration and log files are created with the same storage spec as the source virtual machine template's configuration and log files.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecVmHomeStorage" + }, + "disk_storage": { + "description": "Storage specification for the deployed virtual machine's disks.\nIf both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are unset, the deployed virtual machine's disks are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n If LibraryItems.DeploySpec.disk-storage-overrides is unset and LibraryItems.DeploySpec.disk-storage is specified, all of the deployed virtual machine's disks are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\n If LibraryItems.DeploySpec.disk-storage-overrides is specified and LibraryItems.DeploySpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n\n If both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecDiskStorage" + }, + "disk_storage_overrides": { + "description": "Storage specification for individual disks in the deployed virtual machine. This is specified as a mapping between disk identifiers in the source virtual machine template contained in the library item and their storage specifications.\nIf both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are unset, the deployed virtual machine's disks are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n If LibraryItems.DeploySpec.disk-storage-overrides is unset and LibraryItems.DeploySpec.disk-storage is specified, all of the deployed virtual machine's disks are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\n If LibraryItems.DeploySpec.disk-storage-overrides is specified and LibraryItems.DeploySpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n\n If both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecDiskStorage" + } + }, + "placement": { + "description": "Information used to place the deployed virtual machine.\nThis field is currently required. In the future, if this field is unset, the system will use the values from the source virtual machine template contained in the library item. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine template result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeployPlacementSpec" + }, + "powered_on": { + "description": "Specifies whether the deployed virtual machine should be powered on after deployment.\nIf unset, the virtual machine will not be powered on after deployment.", + "type": "boolean" + }, + "guest_customization": { + "description": "Guest customization spec to apply to the deployed virtual machine.\nIf unset, the guest operating system is not customized after deployment.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsGuestCustomizationSpec" + }, + "hardware_customization": { + "description": "Hardware customization spec which specifies updates to the deployed virtual machine.\nIf unset, the deployed virtual machine has the same hardware configuration as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsHardwareCustomizationSpec" + } + }, + "required": [ + "name" + ] + }, + "VcenterVmTemplateLibraryItemsDeploySpecDiskStorage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier for the datastore associated the deployed virtual machine's disk.\nThis field is currently required. \n If LibraryItems.DeploySpecDiskStorage.storage-policy is also specified and is incompatible with the LibraryItems.DeploySpecDiskStorage.datastore, then the disk will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the deployed virtual machine's disk.\nIf unset, LibraryItems.DeploySpecDiskStorage.datastore must be specified and the deployed virtual machine's disk is created with the default storage policy associated with the LibraryItems.DeploySpecDiskStorage.datastore.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecDiskStoragePolicy" + } + } + }, + "VcenterVmTemplateLibraryItemsDeploySpecDiskStoragePolicy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the deployed virtual machine's disk.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecDiskStoragePolicyType" + }, + "policy": { + "description": "Identifier of the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.DeploySpecDiskStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmTemplateLibraryItemsDeploySpecDiskStoragePolicyType": { + "type": "string", + "description": "Policy type for the deployed virtual machine's disk.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_SOURCE_POLICY" + ] + }, + "VcenterVmTemplateLibraryItemsDeploySpecVmHomeStorage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore for the deployed virtual machine's configuration and log files.\nThis field is currently required. \n When LibraryItems.DeploySpecVmHomeStorage.storage-policy is also specified and is incompatible with the LibraryItems.DeploySpecVmHomeStorage.datastore, then the deployed virtual machine will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the deployed virtual machine's configuration and log files.\nIf unset, LibraryItems.DeploySpecVmHomeStorage.datastore must be specified and the deployed virtual machine's configuration and log files are created with the default storage policy associated with the LibraryItems.DeploySpecVmHomeStorage.datastore.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecVmHomeStoragePolicy" + } + } + }, + "VcenterVmTemplateLibraryItemsDeploySpecVmHomeStoragePolicy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the deployed virtual machine's configuration and log files.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDeploySpecVmHomeStoragePolicyType" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.DeploySpecVmHomeStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "VcenterVmTemplateLibraryItemsDeploySpecVmHomeStoragePolicyType": { + "type": "string", + "description": "Policy type for the deployed virtual machine's configuration and log files.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_SOURCE_POLICY" + ] + }, + "VcenterVmTemplateLibraryItemsDiskInfo": { + "type": "object", + "properties": { + "capacity": { + "description": "Capacity of the virtual disk in bytes.\nThis field will be unset if the virtual disk is inaccessible.", + "type": "integer", + "format": "int64" + }, + "disk_storage": { + "description": "Disk storage related information.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDiskStorageInfo" + } + }, + "required": [ + "disk_storage" + ] + }, + "VcenterVmTemplateLibraryItemsDiskStorageInfo": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore where the disk is stored.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Identifier of the storage policy associated with the virtual disk.\nIf unset, the virtual disk does not have a storage policy associated with it.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "VcenterVmTemplateLibraryItemsDiskUpdateSpec": { + "type": "object", + "properties": { + "capacity": { + "description": "Updated capacity of the virtual disk backing in bytes. This value has to be larger than the original capacity of the disk.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "capacity" + ] + }, + "VcenterVmTemplateLibraryItemsEthernetInfo": { + "type": "object", + "properties": { + "backing_type": { + "description": "Network backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsEthernetInfoNetworkBackingType" + }, + "mac_type": { + "description": "MAC address type of the ethernet adapter.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsEthernetInfoMacAddressType" + }, + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nThis field will be unset if the identifier of the network backing could not be determined.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + } + }, + "required": [ + "backing_type", + "mac_type" + ] + }, + "VcenterVmTemplateLibraryItemsEthernetInfoMacAddressType": { + "type": "string", + "description": "The LibraryItems.EthernetInfo.MacAddressType enumerated type defines the valid MAC address origins for a virtual Ethernet adapter.", + "enum": [ + "MANUAL", + "GENERATED", + "ASSIGNED" + ] + }, + "VcenterVmTemplateLibraryItemsEthernetInfoNetworkBackingType": { + "type": "string", + "description": "The LibraryItems.EthernetInfo.NetworkBackingType enumerated type defines valid network backing types for a virtual Ethernet adapter.", + "enum": [ + "STANDARD_PORTGROUP", + "HOST_DEVICE", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "VcenterVmTemplateLibraryItemsEthernetUpdateSpec": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nThis field is currently required. \n If unset, the virtual Ethernet adapter will be connected to same network as it was in the source virtual machine template. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + } + } + }, + "VcenterVmTemplateLibraryItemsGuestCustomizationSpec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the customization specification.\nIf unset, no guest customization is performed.", + "type": "string" + } + } + }, + "VcenterVmTemplateLibraryItemsHardwareCustomizationSpec": { + "type": "object", + "properties": { + "nics": { + "description": "Map of Ethernet network adapters to update.\nIf unset, all Ethernet adapters will remain connected to the same network as they were in the source virtual machine template. An Ethernet adapter with a MacAddressType of MANUAL will not change. An Ethernet adapter with a MacAddressType of GENERATED or ASSIGNED will receive a new address.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsEthernetUpdateSpec" + } + }, + "disks_to_remove": { + "description": "Idenfiers of disks to remove from the deployed virtual machine.\nIf unset, all disks will be copied.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "disks_to_update": { + "description": "Disk update specification for individual disks in the deployed virtual machine.\nIf unset, disks in the deployed virtual machine will have the same settings as the corresponding disks in the source virtual machine template contained in the library item.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDiskUpdateSpec" + } + }, + "cpu_update": { + "description": "CPU update specification for the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same CPU settings as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCpuUpdateSpec" + }, + "memory_update": { + "description": "Memory update specification for the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same memory settings as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsMemoryUpdateSpec" + } + } + }, + "VcenterVmTemplateLibraryItemsInfo": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Configured guest operating system of the virtual machine template.", + "$ref": "#/definitions/VcenterVmGuestOS" + }, + "cpu": { + "description": "CPU configuration of the virtual machine template.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsCpuInfo" + }, + "memory": { + "description": "Memory configuration of the virtual machine template.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsMemoryInfo" + }, + "vm_home_storage": { + "description": "Storage information about the virtual machine template's configuration and log files.", + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsVmHomeStorageInfo" + }, + "disks": { + "description": "Storage information about the virtual machine template's virtual disks.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsDiskInfo" + } + }, + "nics": { + "description": "Information about the virtual machine template's virtual ethernet adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsEthernetInfo" + } + }, + "vm_template": { + "description": "Identifier of the latest virtual machine template contained in the library item. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "guest_OS", + "cpu", + "memory", + "vm_home_storage", + "disks", + "nics", + "vm_template" + ] + }, + "VcenterVmTemplateLibraryItemsMemoryInfo": { + "type": "object", + "properties": { + "size_MiB": { + "description": "Memory size in mebibytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "size_MiB" + ] + }, + "VcenterVmTemplateLibraryItemsMemoryUpdateSpec": { + "type": "object", + "properties": { + "memory": { + "description": "Size of a virtual machine's memory in MB.\nIf {@term.unset}, the deployed virtual machine has the same memory size as the source virtual machine template.", + "type": "integer", + "format": "int64" + } + } + }, + "VcenterVmTemplateLibraryItemsVersionsInfo": { + "type": "object", + "properties": { + "vm_template": { + "description": "Identifier of the virtual machine template associated with the library item version. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "vm_template" + ] + }, + "VcenterVmTemplateLibraryItemsVersionsRollback": { + "$ref": "#/definitions/VcenterVmTemplateLibraryItemsVersionsRollbackSpec", + "description": "Specification to rollback the library item.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + }, + "VcenterVmTemplateLibraryItemsVersionsRollbackSpec": { + "type": "object", + "properties": { + "message": { + "description": "Message describing the reason for the rollback.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "VcenterVmTemplateLibraryItemsVersionsSummary": { + "type": "object", + "properties": { + "version": { + "description": "The version of the library item.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "vm_template": { + "description": "Identifier of the virtual machine template associated with the library item version. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "version", + "vm_template" + ] + }, + "VcenterVmTemplateLibraryItemsVmHomeStorageInfo": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore where the virtual machine template's configuration and log files are stored.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Identifier of the storage policy associated with the virtual machine template's configuration and log files.\nIf unset, the virtual machine template's configuration and log files do not have a storage policy associated with them.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "VcenterVmToolsInfo": { + "type": "object", + "properties": { + "auto_update_supported": { + "description": "Set if the virtual machine supports auto-upgrading Tools via Tools.UpgradePolicy.", + "type": "boolean" + }, + "install_attempt_count": { + "description": "Number of attempts that have been made to install or upgrade the version of Tools installed on this virtual machine.\nThis field will be unset if there have been no Tools install or upgrade attempt.", + "type": "integer", + "format": "int64" + }, + "error": { + "description": "Error that happened, if any, during last attempt to upgrade or install Tools.\nThis field will be unset if a the last Tools install or upgrade attempt succeeded.", + "type": "string" + }, + "version_number": { + "description": "Version of VMware Tools installed on the guest operating system.\nThis field wil be unset if VMWare Tools is not installed. This is an integer constructed as follows: (((MJR) << 10) + ((MNR) << 5) + (REV)) Where MJR is tha major verson, MNR is the minor version and REV is the revision. Tools version = T Tools Version Major = MJR = (T / 1024) Tools Version Minor = MNR = ((T % 1024) / 32) Tools Version Revision = BASE = ((T % 1024) % 32) Tools actual version = MJR.MNR.REV", + "type": "integer", + "format": "int64" + }, + "version": { + "description": "Version of VMware Tools installed on the guest operating system. This is a human-readable value that should not be parsed.\nThis field wil be unset if VMWare Tools is not installed.", + "type": "string" + }, + "upgrade_policy": { + "description": "Tools upgrade policy setting for the virtual machine. Tools.UpgradePolicy", + "$ref": "#/definitions/VcenterVmToolsUpgradePolicy" + }, + "version_status": { + "description": "Current version status of VMware Tools in the guest operating system, if known.\nThis field will be unset if the version status is not known, for example if VMware Tools is too old to report the information.", + "$ref": "#/definitions/VcenterVmToolsVersionStatus" + }, + "install_type": { + "description": "Current installation type of VMware Tools in the guest operating system.\nThis field will be unset if the installation type is not known, for example if VMware Tools is too old to report the information.", + "$ref": "#/definitions/VcenterVmToolsToolsInstallType" + }, + "run_state": { + "description": "Current run state of VMware Tools in the guest operating system.", + "$ref": "#/definitions/VcenterVmToolsRunState" + } + }, + "required": [ + "auto_update_supported", + "upgrade_policy", + "run_state" + ] + }, + "VcenterVmToolsInstallerInfo": { + "type": "object", + "properties": { + "is_connected": { + "description": "Flag indicating whether the VMware Tools installer is mounted as a CD-ROM.", + "type": "boolean" + } + }, + "required": [ + "is_connected" + ] + }, + "VcenterVmToolsRunState": { + "type": "string", + "description": "Current run state of VMware Tools in the guest operating system.", + "enum": [ + "NOT_RUNNING", + "RUNNING", + "EXECUTING_SCRIPTS" + ] + }, + "VcenterVmToolsToolsInstallType": { + "type": "string", + "description": "The Tools.ToolsInstallType enumerated type defines the installation type of the Tools in the guest operating system.", + "enum": [ + "UNKNOWN", + "MSI", + "TAR", + "OSP", + "OPEN_VM_TOOLS" + ] + }, + "VcenterVmToolsUpdate": { + "$ref": "#/definitions/VcenterVmToolsUpdateSpec", + "description": "The new values." + }, + "VcenterVmToolsUpdateSpec": { + "type": "object", + "properties": { + "upgrade_policy": { + "description": "Tools upgrade policy setting for the virtual machine. Tools.UpgradePolicy\nIf unset the upgrade policy will not be modified.", + "$ref": "#/definitions/VcenterVmToolsUpgradePolicy" + } + } + }, + "VcenterVmToolsUpgrade": { + "type": "object", + "properties": { + "command_line_options": { + "type": "string", + "description": "Command line options passed to the installer to modify the installation procedure for Tools.\nSet if any additional options are desired." + } + } + }, + "VcenterVmToolsUpgradePolicy": { + "type": "string", + "description": "The Tools.UpgradePolicy enumerated type defines when Tools are auto-upgraded for a virtual machine.", + "enum": [ + "MANUAL", + "UPGRADE_AT_POWER_CYCLE" + ] + }, + "VcenterVmToolsVersionStatus": { + "type": "string", + "description": "The Tools.VersionStatus enumerated type defines the version status types of VMware Tools installed in the guest operating system.", + "enum": [ + "NOT_INSTALLED", + "CURRENT", + "UNMANAGED", + "TOO_OLD_UNSUPPORTED", + "SUPPORTED_OLD", + "SUPPORTED_NEW", + "TOO_NEW", + "BLACKLISTED" + ] + }, + "cis.task.progress": { + "type": "object", + "properties": { + "total": { + "description": "Total amount of the work for the operation.", + "type": "integer", + "format": "int64" + }, + "completed": { + "description": "The amount of work completed for the operation. The value can only be incremented.", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "Message about the work progress.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "total", + "completed", + "message" + ] + }, + "cis.task.status": { + "type": "string", + "description": "The Status enumerated type defines the status values that can be reported for an operation.", + "enum": [ + "PENDING", + "RUNNING", + "BLOCKED", + "SUCCEEDED", + "FAILED" + ] + }, + "vapi.std.dynamic_ID": { + "type": "object", + "properties": { + "type": { + "description": "The type of resource being identified (for example com.acme.Person). \n Services that contain operations for creating and deleting resources typically contain a constant specifying the resource type for the resources being created and deleted. The API metamodel metadata services include a service that allows retrieving all the known resource types.", + "type": "string" + }, + "id": { + "description": "The identifier for a resource whose type is specified by DynamicID.type.\nWhen clients pass a value of this structure as a parameter, the field DynamicID.type must contain the actual resource type. When operations return a value of this structure as a result, the field DynamicID.type will contain the actual resource type.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "vapi.std.errors.already_exists": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_exists_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_exists" + } + } + }, + "vapi.std.errors.already_in_desired_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.already_in_desired_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.already_in_desired_state" + } + } + }, + "vapi.std.errors.error": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.error.type": { + "type": "string", + "description": "Enumeration of all standard errors. Used as discriminator in protocols that have no standard means for transporting the error type, e.g. REST.", + "enum": [ + "ERROR", + "ALREADY_EXISTS", + "ALREADY_IN_DESIRED_STATE", + "CANCELED", + "CONCURRENT_CHANGE", + "FEATURE_IN_USE", + "INTERNAL_SERVER_ERROR", + "INVALID_ARGUMENT", + "INVALID_ELEMENT_CONFIGURATION", + "INVALID_ELEMENT_TYPE", + "INVALID_REQUEST", + "NOT_ALLOWED_IN_CURRENT_STATE", + "NOT_FOUND", + "OPERATION_NOT_FOUND", + "RESOURCE_BUSY", + "RESOURCE_IN_USE", + "RESOURCE_INACCESSIBLE", + "SERVICE_UNAVAILABLE", + "TIMED_OUT", + "UNABLE_TO_ALLOCATE_RESOURCE", + "UNAUTHENTICATED", + "UNAUTHORIZED", + "UNEXPECTED_INPUT", + "UNSUPPORTED", + "UNVERIFIED_PEER" + ] + }, + "vapi.std.errors.error_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.error" + } + } + }, + "vapi.std.errors.internal_server_error": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.internal_server_error_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.internal_server_error" + } + } + }, + "vapi.std.errors.invalid_argument": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_argument_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_argument" + } + } + }, + "vapi.std.errors.invalid_element_configuration": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_element_configuration_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_configuration" + } + } + }, + "vapi.std.errors.invalid_element_type": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_element_type_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_element_type" + } + } + }, + "vapi.std.errors.invalid_request": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.invalid_request_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.invalid_request" + } + } + }, + "vapi.std.errors.not_allowed_in_current_state": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_allowed_in_current_state_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_allowed_in_current_state" + } + } + }, + "vapi.std.errors.not_found": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.not_found_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.not_found" + } + } + }, + "vapi.std.errors.resource_busy": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_busy_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_busy" + } + } + }, + "vapi.std.errors.resource_in_use": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_in_use_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_in_use" + } + } + }, + "vapi.std.errors.resource_inaccessible": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.resource_inaccessible_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.resource_inaccessible" + } + } + }, + "vapi.std.errors.service_unavailable": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.service_unavailable_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.service_unavailable" + } + } + }, + "vapi.std.errors.timed_out": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.timed_out_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.timed_out" + } + } + }, + "vapi.std.errors.unable_to_allocate_resource": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unable_to_allocate_resource_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unable_to_allocate_resource" + } + } + }, + "vapi.std.errors.unauthenticated": { + "type": "object", + "properties": { + "challenge": { + "description": "Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used. \n For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm=\"27da1358-2ba4-11e9-b210-d663bd873d93\",sts=\"http://vcenter/sso?vsphere.local\", Basic realm=\"vCenter\"\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthenticated_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthenticated" + } + } + }, + "vapi.std.errors.unauthorized": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unauthorized_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unauthorized" + } + } + }, + "vapi.std.errors.unsupported": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unsupported_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unsupported" + } + } + }, + "vapi.std.errors.unverified_peer": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. \n\n Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. \n\n The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + }, + "error_type": { + "description": "Discriminator field to help API consumers identify the structure type.\nCan be unset for compatibility with preceding implementations.", + "$ref": "#/definitions/vapi.std.errors.error.type" + } + }, + "required": [ + "messages" + ] + }, + "vapi.std.errors.unverified_peer_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.errors.unverified_peer" + } + } + }, + "vapi.std.localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "default_message": { + "description": "The value of this localizable string or message template in the en_US (English) locale. If LocalizableMessage.id refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user. It could also be used as a fallback if a client is unable to access the appropriate message catalog.", + "type": "string" + }, + "args": { + "description": "Positional arguments to be substituted into the message template. This list will be empty if the message uses named arguments or has no arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "params": { + "description": "Named arguments to be substituted into the message template.\nUnset means that the message template requires no arguments or positional arguments are used.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + }, + "localized": { + "description": "Localized string value as per request requirements.\nwhen the client has not requested specific locale the implementation may not populate this field to conserve resources.", + "type": "string" + } + }, + "required": [ + "id", + "default_message", + "args" + ] + }, + "vapi.std.localization_param": { + "type": "object", + "properties": { + "s": { + "description": "String value associated with the parameter.\nthis field will be set when string value is used.", + "type": "string" + }, + "dt": { + "description": "Date and time value associated with the parameter. Use the LocalizationParam.format field to specify date and time display style.\nthis field will be set when date and time value is used.", + "type": "string", + "format": "date-time" + }, + "i": { + "description": "long value associated with the parameter.\nthis field will be set when long value is used.", + "type": "integer", + "format": "int64" + }, + "d": { + "description": "The double value associated with the parameter. The number of displayed fractional digits is changed via LocalizationParam.precision field.\nthis field will be set when double value is used.", + "type": "number", + "format": "double" + }, + "l": { + "description": "Nested localizable value associated with the parameter. This is useful construct to convert to human readable localized form enumerated type and boolean values. It can also be used for proper handling of pluralization and gender forms in localization. Recursive NestedLocalizableMessage instances can be used for localizing short lists of items.\nthis field will be set when nested localization message value is used.", + "$ref": "#/definitions/vapi.std.nested_localizable_message" + }, + "format": { + "description": "Format associated with the date and time value in LocalizationParam.dt field. The enumeration value SHORT_DATETIME will be used as default.\nthis may not be set if enumeration value SHORT_DATETIME default format is appropriate", + "$ref": "#/definitions/vapi.std.localization_param.date_time_format" + }, + "precision": { + "description": "Number of fractional digits to include in formatted double value.\nthis will be set when exact precision is required for rendering double numbers.", + "type": "integer", + "format": "int64" + } + } + }, + "vapi.std.localization_param.date_time_format": { + "type": "string", + "description": "The LocalizationParam.DateTimeFormat enumerated type lists possible date and time formatting options. It combines the Unicode CLDR format types - full, long, medium and short with 3 different presentations - date only, time only and combined date and time presentation.", + "enum": [ + "SHORT_DATE", + "MED_DATE", + "LONG_DATE", + "FULL_DATE", + "SHORT_TIME", + "MED_TIME", + "LONG_TIME", + "FULL_TIME", + "SHORT_DATE_TIME", + "MED_DATE_TIME", + "LONG_DATE_TIME", + "FULL_DATE_TIME" + ] + }, + "vapi.std.nested_localizable_message": { + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the localizable string or message template. \n This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.", + "type": "string" + }, + "params": { + "description": "Named Arguments to be substituted into the message template.\nservices will not populate this field when there are no parameters to be substituted", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vapi.std.localization_param" + } + } + } + } + }, + "required": [ + "id" + ] + }, + "vcenter.VM.clone_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the cloned virtual machine should be placed.\nIf field is unset, the system will use the virtual machine folder of the source virtual machine. If this results in a conflict due to other placement parameters, the virtual machine clone operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the cloned virtual machine should be placed.\nIf field is unset, the system will use the resource pool of the source virtual machine. If this results in a conflict due to other placement parameters, the virtual machine clone operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the cloned virtual machine should be placed. \n If VM.ClonePlacementSpec.host and VM.ClonePlacementSpec.resource-pool are both specified, VM.ClonePlacementSpec.resource-pool must belong to VM.ClonePlacementSpec.host. \n\n If VM.ClonePlacementSpec.host and VM.ClonePlacementSpec.cluster are both specified, VM.ClonePlacementSpec.host must be a member of VM.ClonePlacementSpec.cluster.\n\nIf this field is unset, if VM.ClonePlacementSpec.resource-pool is unset, the cloned virtual machine will use the host of the source virtual machine. if VM.ClonePlacementSpec.resource-pool is set, and the target is a standalone host, the host is used. if VM.ClonePlacementSpec.resource-pool is set, and the target is a DRS cluster, a host will be picked by DRS. if VM.ClonePlacementSpec.resource-pool is set, and the target is a cluster without DRS, InvalidArgument will be thrown.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the cloned virtual machine should be placed. \n If VM.ClonePlacementSpec.cluster and VM.ClonePlacementSpec.resource-pool are both specified, VM.ClonePlacementSpec.resource-pool must belong to VM.ClonePlacementSpec.cluster. \n\n If VM.ClonePlacementSpec.cluster and VM.ClonePlacementSpec.host are both specified, VM.ClonePlacementSpec.host must be a member of VM.ClonePlacementSpec.cluster.\n\nIf VM.ClonePlacementSpec.resource-pool or VM.ClonePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the cloned virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine clone operation unless individually overridden.\nIf field is unset, the system will use the datastore of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.clone_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.clone_spec": { + "type": "object", + "properties": { + "source": { + "description": "Virtual machine to clone from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/vcenter.VM.clone_placement_spec" + }, + "disks_to_remove": { + "description": "Set of Disks to Remove.\nIf unset, all disks will be copied. If the same identifier is in VM.CloneSpec.disks-to-update InvalidArgument fault will be returned.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "disks_to_update": { + "description": "Map of Disks to Update.\nIf unset, all disks will copied to the datastore specified in the VM.ClonePlacementSpec.datastore field of VM.CloneSpec.placement. If the same identifier is in VM.CloneSpec.disks-to-remove InvalidArgument fault will be thrown.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.VM.disk_clone_spec" + } + } + } + }, + "power_on": { + "description": "Attempt to perform a VM.CloneSpec.power-on after clone.\nIf unset, the virtual machine will not be powered on.", + "type": "boolean" + }, + "guest_customization_spec": { + "description": "Guest customization spec to apply to the virtual machine after the virtual machine is deployed.\nIf unset, the guest operating system is not customized after clone.", + "$ref": "#/definitions/vcenter.VM.guest_customization_spec" + } + }, + "required": [ + "source", + "name" + ] + }, + "vcenter.VM.clone_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.create_spec": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Guest OS.", + "$ref": "#/definitions/vcenter.vm.guest_OS" + }, + "name": { + "description": "Virtual machine name.\nIf unset, a default name will be generated by the server.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable resources on which to place the virtual machine.", + "$ref": "#/definitions/vcenter.VM.placement_spec" + }, + "hardware_version": { + "description": "Virtual hardware version.\nIf unset, defaults to the most recent version supported by the server.", + "$ref": "#/definitions/vcenter.vm.hardware.version" + }, + "boot": { + "description": "Boot configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.create_spec" + }, + "boot_devices": { + "description": "Boot device configuration.\nIf unset, a server-specific boot sequence will be used.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.entry_create_spec" + } + }, + "cpu": { + "description": "CPU configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/vcenter.vm.hardware.cpu.update_spec" + }, + "memory": { + "description": "Memory configuration.\nIf unset, guest-specific default values will be used.", + "$ref": "#/definitions/vcenter.vm.hardware.memory.update_spec" + }, + "disks": { + "description": "List of disks.\nIf unset, a single blank virtual disk of a guest-specific size will be created on the same storage as the virtual machine configuration, and will use a guest-specific host bus adapter type. If the guest-specific size is 0, no virtual disk will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.create_spec" + } + }, + "nics": { + "description": "List of Ethernet adapters.\nIf unset, no Ethernet adapters will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.create_spec" + } + }, + "cdroms": { + "description": "List of CD-ROMs.\nIf unset, no CD-ROM devices will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.create_spec" + } + }, + "floppies": { + "description": "List of floppy drives.\nIf unset, no floppy drives will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.create_spec" + } + }, + "parallel_ports": { + "description": "List of parallel ports.\nIf unset, no parallel ports will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.create_spec" + } + }, + "serial_ports": { + "description": "List of serial ports.\nIf unset, no serial ports will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.create_spec" + } + }, + "sata_adapters": { + "description": "List of SATA adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a SATA host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is SATA.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.create_spec" + } + }, + "scsi_adapters": { + "description": "List of SCSI adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a SCSI host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is SCSI. The type of the SCSI adapter will be a guest-specific default type.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.create_spec" + } + }, + "nvme_adapters": { + "description": "List of NVMe adapters.\nIf unset, any adapters necessary to connect the virtual machine's storage devices will be created; this includes any devices that explicitly specify a NVMe host bus adapter, as well as any devices that do not specify a host bus adapter if the guest's preferred adapter type is NVMe.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.create_spec" + } + }, + "storage_policy": { + "description": "The VM.StoragePolicySpec structure contains information about the storage policy that is to be associated with the virtual machine home (which contains the configuration and log files).\nIf unset the datastore default storage policy (if applicable) is applied. Currently a default storage policy is only supported by object datastores : VVol and vSAN. For non-object datastores, if unset then no storage policy would be associated with the virtual machine home.", + "$ref": "#/definitions/vcenter.VM.storage_policy_spec" + } + }, + "required": [ + "guest_OS" + ] + }, + "vcenter.VM.disk_clone_spec": { + "type": "object", + "properties": { + "datastore": { + "description": "Destination datastore to clone disk.\nThis field is currently required. In the future, if this field is unset disk will be copied to the datastore specified in the VM.ClonePlacementSpec.datastore field of VM.CloneSpec.placement.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.disk_relocate_spec": { + "type": "object", + "properties": { + "datastore": { + "description": "Destination datastore to relocate disk.\nThis field is currently required. In the future, if this field is unset, disk will use the datastore specified in VM.RelocatePlacementSpec.datastore field of VM.RelocateSpec.placement.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.filter_spec": { + "type": "object", + "properties": { + "vms": { + "description": "Identifiers of virtual machines that can match the filter.\nIf unset or empty, virtual machines with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that virtual machines must have to match the filter (see VM.Info.name).\nIf unset or empty, virtual machines with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "hosts": { + "description": "Hosts that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines on any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "Clusters that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "resource_pools": { + "description": "Resource pools that must contain the virtual machine for the virtual machine to match the filter.\nIf unset or empty, virtual machines in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "power_states": { + "description": "Power states that a virtual machine must be in to match the filter (see Power.Info.state.\nIf unset or empty, virtual machines in any power state match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.vm.power.state" + } + } + } + }, + "vcenter.VM.guest_customization_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the customization specification.\nIf unset, no guest customization is performed.", + "type": "string" + } + } + }, + "vcenter.VM.info": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Guest OS.", + "$ref": "#/definitions/vcenter.vm.guest_OS" + }, + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "identity": { + "description": "Identity of the virtual machine.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.vm.identity.info" + }, + "power_state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/vcenter.vm.power.state" + }, + "instant_clone_frozen": { + "description": "Indicates whether the virtual machine is frozen for instant clone, or not.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "boolean" + }, + "hardware": { + "description": "Virtual hardware version information.", + "$ref": "#/definitions/vcenter.vm.hardware.info" + }, + "boot": { + "description": "Boot configuration.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.info" + }, + "boot_devices": { + "description": "Boot device configuration. If the list has no entries, a server-specific default boot sequence is used.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.entry" + } + }, + "cpu": { + "description": "CPU configuration.", + "$ref": "#/definitions/vcenter.vm.hardware.cpu.info" + }, + "memory": { + "description": "Memory configuration.", + "$ref": "#/definitions/vcenter.vm.hardware.memory.info" + }, + "disks": { + "description": "List of disks.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.info" + } + } + } + }, + "nics": { + "description": "List of Ethernet adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.info" + } + } + } + }, + "cdroms": { + "description": "List of CD-ROMs.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Cdrom. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.info" + } + } + } + }, + "floppies": { + "description": "List of floppy drives.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Floppy. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.info" + } + } + } + }, + "parallel_ports": { + "description": "List of parallel ports.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.info" + } + } + } + }, + "serial_ports": { + "description": "List of serial ports.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.info" + } + } + } + }, + "sata_adapters": { + "description": "List of SATA adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.info" + } + } + } + }, + "scsi_adapters": { + "description": "List of SCSI adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.info" + } + } + } + }, + "nvme_adapters": { + "description": "List of NVMe adapters.\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.info" + } + } + } + } + }, + "required": [ + "guest_OS", + "name", + "power_state", + "hardware", + "boot", + "boot_devices", + "cpu", + "memory", + "disks", + "nics", + "cdroms", + "floppies", + "parallel_ports", + "serial_ports", + "sata_adapters", + "scsi_adapters" + ] + }, + "vcenter.VM.instant_clone_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the InstantCloned virtual machine should be placed.\nIf field is unset, the system will use the virtual machine folder of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the InstantCloned virtual machine should be placed.\nIf field is unset, the system will use the resource pool of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the InstantCloned virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine InstantClone operation.\nIf field is unset, the system will use the datastore of the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.instant_clone_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.instant_clone_spec": { + "type": "object", + "properties": { + "source": { + "description": "Virtual machine to InstantClone from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the new virtual machine.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/vcenter.VM.instant_clone_placement_spec" + }, + "nics_to_update": { + "description": "Map of NICs to update.\nIf unset, no NICs will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.update_spec" + } + } + } + }, + "disconnect_all_nics": { + "description": "Indicates whether all NICs on the destination virtual machine should be disconnected from the newtwork\nIf unset, connection status of all NICs on the destination virtual machine will be the same as on the source virtual machine.", + "type": "boolean" + }, + "parallel_ports_to_update": { + "description": "Map of parallel ports to Update.\nIf unset, no parallel ports will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.update_spec" + } + } + } + }, + "serial_ports_to_update": { + "description": "Map of serial ports to Update.\nIf unset, no serial ports will be updated.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.update_spec" + } + } + } + }, + "bios_uuid": { + "description": "128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.\nIf unset, will be generated.", + "type": "string" + } + }, + "required": [ + "source", + "name" + ] + }, + "vcenter.VM.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.VM.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nThis field is currently required if both VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are unset. In the future, if this field is unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.host. \n\n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nThis field may be unset if VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.cluster. \n\n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.host are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nIf VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are created as part of the virtual machine creation operation.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable storage for the virtual machine; if storage cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.register_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nThis field is currently required if both VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are unset. In the future, if this field is unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.host. \n\n If VM.ComputePlacementSpec.host and VM.ComputePlacementSpec.cluster are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nThis field may be unset if VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.resource-pool are both specified, VM.ComputePlacementSpec.resource-pool must belong to VM.ComputePlacementSpec.cluster. \n\n If VM.ComputePlacementSpec.cluster and VM.ComputePlacementSpec.host are both specified, VM.ComputePlacementSpec.host must be a member of VM.ComputePlacementSpec.cluster.\n\nIf VM.ComputePlacementSpec.resource-pool or VM.ComputePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "vcenter.VM.register_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.register_spec": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore on which the virtual machine's configuration state is stored.\nIf unset, VM.RegisterSpec.path must also be unset and VM.RegisterSpec.datastore-path must be set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "path": { + "description": "Path to the virtual machine's configuration file on the datastore corresponding to {@link #datastore).\nIf unset, VM.RegisterSpec.datastore must also be unset and VM.RegisterSpec.datastore-path must be set.", + "type": "string" + }, + "datastore_path": { + "description": "Datastore path for the virtual machine's configuration file in the format \"[datastore name] path\". For example \"[storage1] Test-VM/Test-VM.vmx\".\nIf unset, both VM.RegisterSpec.datastore and VM.RegisterSpec.path must be set.", + "type": "string" + }, + "name": { + "description": "Virtual machine name.\nIf unset, the display name from the virtual machine's configuration file will be used.", + "type": "string" + }, + "placement": { + "description": "Virtual machine placement information.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose suitable resources on which to place the virtual machine.", + "$ref": "#/definitions/vcenter.VM.register_placement_spec" + } + } + }, + "vcenter.VM.relocate_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nIf this field is unset, the virtual machine will stay in the current folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nIf this field is unset, the virtual machine will stay in the current resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. \n If VM.RelocatePlacementSpec.host and VM.RelocatePlacementSpec.resource-pool are both specified, VM.RelocatePlacementSpec.resource-pool must belong to VM.RelocatePlacementSpec.host. \n\n If VM.RelocatePlacementSpec.host and VM.RelocatePlacementSpec.cluster are both specified, VM.RelocatePlacementSpec.host must be a member of VM.RelocatePlacementSpec.cluster.\n\nIf this field is unset, if VM.RelocatePlacementSpec.resource-pool is unset, the virtual machine will remain on the current host. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a standalone host, the host is used. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a DRS cluster, a host will be picked by DRS. if VM.RelocatePlacementSpec.resource-pool is set, and the target is a cluster without DRS, InvalidArgument will be thrown.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster into which the virtual machine should be placed. \n If VM.RelocatePlacementSpec.cluster and VM.RelocatePlacementSpec.resource-pool are both specified, VM.RelocatePlacementSpec.resource-pool must belong to VM.RelocatePlacementSpec.cluster. \n\n If VM.RelocatePlacementSpec.cluster and VM.RelocatePlacementSpec.host are both specified, VM.RelocatePlacementSpec.host must be a member of VM.RelocatePlacementSpec.cluster.\n\nIf VM.RelocatePlacementSpec.resource-pool or VM.RelocatePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "datastore": { + "description": "Datastore on which the virtual machine's configuration state should be stored. This datastore will also be used for any virtual disks that are associated with the virtual machine, unless individually overridden.\nIf this field is unset, the virtual machine will remain on the current datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + } + }, + "vcenter.VM.relocate_spec": { + "type": "object", + "properties": { + "placement": { + "description": "Virtual machine placement information.\nIf this field is unset, the system will use the values from the source virtual machine. If specified, each field will be used for placement. If the fields result in disjoint placement the operation will fail. If the fields along with the other existing placement of the virtual machine result in disjoint placement the operation will fail.", + "$ref": "#/definitions/vcenter.VM.relocate_placement_spec" + }, + "disks": { + "description": "Individual disk relocation map.\nIf unset, all disks will migrate to the datastore specified in the VM.RelocatePlacementSpec.datastore field of VM.RelocateSpec.placement.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.VM.disk_relocate_spec" + } + } + } + } + } + }, + "vcenter.VM.relocate_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.VM.storage_policy_spec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy which should be associated with the virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "policy" + ] + }, + "vcenter.VM.summary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of the virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the Virtual machine.", + "type": "string" + }, + "power_state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/vcenter.vm.power.state" + }, + "cpu_count": { + "description": "Number of CPU cores.\nThis field will be unset if the virtual machine configuration is not available. For example, the configuration information would be unavailable if the server is unable to access the virtual machine files on disk, and is often also unavailable during the intial phases of virtual machine creation.", + "type": "integer", + "format": "int64" + }, + "memory_size_MiB": { + "description": "Memory size in mebibytes.\nThis field will be unset if the virtual machine configuration is not available. For example, the configuration information would be unavailable if the server is unable to access the virtual machine files on disk, and is often also unavailable during the intial phases of virtual machine creation.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "vm", + "name", + "power_state" + ] + }, + "vcenter.VM_clone": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.clone_spec", + "description": "Virtual machine clone specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_clone_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.clone_spec", + "description": "Virtual machine clone specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.create_spec", + "description": "Virtual machine specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_instant_clone": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.instant_clone_spec", + "description": "Virtual machine InstantCloneSpec." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_register": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.register_spec", + "description": "Specification of the location of the virtual machine files and the placement of the new virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_relocate": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.relocate_spec", + "description": "Relocate specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_relocate_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.VM.relocate_spec", + "description": "Relocate specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.VM_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.VM.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.tls.info": { + "type": "object", + "properties": { + "version": { + "description": "Version (version number) value from the certificate.", + "type": "integer", + "format": "int64" + }, + "serial_number": { + "description": "SerialNumber value from the certificate.", + "type": "string" + }, + "signature_algorithm": { + "description": "Signature algorithm name from the certificate.", + "type": "string" + }, + "issuer_dn": { + "description": "Issuer (issuer distinguished name) value from the certificate.", + "type": "string" + }, + "valid_from": { + "description": "validFrom specify the start date of the certificate.", + "type": "string", + "format": "date-time" + }, + "valid_to": { + "description": "validTo specify the end date of the certificate.", + "type": "string", + "format": "date-time" + }, + "subject_dn": { + "description": "Subject (subject distinguished name) value from the certificate.", + "type": "string" + }, + "thumbprint": { + "description": "Thumbprint value from the certificate.", + "type": "string" + }, + "is_CA": { + "description": "Certificate constraints isCA from the critical BasicConstraints extension, (OID = 2.5.29.19).", + "type": "boolean" + }, + "path_length_constraint": { + "description": "Certificate constraints path length from the critical BasicConstraints extension, (OID = 2.5.29.19).", + "type": "integer", + "format": "int64" + }, + "key_usage": { + "description": "Collection of keyusage contained in the certificate.", + "type": "array", + "items": { + "type": "string" + } + }, + "extended_key_usage": { + "description": "Collection of extended keyusage that contains details for which the certificate can be used for.", + "type": "array", + "items": { + "type": "string" + } + }, + "subject_alternative_name": { + "description": "Collection of subject alternative names.", + "type": "array", + "items": { + "type": "string" + } + }, + "authority_information_access_uri": { + "description": "Collection of authority information access URI.", + "type": "array", + "items": { + "type": "string" + } + }, + "cert": { + "description": "TLS certificate in PEM format.", + "type": "string" + } + }, + "required": [ + "version", + "serial_number", + "signature_algorithm", + "issuer_dn", + "valid_from", + "valid_to", + "subject_dn", + "thumbprint", + "is_CA", + "path_length_constraint", + "key_usage", + "extended_key_usage", + "subject_alternative_name", + "authority_information_access_uri", + "cert" + ] + }, + "vcenter.certificate_management.vcenter.tls.replace_spec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset the key size will be '3072'.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "The common name of the host for which certificate is generated\nIf unset will default to PNID of host.", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject. \n CA Browser forum announced that \"CAs MUST NOT include the organizationalUnitName field\". So OU is no longer needed and an empty string should be used to leave it unset.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions", + "type": "string" + }, + "subject_alt_name": { + "description": "SubjectAltName is list of Dns Names and Ip addresses\nIf unset PNID of host will be used as IPAddress or Hostname for certificate generation .", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "organization", + "organization_unit", + "locality", + "state_or_province", + "country", + "email_address" + ] + }, + "vcenter.certificate_management.vcenter.tls.spec": { + "type": "object", + "properties": { + "cert": { + "description": "Certificate string in PEM format.", + "type": "string" + }, + "key": { + "description": "Private key string in PEM format.\nIf unset the private key from the certificate store will be used. It is required when replacing the certificate with a third party signed certificate.", + "type": "string", + "format": "password" + }, + "root_cert": { + "description": "Third party Root CA certificate in PEM format.\nIf unset the new third party root CA certificate will not be added to the trust store. It is required when replacing the certificate with a third party signed certificate if the root certificate of the third party is not already a trusted root.", + "type": "string" + } + }, + "required": [ + "cert" + ] + }, + "vcenter.certificate_management.vcenter.tls_csr.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_csr.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.tls_csr.info": { + "type": "object", + "properties": { + "csr": { + "description": "Certificate Signing Request in PEM format.", + "type": "string" + } + }, + "required": [ + "csr" + ] + }, + "vcenter.certificate_management.vcenter.tls_csr.spec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset, the key size will be 3072 bits.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "Common name field in certificate subject.\nIf unset, the common name will be the PNID.", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject. \n CA Browser forum announced that \"CAs MUST NOT include the organizationalUnitName field\". So OU is no longer needed and an empty string should be used to leave it unset.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions", + "type": "string" + }, + "subject_alt_name": { + "description": "Subject Alternative Name field is list of Dns Names and Ip addresses.\nIf unset, the subject alternative name will contain the PNID.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "organization", + "organization_unit", + "locality", + "state_or_province", + "country", + "email_address" + ] + }, + "vcenter.certificate_management.vcenter.tls_csr_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls_csr.spec", + "description": "The information needed to create a CSR." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.certificate_management.vcenter.tls_renew": { + "type": "object", + "properties": { + "duration": { + "type": "integer", + "format": "int64", + "description": "The duration (in days) of the new TLS certificate. The duration should be less than or equal to 730 days.\nIf unset, the duration will be 730 days (two years)." + } + } + }, + "vcenter.certificate_management.vcenter.tls_replace_vmca_signed": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls.replace_spec", + "description": "The information needed to generate VMCA signed Machine SSL" + } + }, + "required": [ + "spec" + ] + }, + "vcenter.certificate_management.vcenter.tls_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.tls_set": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.tls.spec", + "description": "The information needed to replace the TLS certificate." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains.create_spec": { + "type": "object", + "properties": { + "cert_chain": { + "description": "Certificate chain in base64 encoding", + "$ref": "#/definitions/vcenter.certificate_management.x509_cert_chain" + }, + "chain": { + "description": "Unique identifier for this trusted root. Client can specify at creation as long as it is unique, otherwise one will be generated. An example of a client providing the identifier would be if this trusted root is associated with a VC trust. In this case the identifier would be the domain id.\nA unique id will be generated if not given.", + "type": "string" + } + }, + "required": [ + "cert_chain" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains.info": { + "type": "object", + "properties": { + "cert_chain": { + "description": "A certificate chain in base64 encoding", + "$ref": "#/definitions/vcenter.certificate_management.x509_cert_chain" + } + }, + "required": [ + "cert_chain" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains.summary": { + "type": "object", + "properties": { + "chain": { + "description": "Unique identifier for chain.", + "type": "string" + } + }, + "required": [ + "chain" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains.create_spec", + "description": "The information needed to create a trusted root certificate chain." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.certificate_management.vcenter.trusted_root_chains_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.trusted_root_chains.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.certificate_management.vcenter.vmca_root.create_spec": { + "type": "object", + "properties": { + "key_size": { + "description": "The size of the key to be used for public and private key generation.\nIf unset the key size will be 3072.", + "type": "integer", + "format": "int64" + }, + "common_name": { + "description": "The common name of the host for which certificate is generated.\nIf unset the common name will be the primary network identifier (PNID) of the vCenter Virtual Server Appliance (VCSA).", + "type": "string" + }, + "organization": { + "description": "Organization field in certificate subject.\nIf unset the organization will be 'VMware'.", + "type": "string" + }, + "organization_unit": { + "description": "Organization unit field in certificate subject.\nIf unset the organization unit will not be set in the certificate subject.", + "type": "string" + }, + "locality": { + "description": "Locality field in certificate subject.\nIf unset the locality will be 'Palo Alto'.", + "type": "string" + }, + "state_or_province": { + "description": "State field in certificate subject.\nIf unset the state will be 'California'.", + "type": "string" + }, + "country": { + "description": "Country field in certificate subject.\nIf unset the country will be 'US'.", + "type": "string" + }, + "email_address": { + "description": "Email field in Certificate extensions.\nIf unset the emailAddress will be 'email@acme.com'.", + "type": "string" + }, + "subject_alt_name": { + "description": "SubjectAltName is list of Dns Names and Ip addresses.\nIf unset PNID of host will be used as IPAddress or Hostname for certificate generation.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "vcenter.certificate_management.vcenter.vmca_root_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.certificate_management.vcenter.vmca_root.create_spec", + "description": "The information needed to generate VMCA signed Root Certificate.\nDefault values will be set for all null parameters." + } + } + }, + "vcenter.certificate_management.x509_cert_chain": { + "type": "object", + "properties": { + "cert_chain": { + "description": "Certificate chain in base64 format", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "cert_chain" + ] + }, + "vcenter.cluster.filter_spec": { + "type": "object", + "properties": { + "clusters": { + "description": "Identifiers of clusters that can match the filter.\nIf unset or empty, clusters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that clusters must have to match the filter (see Cluster.Info.name).\nIf unset or empty, clusters with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the cluster for the cluster to match the filter.\nIf unset or empty, clusters in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.cluster.info": { + "type": "object", + "properties": { + "name": { + "description": "The name of the cluster", + "type": "string" + }, + "resource_pool": { + "description": "Identifier of the root resource pool of the cluster\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + } + }, + "required": [ + "name", + "resource_pool" + ] + }, + "vcenter.cluster.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.cluster.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.cluster.summary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "name": { + "description": "Name of the cluster.", + "type": "string" + }, + "ha_enabled": { + "description": "Flag indicating whether the vSphere HA feature is enabled for the cluster.", + "type": "boolean" + }, + "drs_enabled": { + "description": "Flag indicating whether the vSphere DRS service is enabled for the cluster.", + "type": "boolean" + } + }, + "required": [ + "cluster", + "name", + "ha_enabled", + "drs_enabled" + ] + }, + "vcenter.cluster_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.cluster.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.day_of_week": { + "type": "string", + "description": "The DayOfWeek enumerated type describes the supported days of the week to run a specific operation for a container registry.", + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ] + }, + "vcenter.content.registries.harbor.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.harbor.create_spec": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster hosting the registry.\nIf unset, registry will not be created on a specified cluster. This is required in current version, since Harbor can only be created on a cluster with Kubernetes enabled.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "garbage_collection": { + "description": "Garbage collection configuration for the Harbor registry.\nIf unset, a default configuration is set, Recurrence#WEEKLY, DayOfWeek#SATURDAY, GarbageCollection#hour is 2, GarbageCollection#minute is 0.", + "$ref": "#/definitions/vcenter.content.registries.harbor.garbage_collection" + }, + "storage": { + "description": "Storage associated with the Harbor registry. The list contains only one storage backing in this version.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.content.registries.harbor.storage_spec" + } + } + }, + "required": [ + "storage" + ] + }, + "vcenter.content.registries.harbor.garbage_collection": { + "type": "object", + "properties": { + "type": { + "description": "Frequency of garbage collection.", + "$ref": "#/definitions/vcenter.content.registries.recurrence" + }, + "day_of_week": { + "description": "Day of the week when garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is WEEKLY.", + "$ref": "#/definitions/vcenter.content.registries.day_of_week" + }, + "hour": { + "description": "Hour at which garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is one of DAILY or WEEKLY.", + "type": "integer", + "format": "int64" + }, + "minute": { + "description": "Minute at which garbage collection should run.\nThis field is optional and it is only relevant when the value of Harbor.GarbageCollection.type is one of DAILY or WEEKLY.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "type" + ] + }, + "vcenter.content.registries.harbor.info": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nIf unset, container registry is not created on the cluster specified by Harbor.CreateSpec.cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "namespace": { + "description": "Identifier of the Harbor namespace in case it is created in a Kubernetes environment.\nIf unset, no Kubernetes namespace is created for the Harbor.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: NamespaceInstance. When operations return a value of this structure as a result, the field will be an identifier for the resource type: NamespaceInstance.", + "type": "string" + }, + "version": { + "description": "Version of the registry.", + "type": "string" + }, + "creation_time": { + "description": "The date and time when the harbor registry was created.", + "type": "string", + "format": "date-time" + }, + "ui_access_url": { + "description": "URL to access the UI of the registry.", + "type": "string", + "format": "uri" + }, + "cert_chain": { + "description": "Harbor certificate chain in base64 format.", + "type": "array", + "items": { + "type": "string" + } + }, + "garbage_collection": { + "description": "Garbage collection information for the registry.", + "$ref": "#/definitions/vcenter.content.registries.harbor.garbage_collection" + }, + "storage": { + "description": "Storage information associated with the registry.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.content.registries.harbor.storage_info" + } + }, + "health": { + "description": "Health status of the container registry.", + "$ref": "#/definitions/vcenter.content.registries.health.info" + } + }, + "required": [ + "version", + "creation_time", + "ui_access_url", + "cert_chain", + "garbage_collection", + "storage", + "health" + ] + }, + "vcenter.content.registries.harbor.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.content.registries.harbor.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.harbor.projects.config_status": { + "type": "string", + "description": "The Projects.ConfigStatus enumerated type describes the status of reaching the desired configuration state for the Harbor project.", + "enum": [ + "PENDING", + "REMOVING", + "ERROR", + "READY" + ] + }, + "vcenter.content.registries.harbor.projects.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.harbor.projects.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "scope": { + "description": "Access type of a Harbor project.", + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.scope" + } + }, + "required": [ + "name", + "scope" + ] + }, + "vcenter.content.registries.harbor.projects.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "config_status": { + "description": "The status of the Harbor project.", + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.config_status" + }, + "scope": { + "description": "The access type of a Harbor project.", + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.scope" + }, + "creation_time": { + "description": "The date and time when the harbor project creation API was triggered and project identifier generated.", + "type": "string", + "format": "date-time" + }, + "update_time": { + "description": "The date and time when the harbor project purge API was triggered. In case no purge was triggered, Projects.Info.update-time is same as Projects.Info.creation-time.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is READY.", + "type": "string", + "format": "date-time" + }, + "access_url": { + "description": "URL to access the harbor project through docker client.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is READY.", + "type": "string", + "format": "uri" + }, + "message": { + "description": "Details about the ERROR project status.\nThis field is optional and it is only relevant when the value of Projects.Info.config-status is ERROR.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "name", + "config_status", + "scope", + "creation_time" + ] + }, + "vcenter.content.registries.harbor.projects.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.harbor.projects.scope": { + "type": "string", + "description": "The Projects.Scope enumerated type in a project defines access levels of the project.", + "enum": [ + "PUBLIC", + "PRIVATE" + ] + }, + "vcenter.content.registries.harbor.projects.summary": { + "type": "object", + "properties": { + "project": { + "description": "Identifier of the harbor project.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.content.Registry.Harbor.Project. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.content.Registry.Harbor.Project.", + "type": "string" + }, + "name": { + "description": "Name of the Harbor project. Should be between 1-63 characters long alphanumeric string and may contain the following characters: a-z,0-9, and '-'. Must be starting with characters or numbers, with the '-' character allowed anywhere except the first or last character.", + "type": "string" + }, + "scope": { + "description": "Access type of a Harbor project.", + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.scope" + } + }, + "required": [ + "project", + "name", + "scope" + ] + }, + "vcenter.content.registries.harbor.projects_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.create_spec", + "description": "Information used to create the Harbor project." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.content.registries.harbor.projects_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.content.registries.harbor.projects.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.harbor.storage_info": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "capacity": { + "description": "Total capacity for the registry storage (in mebibytes). This is the storage limit set on the Harbor registry. If a storage limit was not set on the registry, the default registry capacity - 204800 mebibytes is used.", + "type": "integer", + "format": "int64" + }, + "used": { + "description": "Overall storage used by the registry (in mebibytes). This is the sum of used storage associated with storage policies configured for the registry.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy", + "capacity", + "used" + ] + }, + "vcenter.content.registries.harbor.storage_spec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "limit": { + "description": "The maximum amount of storage (in mebibytes) which can be utilized by the registry for this specification.\nIf unset, a default limit of 204800 mebibytes will be set as the registry's storage capacity.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy" + ] + }, + "vcenter.content.registries.harbor.summary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier of the cluster.\nIf unset, container registry is not created on the cluster specified by Harbor.CreateSpec.cluster.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "registry": { + "description": "Identifier of the registry.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.content.Registry. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.content.Registry.", + "type": "string" + }, + "version": { + "description": "Version of the registry.", + "type": "string" + }, + "ui_access_url": { + "description": "URL to access the UI of the registry.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "registry", + "version", + "ui_access_url" + ] + }, + "vcenter.content.registries.harbor_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "A unique token generated on the client for each creation request. The token should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.\nIf not specified, creation is not idempotent." + }, + "spec": { + "$ref": "#/definitions/vcenter.content.registries.harbor.create_spec", + "description": "Specification for creating the Harbor registry." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.content.registries.harbor_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.content.registries.harbor.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.health.info": { + "type": "object", + "properties": { + "status": { + "description": "Container registry status.", + "$ref": "#/definitions/vcenter.content.registries.health.status" + }, + "details": { + "description": "Details about the status.\nIf unset, message details are not required for taking actions.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "status" + ] + }, + "vcenter.content.registries.health.status": { + "type": "string", + "description": "The Health.Status enumerated type describes the status of the container registry.", + "enum": [ + "STARTING", + "RUNNING", + "WARNING", + "ERROR", + "DELETING" + ] + }, + "vcenter.content.registries.health_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.content.registries.health.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.content.registries.recurrence": { + "type": "string", + "description": "The Recurrence enumerated type defines the supported values for how often to run a specific operation for a container registry.", + "enum": [ + "NONE", + "DAILY", + "WEEKLY" + ] + }, + "vcenter.datacenter.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.datacenter.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the datacenter to be created.", + "type": "string" + }, + "folder": { + "description": "Datacenter folder in which the new datacenter should be created.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the datacenter; if a folder cannot be chosen, the datacenter creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "vcenter.datacenter.filter_spec": { + "type": "object", + "properties": { + "datacenters": { + "description": "Identifiers of datacenters that can match the filter.\nIf unset or empty, datacenters with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that datacenters must have to match the filter (see Datacenter.Info.name).\nIf unset or empty, datacenters with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the datacenters for the datacenter to match the filter.\nIf unset or empty, datacenters in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.datacenter.info": { + "type": "object", + "properties": { + "name": { + "description": "The name of the datacenter.", + "type": "string" + }, + "datastore_folder": { + "description": "The root datastore folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "host_folder": { + "description": "The root host and cluster folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "network_folder": { + "description": "The root network folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "vm_folder": { + "description": "The root virtual machine folder associated with the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "name", + "datastore_folder", + "host_folder", + "network_folder", + "vm_folder" + ] + }, + "vcenter.datacenter.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.datacenter.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.datacenter.summary": { + "type": "object", + "properties": { + "datacenter": { + "description": "Identifier of the datacenter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datacenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datacenter.", + "type": "string" + }, + "name": { + "description": "Name of the datacenter.", + "type": "string" + } + }, + "required": [ + "datacenter", + "name" + ] + }, + "vcenter.datacenter_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.datacenter.create_spec", + "description": "Specification for the new datacenter to be created." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.datacenter_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.datacenter.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.datastore.default_policy_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.datastore.filter_spec": { + "type": "object", + "properties": { + "datastores": { + "description": "Identifiers of datastores that can match the filter.\nIf unset or empty, datastores with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datastore. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datastore.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that datastores must have to match the filter (see Datastore.Info.name).\nIf unset or empty, datastores with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "types": { + "description": "Types that datastores must have to match the filter (see Datastore.Summary.type).\nIf unset or empty, datastores with any type match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.datastore.type" + } + }, + "folders": { + "description": "Folders that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the datastore for the datastore to match the filter.\nIf unset or empty, datastores in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.datastore.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the datastore.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the datastore.", + "$ref": "#/definitions/vcenter.datastore.type" + }, + "accessible": { + "description": "Whether or not this datastore is accessible.", + "type": "boolean" + }, + "free_space": { + "description": "Available space of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the available space of this datastore is not known.", + "type": "integer", + "format": "int64" + }, + "multiple_host_access": { + "description": "Whether or not more than one host in the datacenter has been configured with access to the datastore.", + "type": "boolean" + }, + "thin_provisioning_supported": { + "description": "Whether or not the datastore supports thin provisioning on a per file basis. When thin provisioning is used, backing storage is lazily allocated.", + "type": "boolean" + } + }, + "required": [ + "name", + "type", + "accessible", + "multiple_host_access", + "thin_provisioning_supported" + ] + }, + "vcenter.datastore.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.datastore.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.datastore.summary": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "name": { + "description": "Name of the datastore.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the datatore.", + "$ref": "#/definitions/vcenter.datastore.type" + }, + "free_space": { + "description": "Available space of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the available space of this datastore is not known.", + "type": "integer", + "format": "int64" + }, + "capacity": { + "description": "Capacity of this datastore, in bytes. \n The server periodically updates this value.\n\nThis field will be unset if the capacity of this datastore is not known.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "datastore", + "name", + "type" + ] + }, + "vcenter.datastore.type": { + "type": "string", + "enum": [ + "VMFS", + "NFS", + "NFS41", + "CIFS", + "VSAN", + "VFFS", + "VVOL" + ] + }, + "vcenter.datastore_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.datastore.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.appliance_size": { + "type": "string", + "description": "The ApplianceSize enumerated type defines the vCenter Server Appliance sizes.", + "enum": [ + "TINY", + "SMALL", + "MEDIUM", + "LARGE", + "XLARGE" + ] + }, + "vcenter.deployment.appliance_state": { + "type": "string", + "description": "The ApplianceState enumerated type defines the various states the vCenter Appliance can be in.", + "enum": [ + "NOT_INITIALIZED", + "INITIALIZED", + "CONFIG_IN_PROGRESS", + "QUESTION_RAISED", + "FAILED", + "CONFIGURED" + ] + }, + "vcenter.deployment.appliance_type": { + "type": "string", + "description": "The ApplianceType enumerated type defines the vCenter appliance types.", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "vcenter.deployment.check_info": { + "type": "object", + "properties": { + "status": { + "description": "Status of the check.", + "$ref": "#/definitions/vcenter.deployment.check_status" + }, + "result": { + "description": "Result of the check.\nThis field will be unset if result is not available at the current step of the task.", + "$ref": "#/definitions/vcenter.deployment.notifications" + }, + "source_info": { + "description": "Information collected from the source machine.\nThis field is used only for upgrade and migrate.", + "$ref": "#/definitions/vcenter.deployment.source_info" + } + }, + "required": [ + "status" + ] + }, + "vcenter.deployment.check_status": { + "type": "string", + "description": "The CheckStatus enumerated type defines the status of the checks.", + "enum": [ + "SUCCESS", + "FAILED" + ] + }, + "vcenter.deployment.data_migration_estimate": { + "type": "object", + "properties": { + "estimated_export_time": { + "description": "The time estimated to export data from the source vCenter Server.", + "type": "integer", + "format": "int64" + }, + "estimated_import_time": { + "description": "The time estimated to import data to the upgraded vCenter Server.", + "type": "integer", + "format": "int64" + }, + "required_free_disk_space_on_source": { + "description": "The extra free space required on source vCenter Server.", + "type": "number", + "format": "double" + } + }, + "required": [ + "estimated_export_time", + "estimated_import_time", + "required_free_disk_space_on_source" + ] + }, + "vcenter.deployment.data_migration_info": { + "type": "object", + "properties": { + "core": { + "description": "Migrate only core data and configuration from vCenter Server. Events, tasks, and stats will not be migrated.", + "$ref": "#/definitions/vcenter.deployment.data_migration_estimate" + }, + "core_events_tasks": { + "description": "Migrate core, events, and tasks from vCenter Server. Stats will not be migrated.", + "$ref": "#/definitions/vcenter.deployment.data_migration_estimate" + }, + "all": { + "description": "Migrate all data from vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.data_migration_estimate" + }, + "core_events_tasks_with_deferred": { + "description": "Migrate core, events, and tasks from vCenter Server. Events and tasks will be migrated after the upgrade. Stats will not be migrated.\nThis field will be available only if the source database is using an external database.", + "$ref": "#/definitions/vcenter.deployment.data_migration_estimate" + }, + "all_with_deferred": { + "description": "Migrate all data from vCenter Server. Events, tasks, and stats will be migrated after the upgrade.\nThis field will be available only if the source database is using an external database.", + "$ref": "#/definitions/vcenter.deployment.data_migration_estimate" + } + }, + "required": [ + "core", + "core_events_tasks", + "all" + ] + }, + "vcenter.deployment.history_migration_option": { + "type": "string", + "description": "The HistoryMigrationOption enumerated type defines the vCenter history migration option choices.", + "enum": [ + "EVENTS_TASKS", + "ALL" + ] + }, + "vcenter.deployment.history_migration_spec": { + "type": "object", + "properties": { + "data_set": { + "description": "Defines what part of vCenter historical data will be migrated along with core data.", + "$ref": "#/definitions/vcenter.deployment.history_migration_option" + }, + "defer_import": { + "description": "Defines how vCenter history will be migrated. If set to true, vCenter history will be migrated separately after successful upgrade(supported scenarios are upgrade from 6.0 or 6.5 to 6.7) or migration, otherwise it will be migrated along with core data during the upgrade or migration process. vCSA upgrade with deferred import is no longer supported for target version 7.0 and later.\nIf unset, vCenter historical data won't be deferred and will be migrated along with core data.", + "type": "boolean" + } + }, + "required": [ + "data_set" + ] + }, + "vcenter.deployment.import_history.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter history import task", + "type": "string" + }, + "description": { + "description": "Description of the vCenter history import task.", + "type": "string" + } + }, + "required": [ + "name", + "description" + ] + }, + "vcenter.deployment.import_history.info": { + "type": "object", + "properties": { + "progress": { + "description": "The progress info of this task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, FAILED, BLOCKED, or SUCCEEDED.", + "$ref": "#/definitions/cis.task.progress" + }, + "result": { + "description": "Result of the operation. If an operation reports partial results before it completes, this field could be set before the cis.task.CommonInfo#status has the value SUCCEEDED. The value could change as the operation progresses.\nThis field will be unset if result is not available at the current step of the operation.", + "$ref": "#/definitions/vcenter.deployment.notifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "vcenter.deployment.import_history_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.import_history.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.import_history_start": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.import_history.create_spec", + "description": "An optional ImportHistory.CreateSpec info that can be passed for creating a new historical data import task and starts it.\nIf unset, default value will be: \n - name : vcenter.deployment.history.import\n - description : vCenter Server history import" + } + } + }, + "vcenter.deployment.info": { + "type": "object", + "properties": { + "state": { + "description": "State of the vCenter Server Appliance.", + "$ref": "#/definitions/vcenter.deployment.appliance_state" + }, + "progress": { + "description": "The progress info of the current appliance status.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/cis.task.progress" + }, + "subtask_order": { + "description": "The ordered list of subtasks for this deployment operation.\nOnly set when the appliance state is RUNNING_IN_PROGRESS, FAILED, CANCELLED and SUCCEEDED.", + "type": "array", + "items": { + "type": "string" + } + }, + "subtasks": { + "description": "The map of the deployment subtasks and their status infomation.\nOnly set when the appliance state is RUNNING_IN_PROGRESS, FAILED, CANCELLED and SUCCEEDED.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.deployment.task" + } + } + } + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "state", + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "vcenter.deployment.install.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install.initial_config.remote_psc.thumbprint.remote_spec": { + "type": "object", + "properties": { + "address": { + "description": "The IP address or DNS resolvable name of the remote PSC.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the remote PSC.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address" + ] + }, + "vcenter.deployment.install.initial_config.remote_psc.thumbprint_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install.install_spec": { + "type": "object", + "properties": { + "vcsa_embedded": { + "description": "Spec used to configure an embedded vCenter Server. This field describes how the embedded vCenter Server appliance should be configured.", + "$ref": "#/definitions/vcenter.deployment.install.vcsa_embedded_spec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "vcsa_embedded" + ] + }, + "vcenter.deployment.install.psc.replicated.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install.psc.replicated_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.replicated_psc_spec", + "description": "Information to configure a replicated PSC." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.install.psc.standalone.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install.psc.standalone_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.standalone_psc_spec", + "description": "Information to configure a non-replicated PSC." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.install.remote_psc.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install.remote_psc_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.remote_psc_spec", + "description": "Information to connect to the remote PSC." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.install.vcsa_embedded_spec": { + "type": "object", + "properties": { + "standalone": { + "description": "Spec used to configure a standalone embedded vCenter Server. This field describes how the standalone vCenter Server appliance should be configured.\nIf unset, will default to None.", + "$ref": "#/definitions/vcenter.deployment.standalone_spec" + }, + "replicated": { + "description": "Spec used to configure a replicated embedded vCenter Server. This field describes how the replicated vCenter Server appliance should be configured.\nIf unset, will default to None.", + "$ref": "#/definitions/vcenter.deployment.replicated_spec" + }, + "ceip_enabled": { + "description": "Whether CEIP should be enabled or disabled.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "vcenter.deployment.install_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.install.install_spec", + "description": "InstallSpec parameters to run sanity check with." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.install_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.install.install_spec" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.install_start": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.install.install_spec", + "description": "InstallSpec parameters to configure the appliance install." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.location_spec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the container.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the container.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if LocationSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled. If LocationSpec.ssl-verify is true and and LocationSpec.ssl-thumbprint is unset, the CA certificate will be used for verification. If LocationSpec.ssl-verify is true and LocationSpec.ssl-thumbprint is set then the thumbprint will be used for verification. No verification will be performed if LocationSpec.ssl-verify value is set to false.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + }, + "username": { + "description": "The administrator account on the host.", + "type": "string" + }, + "password": { + "description": "The administrator account password.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname", + "username", + "password" + ] + }, + "vcenter.deployment.migrate.active_directory.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.migrate.active_directory.check_spec": { + "type": "object", + "properties": { + "dns_servers": { + "description": "IP addresses of the DNS servers of the Active Directory server.", + "type": "array", + "items": { + "type": "string" + } + }, + "domain": { + "description": "The domain name of the Active Directory server to which the migrated vCenter Server appliance should be joined.", + "type": "string" + }, + "username": { + "description": "Active Directory user that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + }, + "password": { + "description": "Active Directory user password that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + } + }, + "required": [ + "dns_servers", + "domain", + "username", + "password" + ] + }, + "vcenter.deployment.migrate.active_directory_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.migrate.active_directory.check_spec", + "description": "Information to connect to Active Directory." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.migrate.active_directory_spec": { + "type": "object", + "properties": { + "domain": { + "description": "The domain name of the Active Directory server to which the migrated vCenter Server appliance should be joined.", + "type": "string" + }, + "username": { + "description": "Active Directory user that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + }, + "password": { + "description": "Active Directory user password that has permission to join the Active Directory after the vCenter Server is migrated to appliance.", + "type": "string" + } + }, + "required": [ + "domain", + "username", + "password" + ] + }, + "vcenter.deployment.migrate.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.migrate.migrate_spec": { + "type": "object", + "properties": { + "source_vc_windows": { + "description": "Information specific to the Windows vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.migrate.source_vc_windows" + }, + "existing_migration_assistant": { + "description": "Information specific to the Migration Assistant that is running on the Windows vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.migrate.migration_assistant_spec" + }, + "history": { + "description": "Determines how vCenter history will be migrated during the migration process. vCenter history consists of: \n - Statistics\n - Events\n - Tasks\n By default only core data will be migrated. Use this spec to define which part of vCenter history data will be migrated and when.\nIf unset, only core database content will be migrated.", + "$ref": "#/definitions/vcenter.deployment.history_migration_spec" + }, + "vcsa_embedded": { + "description": "Information specific to an embedded vCenter Server.\nOnly required if the vCenter Server that is going to be migrated is an embedded vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.migrate.vcsa_embedded_spec" + }, + "psc": { + "description": "Information specific to a Platform Services Controller.\nOnly required if the vCenter Server that is going to be migrated is a Platform Services Controller.", + "$ref": "#/definitions/vcenter.deployment.migrate.psc_spec" + }, + "active_directory": { + "description": "Information specific to the Active Directory server to which the source windows vCenter Server is joined.\nIf unset, existing appliance will not be joined to an Active Directory.", + "$ref": "#/definitions/vcenter.deployment.migrate.active_directory_spec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "source_vc_windows", + "existing_migration_assistant" + ] + }, + "vcenter.deployment.migrate.migration_assistant_spec": { + "type": "object", + "properties": { + "https_port": { + "description": "The HTTPS port being used by Migration Assistant.\nIf unset, port 9123 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the Migration Assistant SSL certificate that will be used for verification.", + "type": "string" + } + }, + "required": [ + "ssl_thumbprint" + ] + }, + "vcenter.deployment.migrate.psc_spec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this Platform Services Controller migration.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "vcenter.deployment.migrate.source_vc_windows": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source Windows machine.", + "type": "string" + }, + "username": { + "description": "The SSO account with administrative privilege to perform the migration operation.", + "type": "string" + }, + "password": { + "description": "The SSO administrator account password.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname", + "username", + "password" + ] + }, + "vcenter.deployment.migrate.vcsa_embedded_spec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this embedded vCenter Server migration.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "vcenter.deployment.migrate_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.migrate.migrate_spec", + "description": "MigrateSpec parameters to run sanity check on." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.migrate_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.migrate.migrate_spec" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.migrate_start": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.migrate.migrate_spec", + "description": "MigrateSpec parameters to configure the appliance migration." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.notification": { + "type": "object", + "properties": { + "id": { + "description": "The notification id.", + "type": "string" + }, + "time": { + "description": "The time the notification was raised/found.\nOnly set if the time information is available.", + "type": "string", + "format": "date-time" + }, + "message": { + "description": "The notification message.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "resolution": { + "description": "The resolution message, if any.\nOnly set for warnings and errors.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "id", + "message" + ] + }, + "vcenter.deployment.notifications": { + "type": "object", + "properties": { + "info": { + "description": "Info notification messages reported.\nOnly set if an info was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.deployment.notification" + } + }, + "warnings": { + "description": "Warning notification messages reported.\nOnly set if an warning was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.deployment.notification" + } + }, + "errors": { + "description": "Error notification messages reported.\nOnly set if an error was reported by the task.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.deployment.notification" + } + } + } + }, + "vcenter.deployment.question.answer_spec": { + "type": "object", + "properties": { + "question_id": { + "description": "Id of the question being answered.", + "type": "string" + }, + "answer_val": { + "description": "The answer value.", + "type": "string" + } + }, + "required": [ + "question_id", + "answer_val" + ] + }, + "vcenter.deployment.question.info": { + "type": "object", + "properties": { + "questions": { + "description": "One or more questions raised during the deployment.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.deployment.question.question" + } + } + }, + "required": [ + "questions" + ] + }, + "vcenter.deployment.question.question": { + "type": "object", + "properties": { + "id": { + "description": "Id of the question raised.", + "type": "string" + }, + "question": { + "description": "Message describing the question.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "type": { + "description": "Type of the question raised.", + "$ref": "#/definitions/vcenter.deployment.question.question_type" + }, + "default_answer": { + "description": "Default answer value.", + "type": "string" + }, + "possible_answers": { + "description": "Possible answers values.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "question", + "type", + "default_answer", + "possible_answers" + ] + }, + "vcenter.deployment.question.question_type": { + "type": "string", + "description": "The Question.QuestionType enumerated type defines the type of the question raised.", + "enum": [ + "YES_NO", + "OK_CANCEL", + "ABORT_RETRY_IGNORE" + ] + }, + "vcenter.deployment.question_answer": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.question.answer_spec", + "description": "AnswerSpec with the answer to the raised question." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.question_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.question.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.remote_psc_spec": { + "type": "object", + "properties": { + "psc_hostname": { + "description": "The IP address or DNS resolvable name of the remote PSC to which this configuring vCenter Server will be registered to.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification when ssl_verify field is set to true.\nThis field is only relevant if RemotePscSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled. If RemotePscSpec.ssl-verify is true and and RemotePscSpec.ssl-thumbprint is unset, the CA certificate will be used for verification. If RemotePscSpec.ssl-verify is true and RemotePscSpec.ssl-thumbprint is set then the thumbprint will be used for verification. No verification will be performed if RemotePscSpec.ssl-verify value is set to false.\nIf unset, RemotePscSpec.ssl-verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "psc_hostname", + "sso_admin_password" + ] + }, + "vcenter.deployment.replicated_psc_spec": { + "type": "object", + "properties": { + "sso_site_name": { + "description": "The SSO sitename that will be used in PSC replication.\nIf unset, default-first-site will be used.", + "type": "string" + }, + "partner_hostname": { + "description": "The IP address or DNS resolvable name of the partner PSC appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if ReplicatedSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "partner_hostname", + "sso_admin_password" + ] + }, + "vcenter.deployment.replicated_spec": { + "type": "object", + "properties": { + "partner_hostname": { + "description": "The IP address or DNS resolvable name of the partner PSC appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the external PSC appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if ReplicatedSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + } + }, + "required": [ + "partner_hostname", + "sso_admin_password" + ] + }, + "vcenter.deployment.source_info": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source vCenter Server.", + "type": "string" + }, + "version": { + "description": "Source vCenter Server version.", + "type": "string" + }, + "deployment_type": { + "description": "Deployment type of the source vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.appliance_type" + }, + "deployment_size": { + "description": "Deployment size of the source vCenter Server.", + "$ref": "#/definitions/vcenter.deployment.appliance_size" + }, + "sso_domain_name": { + "description": "The SSO domain name of the source vCenter Server.", + "type": "string" + }, + "active_directory_domain": { + "description": "The domain name of the Active Directory server to which the source vCenter Server is joined.", + "type": "string" + }, + "dns_servers": { + "description": "IP addresses of the DNS servers of the Active Directory server.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_migration_info": { + "description": "Contains all the available migrate options, estimated export and import time and the space required to migrate the data.\nThis field will be available if estimate data is available for the appliance.", + "$ref": "#/definitions/vcenter.deployment.data_migration_info" + } + }, + "required": [ + "hostname", + "version", + "deployment_type", + "deployment_size", + "sso_domain_name", + "active_directory_domain", + "dns_servers" + ] + }, + "vcenter.deployment.standalone_psc_spec": { + "type": "object", + "properties": { + "sso_site_name": { + "description": "The SSO site name used for this PSC.\nIf unset, default-first-site will be used.", + "type": "string" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "sso_domain_name": { + "description": "The SSO domain name to be used to configure this appliance.\nIf unset, vsphere.local will be used.", + "type": "string" + } + }, + "required": [ + "sso_admin_password" + ] + }, + "vcenter.deployment.standalone_spec": { + "type": "object", + "properties": { + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string" + }, + "sso_domain_name": { + "description": "The SSO domain name to be used to configure this appliance.\nIf unset, vsphere.local will be used.", + "type": "string" + } + }, + "required": [ + "sso_admin_password" + ] + }, + "vcenter.deployment.task": { + "type": "object", + "properties": { + "progress": { + "description": "The progress info of this deployment task.\nThis field is optional and it is only relevant when the value of CommonInfo#status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "$ref": "#/definitions/cis.task.progress" + }, + "result": { + "description": "Result of the task.\nThis field will be unset if result is not available at the current step of the task.", + "$ref": "#/definitions/vcenter.deployment.notifications" + }, + "description": { + "description": "Description of the operation associated with the task.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "service": { + "description": "Identifier of the service containing the operation.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.service. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.service.", + "type": "string" + }, + "operation": { + "description": "Identifier of the operation associated with the task.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vapi.operation.", + "type": "string" + }, + "parent": { + "description": "Parent of the current task.\nThis field will be unset if the task has no parent.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: cis.task. When operations return a value of this structure as a result, the field will be an identifier for the resource type: cis.task.", + "type": "string" + }, + "target": { + "description": "Identifier of the target created by the operation or an existing one the operation performed on.\nThis field will be unset if the operation has no target or multiple targets.", + "$ref": "#/definitions/vapi.std.dynamic_ID" + }, + "status": { + "description": "Status of the operation associated with the task.", + "$ref": "#/definitions/cis.task.status" + }, + "cancelable": { + "description": "Flag to indicate whether or not the operation can be cancelled. The value may change as the operation progresses.", + "type": "boolean" + }, + "error": { + "description": "Description of the error if the operation status is \"FAILED\".\nIf unset the description of why the operation failed will be included in the result of the operation (see Info.result).", + "type": "string" + }, + "start_time": { + "description": "Time when the operation is started.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of RUNNING, BLOCKED, SUCCEEDED, or FAILED.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the operation is completed.\nThis field is optional and it is only relevant when the value of CommonInfo.status is one of SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who performed the operation.\nThis field will be unset if the operation is performed by the system.", + "type": "string" + } + }, + "required": [ + "description", + "service", + "operation", + "status", + "cancelable" + ] + }, + "vcenter.deployment.upgrade.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.check_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.upgrade.psc_spec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this Platform Services Controller upgrade.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "vcenter.deployment.upgrade.source_appliance_spec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the source appliance.", + "type": "string" + }, + "https_port": { + "description": "The HTTPS port of the source appliance.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 thumbprint of the server SSL certificate will be used for verification.\nThis field is only relevant if Upgrade.SourceApplianceSpec.ssl-verify is unset or has the value true.", + "type": "string" + }, + "ssl_verify": { + "description": "SSL verification should be enabled or disabled for the source appliance validations. By default it is enabled and will use SSL certificate for verification. If thumbprint is provided, will use thumbprint for the verification.\nIf unset, ssl_verify true will be used.", + "type": "boolean" + }, + "sso_admin_username": { + "description": "The SSO administrator account on the source appliance.", + "type": "string" + }, + "sso_admin_password": { + "description": "The SSO administrator account password.", + "type": "string", + "format": "password" + }, + "root_password": { + "description": "The password of the root user on the source appliance.", + "type": "string", + "format": "password" + }, + "ssh_verify": { + "description": "Appliance SSH verification should be enabled or disabled. By default it is disabled and will not use any verification. If thumbprint is provided, thumbprint verification will be performed.\nIf unset, ssh_verify true will be used.", + "type": "boolean" + }, + "ssh_thumbprint": { + "description": "MD5 thumbprint of the server SSH key will be used for verification.\nThis field is only relevant if Upgrade.SourceApplianceSpec.ssh-verify is unset or has the value true.", + "type": "string" + } + }, + "required": [ + "hostname", + "sso_admin_username", + "sso_admin_password", + "root_password" + ] + }, + "vcenter.deployment.upgrade.upgrade_spec": { + "type": "object", + "properties": { + "source_appliance": { + "description": "Source appliance spec.", + "$ref": "#/definitions/vcenter.deployment.upgrade.source_appliance_spec" + }, + "source_location": { + "description": "Source location spec.", + "$ref": "#/definitions/vcenter.deployment.location_spec" + }, + "history": { + "description": "Determines how vCenter history will be migrated during the upgrade process. vCenter history consists of: \n - Statistics\n - Events\n - Tasks\n By default only core data will be migrated. Use this spec to define which part of vCenter history data will be migrated and when.\nIf unset, only core database content will be migrated.", + "$ref": "#/definitions/vcenter.deployment.history_migration_spec" + }, + "vcsa_embedded": { + "description": "Information that are specific to this embedded vCenter Server.\nIf unset, ceip_enabled for embedded vcenter server upgrade will default to enabled.", + "$ref": "#/definitions/vcenter.deployment.upgrade.vcsa_embedded_spec" + }, + "psc": { + "description": "Information that are specific to this Platform Services Controller.\nIf unset, ceip_enabled for psc upgrade will default to enabled.", + "$ref": "#/definitions/vcenter.deployment.upgrade.psc_spec" + }, + "auto_answer": { + "description": "Use the default option for any questions that may come up during appliance configuration.\nIf unset, will default to false.", + "type": "boolean" + } + }, + "required": [ + "source_appliance", + "source_location" + ] + }, + "vcenter.deployment.upgrade.vcsa_embedded_spec": { + "type": "object", + "properties": { + "ceip_enabled": { + "description": "Customer experience improvement program should be enabled or disabled for this embedded vCenter Server upgrade.", + "type": "boolean" + } + }, + "required": [ + "ceip_enabled" + ] + }, + "vcenter.deployment.upgrade_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.upgrade.upgrade_spec", + "description": "UpgradeSpec parameters to run sanity check on." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment.upgrade_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.upgrade.upgrade_spec" + } + }, + "required": [ + "value" + ] + }, + "vcenter.deployment.upgrade_start": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.upgrade.upgrade_spec", + "description": "UpgradeSpec parameters to configure the appliance upgrade." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.deployment_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.deployment.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.folder.filter_spec": { + "type": "object", + "properties": { + "folders": { + "description": "Identifiers of folders that can match the filter.\nIf unset or empty, folders with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that folders must have to match the filter (see Folder.Summary.name).\nIf unset or empty, folders with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "type": { + "description": "Type that folders must have to match the filter (see Folder.Summary.type).\nIf unset, folders with any type match the filter.", + "$ref": "#/definitions/vcenter.folder.type" + }, + "parent_folders": { + "description": "Folders that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the folder for the folder to match the filter.\nIf unset or empty, folder in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.folder.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.folder.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.folder.summary": { + "type": "object", + "properties": { + "folder": { + "description": "Identifier of the folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "name": { + "description": "Name of the vCenter Server folder.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the vCenter Server folder.", + "$ref": "#/definitions/vcenter.folder.type" + } + }, + "required": [ + "folder", + "name", + "type" + ] + }, + "vcenter.folder.type": { + "type": "string", + "description": "The Folder.Type enumerated type defines the type of a vCenter Server folder. The type of a folder determines what what kinds of children can be contained in the folder.", + "enum": [ + "DATACENTER", + "DATASTORE", + "HOST", + "NETWORK", + "VIRTUAL_MACHINE" + ] + }, + "vcenter.guest.IP_settings": { + "type": "object", + "properties": { + "ipv4": { + "description": "Specification to configure IPv4 address, subnet mask and gateway info for this virtual network adapter.\nIf unset, no IPv4 addresses are set.", + "$ref": "#/definitions/vcenter.guest.ipv4" + }, + "ipv6": { + "description": "Specification to configure IPv6 address, subnet mask and gateway info for this virtual network adapter.\nIf unset, no IPv6 addresses are set.", + "$ref": "#/definitions/vcenter.guest.ipv6" + }, + "windows": { + "description": "Windows settings to be configured for this specific virtual Network adapter. This is valid only for Windows guest operating systems.\nIf unset, no specific Windows settings are set.", + "$ref": "#/definitions/vcenter.guest.windows_network_adapter_settings" + } + } + }, + "vcenter.guest.adapter_mapping": { + "type": "object", + "properties": { + "mac_address": { + "description": "The MAC address of a network adapter being customized. \n In vSphere 7.0 series, the MAC addresses must be specified in the ascending order of pciSlotNumber, otherwise a MAC address mismatch error will be reported. For further details, see the https://kb.vmware.com/s/article/87648 \n\n\n\nIf unset, the customization process maps the the settings from the list of AdapterMappings.IPSettings in the CustomizationSpec.interfaces to the virtual machine's network adapters, in PCI slot order. The first virtual network adapter on the PCI bus is assigned interfaces[0].IPSettings, the second adapter is assigned interfaces[1].IPSettings, and so on.", + "type": "string" + }, + "adapter": { + "description": "The IP settings for the associated virtual network adapter.", + "$ref": "#/definitions/vcenter.guest.IP_settings" + } + }, + "required": [ + "adapter" + ] + }, + "vcenter.guest.cloud_configuration": { + "type": "object", + "properties": { + "type": { + "description": "The type of the cloud configuration.", + "$ref": "#/definitions/vcenter.guest.cloud_configuration.type" + }, + "cloudinit": { + "description": "cloud-init configuration\nThis field is optional and it is only relevant when the value of CloudConfiguration.type is CLOUDINIT.", + "$ref": "#/definitions/vcenter.guest.cloudinit_configuration" + } + }, + "required": [ + "type" + ] + }, + "vcenter.guest.cloud_configuration.type": { + "type": "string", + "description": "The CloudConfiguration.Type enumerated type specifies different types of the cloud configuration.", + "enum": [ + "CLOUDINIT" + ] + }, + "vcenter.guest.cloudinit_configuration": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata includes the network, instance id and hostname that cloud-init processes to configure the virtual machine. It is in json or yaml format. The max size of the metadata is 524288 bytes. See https://cloudinit.readthedocs.io/en/latest/topics/datasources/ovf.html about supported meta data formats.", + "type": "string" + }, + "userdata": { + "description": "Userdata is the user customized content that cloud-init processes to configure the virtual machine. See https://cloudinit.readthedocs.io/en/latest/topics/format.html about user data formats. See https://cloudinit.readthedocs.io/en/latest/topics/modules.html# about user data modules. The max size of the userdata is 524288 bytes.\nIf unset, no cloud-init user data will be used as part of the cloud-init configuration.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + }, + "vcenter.guest.configuration_spec": { + "type": "object", + "properties": { + "windows_config": { + "description": "Guest customization specification for a Windows guest operating system\nIf unset, ConfigurationSpec.linux-config or ConfigurationSpec.cloud-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/vcenter.guest.windows_configuration" + }, + "linux_config": { + "description": "Guest customization specification for a linux guest operating system\nIf unset, ConfigurationSpec.windows-config or ConfigurationSpec.cloud-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/vcenter.guest.linux_configuration" + }, + "cloud_config": { + "description": "Guest customization specification with cloud configuration.\nIf unset, ConfigurationSpec.windows-config or ConfigurationSpec.linux-config must be set. Otherwise, an appropriate fault will be thrown.", + "$ref": "#/definitions/vcenter.guest.cloud_configuration" + } + } + }, + "vcenter.guest.customization_spec": { + "type": "object", + "properties": { + "configuration_spec": { + "description": "Settings to be applied to the guest during the customization.", + "$ref": "#/definitions/vcenter.guest.configuration_spec" + }, + "global_DNS_settings": { + "description": "Global DNS settings constitute the DNS settings that are not specific to a particular virtual network adapter.", + "$ref": "#/definitions/vcenter.guest.global_DNS_settings" + }, + "interfaces": { + "description": "IP settings that are specific to a particular virtual network adapter. The AdapterMapping structure maps a network adapter's MAC address to its IPSettings. May be empty if there are no network adapters, else should match number of network adapters configured for the VM.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.guest.adapter_mapping" + } + } + }, + "required": [ + "configuration_spec", + "global_DNS_settings", + "interfaces" + ] + }, + "vcenter.guest.customization_specs.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.guest.customization_specs.create_spec": { + "type": "object", + "properties": { + "spec": { + "description": "The specification object.", + "$ref": "#/definitions/vcenter.guest.customization_spec" + }, + "description": { + "description": "Description of the specification.", + "type": "string" + }, + "name": { + "description": "Name of the specification.", + "type": "string" + } + }, + "required": [ + "spec", + "description", + "name" + ] + }, + "vcenter.guest.customization_specs.export_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.guest.customization_specs.filter_spec": { + "type": "object", + "properties": { + "names": { + "description": "Names that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.name).\nIf unset or empty, guest customization specifications with any name match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.guest.CustomizationSpec.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "OS_type": { + "description": "Guest operating system type that guest customization specifications must have to match the filter (see CustomizationSpecs.Summary.os-type).\nIf unset, guest customization specifications with any guest operating system type match the filter.", + "$ref": "#/definitions/vcenter.guest.customization_specs.os_type" + } + } + }, + "vcenter.guest.customization_specs.format": { + "type": "string", + "description": "The CustomizationSpecs.Format enumerated type specifies the formats the customization specification can be exported to.", + "enum": [ + "JSON", + "XML" + ] + }, + "vcenter.guest.customization_specs.import_specification_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.guest.customization_specs.create_spec" + } + }, + "required": [ + "value" + ] + }, + "vcenter.guest.customization_specs.info": { + "type": "object", + "properties": { + "last_modified": { + "description": "Time when the specification was last modified.", + "type": "string", + "format": "date-time" + }, + "spec": { + "description": "The Spec object including specification and metadata information.", + "$ref": "#/definitions/vcenter.guest.customization_specs.spec" + } + }, + "required": [ + "last_modified", + "spec" + ] + }, + "vcenter.guest.customization_specs.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.guest.customization_specs.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.guest.customization_specs.os_type": { + "type": "string", + "description": "The CustomizationSpecs.OsType enumerated type defines the types of guest operating systems for which guest customization is supported.", + "enum": [ + "WINDOWS", + "LINUX" + ] + }, + "vcenter.guest.customization_specs.spec": { + "type": "object", + "properties": { + "fingerprint": { + "description": "The fingerprint is a unique identifier for a given version of the configuration. Each change to the configuration will update this value. A client cannot change this value. If specified when updating a specification, the changes will only be applied if the current fingerprint matches the specified fingerprint. This field can be used to guard against updates that has happened between the specification content was read and until it is applied.", + "type": "string" + }, + "spec": { + "description": "The specification object.", + "$ref": "#/definitions/vcenter.guest.customization_spec" + }, + "description": { + "description": "Description of the specification.", + "type": "string" + }, + "name": { + "description": "Name of the specification.", + "type": "string" + } + }, + "required": [ + "fingerprint", + "spec", + "description", + "name" + ] + }, + "vcenter.guest.customization_specs.summary": { + "type": "object", + "properties": { + "name": { + "description": "Name of the guest customization specification.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.guest.CustomizationSpec. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.guest.CustomizationSpec.", + "type": "string" + }, + "description": { + "description": "Description of the guest customization specification.", + "type": "string" + }, + "OS_type": { + "description": "Guest operating system type for which that this guest customization specification applies.", + "$ref": "#/definitions/vcenter.guest.customization_specs.os_type" + }, + "last_modified": { + "description": "Date and tme when this guest customization specification was last modified.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "description", + "OS_type", + "last_modified" + ] + }, + "vcenter.guest.customization_specs_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.guest.customization_specs.create_spec", + "description": "The information i.e. name, description and the settings i.e hostname, ip address etc for the new customization specification that needs to be created." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.guest.customization_specs_export": { + "type": "object", + "properties": { + "format": { + "$ref": "#/definitions/vcenter.guest.customization_specs.format", + "description": "The format in which the customization specification has to be returned." + } + }, + "required": [ + "format" + ] + }, + "vcenter.guest.customization_specs_import_specification": { + "type": "object", + "properties": { + "customization_spec": { + "type": "string", + "description": "content to be converted to the spec." + } + }, + "required": [ + "customization_spec" + ] + }, + "vcenter.guest.customization_specs_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.guest.customization_specs.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.guest.customization_specs_set": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.guest.customization_specs.spec", + "description": "The new specification that will overwrite the existing specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.guest.domain": { + "type": "object", + "properties": { + "type": { + "description": "The type of network to join after the customization.", + "$ref": "#/definitions/vcenter.guest.domain.type" + }, + "workgroup": { + "description": "The workgroup that the virtual machine should join.\nThis field is optional and it is only relevant when the value of Domain.type is WORKGROUP.", + "type": "string" + }, + "domain": { + "description": "The domain to which the virtual machine should be joined.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + }, + "domain_username": { + "description": "The domain user that has permission to join the domain after virtual machine is joined.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + }, + "domain_password": { + "description": "The domain user password that has permission to join the Domain.domain-username after customization.\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string", + "format": "password" + }, + "domain_OU": { + "description": "The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs. Refer to: https://docs.microsoft.com/en-us/windows-hardware/customize desktop/unattend/microsoft-windows-unattendedjoin- identification-machineobjectou\nThis field is optional and it is only relevant when the value of Domain.type is DOMAIN.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.guest.domain.type": { + "type": "string", + "description": "The Domain.Type enumerated type defines the types of network the virtual machine should join to after the customization is completed.", + "enum": [ + "WORKGROUP", + "DOMAIN" + ] + }, + "vcenter.guest.global_DNS_settings": { + "type": "object", + "properties": { + "dns_suffix_list": { + "description": "List of name resolution suffixes for the virtual network adapter. This list applies to both Windows and Linux guest customization. For Linux, this setting is global, whereas in Windows, this setting is listed on a per-adapter basis.\nIf unset, no DNS suffixes are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "dns_servers": { + "description": "List of DNS servers, for a virtual network adapter with a static IP address. If this list is empty, then the guest operating system is expected to use a DHCP server to get its DNS server settings. These settings configure the virtual machine to use the specified DNS servers. These DNS server settings are listed in the order of preference.\nIf unset, no DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "vcenter.guest.gui_unattended": { + "type": "object", + "properties": { + "auto_logon": { + "description": "Flag to determine whether or not the machine automatically logs on as Administrator. See the GuiUnattended.password property. If GuiUnattended.auto-logon flag is set, then GuiUnattended.password must not be unset or the guest customization will fail.", + "type": "boolean" + }, + "auto_logon_count": { + "description": "If the GuiUnattended.auto-logon flag is set, then this property specifies the number of times the machine should automatically log on as Administrator. Generally it should be 1, but if the setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands.", + "type": "integer", + "format": "int64" + }, + "password": { + "description": "The new administrator password for the machine. To specify that the password should be set to blank (that is, no password), leave it unset.\nIf unset, blank password will be used.", + "type": "string", + "format": "password" + }, + "time_zone": { + "description": "The time zone index for the virtual machine. Numbers correspond to time zones at https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "auto_logon", + "auto_logon_count", + "time_zone" + ] + }, + "vcenter.guest.hostname_generator": { + "type": "object", + "properties": { + "type": { + "description": "The type of the Name Generator", + "$ref": "#/definitions/vcenter.guest.hostname_generator.type" + }, + "fixed_name": { + "description": "The virtual machine name specified by the client.\nThis field is optional and it is only relevant when the value of HostnameGenerator.type is FIXED.", + "type": "string" + }, + "prefix": { + "description": "Base prefix, to which a unique number is appended.\nThis field is optional and it is only relevant when the value of HostnameGenerator.type is PREFIX.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.guest.hostname_generator.type": { + "type": "string", + "description": "The HostnameGenerator.Type enumerated type specifies different types of Name Generators.", + "enum": [ + "FIXED", + "PREFIX", + "VIRTUAL_MACHINE", + "USER_INPUT_REQUIRED" + ] + }, + "vcenter.guest.ipv4": { + "type": "object", + "properties": { + "type": { + "description": "The type of the IPv4 configuration.", + "$ref": "#/definitions/vcenter.guest.ipv4.type" + }, + "ip_address": { + "description": "The static IPv4 address\nThis field is optional and it is only relevant when the value of Ipv4.type is STATIC.", + "type": "string" + }, + "prefix": { + "description": "The IPv4 CIDR prefix, for example, 24. See http://www.oav.net/mirrors/cidr.html for netmask-to-prefix conversion.\nThis field is optional and it is only relevant when the value of Ipv4.type is STATIC.", + "type": "integer", + "format": "int64" + }, + "gateways": { + "description": "Gateways for the IPv4 address.\nIf unset, no gateways are set.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "vcenter.guest.ipv4.type": { + "type": "string", + "description": "The Ipv4.Type enumerated type specifies different types of the IPv4 configuration.", + "enum": [ + "DHCP", + "STATIC", + "USER_INPUT_REQUIRED" + ] + }, + "vcenter.guest.ipv6": { + "type": "object", + "properties": { + "type": { + "description": "The IPv6 configuration type", + "$ref": "#/definitions/vcenter.guest.ipv6.type" + }, + "ipv6": { + "description": "IPv6 address\nThis field is optional and it is only relevant when the value of Ipv6.type is STATIC.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.guest.ipv6_address" + } + }, + "gateways": { + "description": "gateways for the IPv6 address.\nIf unset, no gateways are set.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "vcenter.guest.ipv6.type": { + "type": "string", + "description": "The Ipv6.Type enumerated type specifies different types of the IPv6 configuration.", + "enum": [ + "DHCP", + "STATIC", + "USER_INPUT_REQUIRED" + ] + }, + "vcenter.guest.ipv6_address": { + "type": "object", + "properties": { + "ip_address": { + "description": "Static IPv6 Address.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "ip_address", + "prefix" + ] + }, + "vcenter.guest.linux_configuration": { + "type": "object", + "properties": { + "hostname": { + "description": "The network host name of the Linux virtual machine.", + "$ref": "#/definitions/vcenter.guest.hostname_generator" + }, + "domain": { + "description": "The fully qualified domain name.", + "type": "string" + }, + "time_zone": { + "description": "The case-sensitive time zone, such as Europe/Sofia. Valid time zone values are based on the tz (time zone) database used by Linux. The values are strings (string) in the form \"Area/Location,\" in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. \n See the https://kb.vmware.com/kb/2145518 for a list of supported time zones for different versions in Linux.\n\nIf unset, time zone is not modified inside guest operating system.", + "type": "string" + }, + "script_text": { + "description": "The script to run before and after Linux guest customization.\n The max size of the script is 65536 bytes. As long as the script (shell, perl, python...) has the right \"#!\" in the header, it is supported. The caller should not assume any environment variables when the script is run. \n The script is invoked by the customization engine using the command line: 1) with argument \"precustomization\" before customization, 2) with argument \"postcustomization\" after customization. The script should parse this argument and implement pre-customization or post-customization task code details in the corresponding block. \n\n A Linux shell script example: \n\n #!/bin/sh\n if [ x$1 == x\"precustomization\" ]; then\n echo \"Do Precustomization tasks\"\n #code for pre-customization actions...\n elif [ x$1 == x\"postcustomization\" ]; then\n echo \"Do Postcustomization tasks\"\n #code for post-customization actions...\n fi\n \n\nIf unset, no script will be executed.", + "type": "string" + } + }, + "required": [ + "hostname", + "domain" + ] + }, + "vcenter.guest.user_data": { + "type": "object", + "properties": { + "computer_name": { + "description": "The computer name of the (Windows) virtual machine. A computer name may contain letters (A-Z), numbers(0-9) and hyphens (-) but no spaces or periods (.). The name may not consist entirely of digits. A computer name is restricted to 15 characters in length. If the computer name is longer than 15 characters, it will be truncated to 15 characters. Check HostnameGenerator for various options.", + "$ref": "#/definitions/vcenter.guest.hostname_generator" + }, + "full_name": { + "description": "Full name of the end user. Note that this is not the username but full name specified in \"Firstname Lastname\" format.", + "type": "string" + }, + "organization": { + "description": "Name of the organization that owns the computer.", + "type": "string" + }, + "product_key": { + "description": "The product Key to use for activating Windows guest operating system.", + "type": "string" + } + }, + "required": [ + "computer_name", + "full_name", + "organization", + "product_key" + ] + }, + "vcenter.guest.windows_configuration": { + "type": "object", + "properties": { + "reboot": { + "description": "A value specifying the action that should be taken after customization.\nIf unset, the REBOOT option will be chosen.", + "$ref": "#/definitions/vcenter.guest.windows_configuration.reboot_option" + }, + "sysprep": { + "description": "Customization settings like user details, administrator details, etc for the windows guest operating system. Exactly one of WindowsConfiguration.sysprep or WindowsConfiguration.sysprep-xml must be specified.\nIf unset, sysprep settings will not be applied to the windows guest operating system.", + "$ref": "#/definitions/vcenter.guest.windows_sysprep" + }, + "sysprep_xml": { + "description": "All settings specified in a XML format. This is the content of a typical answer.xml file that is used by System administrators during the Windows image customization. Check https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/update-windows-settings-and-scripts-create-your-own-answer-file-sxs Exactly one of WindowsConfiguration.sysprep or WindowsConfiguration.sysprep-xml must be specified.\nIf unset, sysprep settings will not be applied to the windows guest operating system.", + "type": "string" + } + } + }, + "vcenter.guest.windows_configuration.reboot_option": { + "type": "string", + "description": "The WindowsConfiguration.RebootOption enumerated type specifies what should be done to the guest after the customization.", + "enum": [ + "REBOOT", + "NO_REBOOT", + "SHUTDOWN" + ] + }, + "vcenter.guest.windows_network_adapter_settings": { + "type": "object", + "properties": { + "dns_servers": { + "description": "A list of server IP addresses to use for DNS lookup in a Windows guest operating system. \n These servers should be specified in the order of preference. If this list is not empty, and if a DHCP IP address is used, then these settings override the DHCP settings.\n\nIf unset, no DNS servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "dns_domain": { + "description": "A DNS domain suffix such as vmware.com.\nIf unset, no DNS domain is set.", + "type": "string" + }, + "wins_servers": { + "description": "List of WINS Servers to set for the Windows guest operating system. A Maximum of two IP addresses can be specified in this list. The first IP address will be set as the primary WINS server. The second IP address will be set as the secondary WINS server.\nIf unset, no WINS Servers are set.", + "type": "array", + "items": { + "type": "string" + } + }, + "net_BIOS_mode": { + "description": "NetBIOS setting for Windows.\nIf unset, existing NetBIOS mode will be retained.", + "$ref": "#/definitions/vcenter.guest.windows_network_adapter_settings.net_BIOS_mode" + } + } + }, + "vcenter.guest.windows_network_adapter_settings.net_BIOS_mode": { + "type": "string", + "description": "The WindowsNetworkAdapterSettings.NetBIOSMode enumerated type specifies different NetBIOS settings for Windows guest operating systems.", + "enum": [ + "USE_DHCP", + "ENABLE", + "DISABLE" + ] + }, + "vcenter.guest.windows_sysprep": { + "type": "object", + "properties": { + "gui_run_once_commands": { + "description": "A list of commands to run at first user logon, after customizing the guest. These commands are directly mapped to the GuiRunOnce key in the sysprep.xml answer file. These commands are transferred into the sysprep.xml file that VirtualCenter stores on the target virtual disk. For more information about performing unattended installation, check https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx The commands listed here ar executed when a user logs on the first time after customization completes. The logon may be driven by GuiUnattended.auto-logon setting. These commands are directly mapped to the GuiRunOnce key in the\nIf unset, no commands are run.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_data": { + "description": "Personal data pertaining to the owner of the virtual machine.", + "$ref": "#/definitions/vcenter.guest.user_data" + }, + "domain": { + "description": "Information needed to join a workgroup or domain.\nIf unset, the guest will not be joined to any workgroup or a domain.", + "$ref": "#/definitions/vcenter.guest.domain" + }, + "gui_unattended": { + "description": "Information related to unattended installation.", + "$ref": "#/definitions/vcenter.guest.gui_unattended" + } + }, + "required": [ + "user_data", + "gui_unattended" + ] + }, + "vcenter.host.connection_state": { + "type": "string", + "enum": [ + "CONNECTED", + "DISCONNECTED", + "NOT_RESPONDING" + ] + }, + "vcenter.host.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.host.create_spec": { + "type": "object", + "properties": { + "hostname": { + "description": "The IP address or DNS resolvable name of the host.", + "type": "string" + }, + "port": { + "description": "The port of the host.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "user_name": { + "description": "The administrator account on the host.", + "type": "string" + }, + "password": { + "description": "The password for the administrator account on the host.", + "type": "string", + "format": "password" + }, + "folder": { + "description": "Host and cluster folder in which the new standalone host should be created.\nThis field is currently required. In the future, if this field is unset, the system will attempt to choose a suitable folder for the host; if a folder cannot be chosen, the host creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "thumbprint_verification": { + "description": "Type of host's SSL certificate verification to be done.", + "$ref": "#/definitions/vcenter.host.create_spec.thumbprint_verification" + }, + "thumbprint": { + "description": "The thumbprint of the SSL certificate, which the host is expected to have. The thumbprint is always computed using the SHA1 hash and is the string representation of that hash in the format: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx where, 'x' represents a hexadecimal digit.\nThis field is optional and it is only relevant when the value of Host.CreateSpec.thumbprint-verification is THUMBPRINT.", + "type": "string" + }, + "force_add": { + "description": "Whether host should be added to the vCenter Server even if it is being managed by another vCenter Server. The original vCenterServer loses connection to the host.\nIf unset, forceAdd is default to false.", + "type": "boolean" + } + }, + "required": [ + "hostname", + "user_name", + "password", + "thumbprint_verification" + ] + }, + "vcenter.host.create_spec.thumbprint_verification": { + "type": "string", + "description": "The Host.CreateSpec.ThumbprintVerification enumerated type defines the thumbprint verification schemes for a host's SSL certificate.", + "enum": [ + "NONE", + "THUMBPRINT" + ] + }, + "vcenter.host.filter_spec": { + "type": "object", + "properties": { + "hosts": { + "description": "Identifiers of hosts that can match the filter.\nIf unset or empty, hosts with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that hosts must have to match the filter (see Host.Summary.name).\nIf unset or empty, hosts with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "folders": { + "description": "Folders that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "standalone": { + "description": "If true, only hosts that are not part of a cluster can match the filter, and if false, only hosts that are are part of a cluster can match the filter.\nIf unset Hosts can match filter independent of whether they are part of a cluster or not. If this field is true and Host.FilterSpec.clusters os not empty, no hosts will match the filter.", + "type": "boolean" + }, + "clusters": { + "description": "Clusters that must contain the hosts for the hosts to match the filter.\nIf unset or empty, hosts in any cluster and hosts that are not in a cluster match the filter. If this field is not empty and Host.FilterSpec.standalone is true, no hosts will match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "connection_states": { + "description": "Connection states that a host must be in to match the filter (see Host.Summary.connection-state.\nIf unset or empty, hosts in any connection state match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.host.connection_state" + } + } + } + }, + "vcenter.host.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.host.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.host.power_state": { + "type": "string", + "description": "The Host.PowerState enumerated type defines the power states of a host.", + "enum": [ + "POWERED_ON", + "POWERED_OFF", + "STANDBY" + ] + }, + "vcenter.host.summary": { + "type": "object", + "properties": { + "host": { + "description": "Identifier of the host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "name": { + "description": "Name of the host.", + "type": "string" + }, + "connection_state": { + "description": "Connection status of the host", + "$ref": "#/definitions/vcenter.host.connection_state" + }, + "power_state": { + "description": "Power state of the host\nThis field is optional and it is only relevant when the value of Host.Summary.connection-state is CONNECTED.", + "$ref": "#/definitions/vcenter.host.power_state" + } + }, + "required": [ + "host", + "name", + "connection_state" + ] + }, + "vcenter.host_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.host.create_spec", + "description": "Specification for the new host to be created." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.hvc.links.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.hvc.links.create_spec": { + "type": "object", + "properties": { + "psc_hostname": { + "description": "The PSC hostname for the domain to be linked.", + "type": "string" + }, + "port": { + "description": "The HTTPS port of the PSC to be linked.\nIf unset 443 will be used as default.", + "type": "string" + }, + "domain_name": { + "description": "The domain to which the PSC belongs.", + "type": "string" + }, + "username": { + "description": "The administrator username of the PSC.", + "type": "string" + }, + "password": { + "description": "The administrator password of the PSC.", + "type": "string", + "format": "password" + }, + "ssl_thumbprint": { + "description": "The ssl thumbprint of the server.\nif unset no thumbprint is passed.", + "type": "string" + }, + "admin_groups": { + "description": "List of groups to be added to enable administrator access to.\nif unset administrator access will not be set.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "psc_hostname", + "domain_name", + "username", + "password" + ] + }, + "vcenter.hvc.links.credentials": { + "type": "object", + "properties": { + "user_name": { + "description": "Name of the user to authenticate", + "type": "string" + }, + "password": { + "description": "Password for the user.", + "type": "string", + "format": "password" + } + }, + "required": [ + "user_name", + "password" + ] + }, + "vcenter.hvc.links.info": { + "type": "object", + "properties": { + "connection_health_status": { + "description": "Health status of the connection", + "$ref": "#/definitions/vcenter.hvc.links.info.health_status" + }, + "health_status_message": { + "description": "Localizable messages associated with health status\nThis field is optional and it is only relevant when the value of Links.Info.connection-health-status is UNHEALTHY.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "vcenter.hvc.links.info.health_status": { + "type": "string", + "description": "The Links.Info.HealthStatus enumerated type defines the possible states for health of a link.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ] + }, + "vcenter.hvc.links.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.hvc.links.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.hvc.links.summary": { + "type": "object", + "properties": { + "link": { + "description": "Unique identifier for the link.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.hvc.Links. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.hvc.Links.", + "type": "string" + }, + "display_name": { + "description": "The display name is set to the domain name which was set during create.", + "type": "string" + } + }, + "required": [ + "link", + "display_name" + ] + }, + "vcenter.hvc.links_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.hvc.links.create_spec", + "description": "Specification for the new link to be created." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.hvc.links_delete_with_credentials": { + "type": "object", + "properties": { + "credentials": { + "$ref": "#/definitions/vcenter.hvc.links.credentials", + "description": "Credentials to use for authentication to the remote system.\nThis parameter is currently required. In the future, it may become optional." + } + } + }, + "vcenter.hvc.links_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.hvc.links.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.hvc.management.administrators_add": { + "type": "object", + "properties": { + "group_name": { + "type": "string", + "description": "Name of the new group to be added. Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_name" + ] + }, + "vcenter.hvc.management.administrators_remove": { + "type": "object", + "properties": { + "group_name": { + "type": "string", + "description": "Name of the group to be removed. Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_name" + ] + }, + "vcenter.hvc.management.administrators_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.hvc.management.administrators_set": { + "type": "object", + "properties": { + "group_names": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Names the groups to be in the CloudAdminGroup Ex - xyz@abc.com where xyz is the group name and abc.com is the domain name" + } + }, + "required": [ + "group_names" + ] + }, + "vcenter.identity.federation_type": { + "type": "string", + "description": "The FederationType enumerated type contains the possible types of federation paths for, vCenter Server identity providers configuration.", + "enum": [ + "DIRECT_FEDERATION", + "INDIRECT_FEDERATION" + ] + }, + "vcenter.identity.providers.active_directory_over_ldap": { + "type": "object", + "properties": { + "user_name": { + "description": "User name to connect to the active directory server.", + "type": "string" + }, + "password": { + "description": "Password to connect to the active directory server.", + "type": "string", + "format": "password" + }, + "users_base_dn": { + "description": "Base distinguished name for users", + "type": "string" + }, + "groups_base_dn": { + "description": "Base distinguished name for groups", + "type": "string" + }, + "server_endpoints": { + "description": "Active directory server endpoints. At least one active directory server endpoint must be set.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "cert_chain": { + "description": "SSL certificate chain in base64 encoding.\nThis field can be unset only, if all the active directory server endpoints use the LDAP (not LDAPS) protocol.", + "$ref": "#/definitions/vcenter.certificate_management.x509_cert_chain" + } + }, + "required": [ + "user_name", + "password", + "users_base_dn", + "groups_base_dn", + "server_endpoints" + ] + }, + "vcenter.identity.providers.config_type": { + "type": "string", + "description": "The Providers.ConfigType structure contains the possible types of vCenter Server identity providers.", + "enum": [ + "Oauth2", + "Oidc" + ] + }, + "vcenter.identity.providers.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.identity.providers.create_spec": { + "type": "object", + "properties": { + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/vcenter.identity.providers.config_type" + }, + "oauth2": { + "description": "OAuth2 CreateSpec\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.config-tag is Oauth2.", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_create_spec" + }, + "oidc": { + "description": "OIDC CreateSpec\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.config-tag is Oidc.", + "$ref": "#/definitions/vcenter.identity.providers.oidc_create_spec" + }, + "org_ids": { + "description": "The set of orgIds as part of SDDC creation which provides the basis for tenancy\nIf unset, the set will be empty.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "is_default": { + "description": "Specifies whether the provider is the default provider. Setting Providers.CreateSpec.is-default of current provider to True makes all other providers non-default. If no other providers created in this vCenter Server before, this parameter will be disregarded, and the provider will always be set to the default.\nIf unset the provider will be the default provider if it is the first provider that is created, and will not be the default provider otherwise.", + "type": "boolean" + }, + "name": { + "description": "The user friendly name for the provider. This name can be used for human-readable identification purposes, but it does not have to be unique, as the system will use internal UUIDs to differentiate providers.\nIf unset, the name will be the empty string", + "type": "string" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains.\nIf unset, domainNames will be the empty set and the domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nIf unset, the map will be empty.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "idm_protocol": { + "description": "Communication protocol to the identity management endpoints.\nIf unset, no communication protocol will be configured for the identity provider.", + "$ref": "#/definitions/vcenter.identity.providers.idm_protocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints. When specified, at least one endpoint must be provided.\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration. If the protocol is LDAP, the configuration must be set, else InvalidArgument is thrown.\nThis field is optional and it is only relevant when the value of Providers.CreateSpec.idm-protocol is LDAP.", + "$ref": "#/definitions/vcenter.identity.providers.active_directory_over_ldap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the user.\nIf unset, the claim named 'acct' will be used to provide backwards compatibility with CSP.", + "type": "string" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject. These groups will be used for mapping to local groups per the claim map.\nIf unset, the default behavior will be CSP backwards compatiblility. The groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims.", + "type": "string" + }, + "federation_type": { + "description": "The type of the identity provider\nIf unset, the federation type value will not be set.", + "$ref": "#/definitions/vcenter.identity.federation_type" + } + }, + "required": [ + "config_tag" + ] + }, + "vcenter.identity.providers.idm_protocol": { + "type": "string", + "description": "The Providers.IdmProtocol structure contains the possible types of communication protocols to the identity management endpoints.", + "enum": [ + "REST", + "SCIM", + "SCIM2_0", + "LDAP" + ] + }, + "vcenter.identity.providers.info": { + "type": "object", + "properties": { + "name": { + "description": "The user friendly name for the provider\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "org_ids": { + "description": "The set of orgIds as part of SDDC creation which provides the basis for tenancy", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/vcenter.identity.providers.config_type" + }, + "oauth2": { + "description": "OAuth2 Info\nThis field is optional and it is only relevant when the value of Providers.Info.config-tag is Oauth2.", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_info" + }, + "oidc": { + "description": "OIDC Info\nThis field is optional and it is only relevant when the value of Providers.Info.config-tag is Oidc.", + "$ref": "#/definitions/vcenter.identity.providers.oidc_info" + }, + "is_default": { + "description": "Specifies whether the provider is the default provider.", + "type": "boolean" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "idm_protocol": { + "description": "Communication protocol to the identity management endpoints.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.identity.providers.idm_protocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints.\nThis field is optional and it is only relevant when the value of Providers.Info.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration.\nThis field is optional and it is only relevant when the value of Providers.Info.idm-protocol is LDAP.", + "$ref": "#/definitions/vcenter.identity.providers.active_directory_over_ldap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the user.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject. If empty, the default behavior for CSP is used. In this case, the groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "federation_type": { + "description": "The type of the identity provider\nIf no federation type value set earlier.", + "$ref": "#/definitions/vcenter.identity.federation_type" + } + }, + "required": [ + "org_ids", + "config_tag", + "is_default" + ] + }, + "vcenter.identity.providers.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.identity.providers.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.identity.providers.oauth2_authentication_method": { + "type": "string", + "description": "The Providers.Oauth2AuthenticationMethod structure contains the possible types of OAuth2 authentication methods.", + "enum": [ + "CLIENT_SECRET_BASIC", + "CLIENT_SECRET_POST", + "CLIENT_SECRET_JWT", + "PRIVATE_KEY_JWT" + ] + }, + "vcenter.identity.providers.oauth2_create_spec": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token.", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_authentication_method" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nIf unset, the map will be empty.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method" + ] + }, + "vcenter.identity.providers.oauth2_info": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_authentication_method" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method", + "auth_query_params" + ] + }, + "vcenter.identity.providers.oauth2_summary": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "authentication_header": { + "description": "The authentication data used as part of request header to acquire or refresh an OAuth2 token. The data format depends on the authentication method used. Example of basic authentication format: Authorization: Basic [base64Encode(clientId + \":\" + secret)]", + "type": "string" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "client_id", + "authentication_header", + "auth_query_params" + ] + }, + "vcenter.identity.providers.oauth2_update_spec": { + "type": "object", + "properties": { + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider.\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "client_secret": { + "description": "Shared secret between identity provider and client\nIf unset, leaves value unchanged.", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.\nIf unset, leaves value unchanged.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token\nIf unset, leaves value unchanged.", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider\nIf unset, leaves value unchanged.", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_authentication_method" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request. How to append to authEndpoint request: If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details: If the value contains only one string, then the key is added with \"k=v\". If the value is an empty list, then the key is added without a \"=v\". If the value contains multiple strings, then the key is repeated in the query-string for each string in the value. If the map is empty, deletes all params.\nIf unset, leaves value unchanged.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "vcenter.identity.providers.oidc_create_spec": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": [ + "discovery_endpoint", + "client_id", + "client_secret", + "claim_map" + ] + }, + "vcenter.identity.providers.oidc_info": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata", + "type": "string", + "format": "uri" + }, + "logout_endpoint": { + "description": "The endpoint to use for terminating the user's session at the identity provider. This value is automatically derived from the metadata information provided by the OIDC discovery endpoint.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "public_key_uri": { + "description": "Endpoint to retrieve the provider public key for validation", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "issuer": { + "description": "The identity provider namespace. It is used to validate the issuer in the acquired OAuth2 token", + "type": "string" + }, + "authentication_method": { + "description": "Authentication method used by the provider", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_authentication_method" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "discovery_endpoint", + "auth_endpoint", + "token_endpoint", + "public_key_uri", + "client_id", + "client_secret", + "claim_map", + "issuer", + "authentication_method", + "auth_query_params" + ] + }, + "vcenter.identity.providers.oidc_summary": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "logout_endpoint": { + "description": "The endpoint to use for terminating the user's session at the identity provider. This value is automatically derived from the metadata information provided by the OIDC discovery endpoint.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string", + "format": "uri" + }, + "auth_endpoint": { + "description": "Authentication/authorization endpoint of the provider", + "type": "string", + "format": "uri" + }, + "token_endpoint": { + "description": "Token endpoint of the provider", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider", + "type": "string" + }, + "authentication_header": { + "description": "The authentication data used as part of request header to acquire or refresh an OAuth2 token. The data format depends on the authentication method used. Example of basic authentication format: Authorization: Basic [base64Encode(clientId + \":\" + secret)]", + "type": "string" + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "auth_endpoint", + "token_endpoint", + "client_id", + "authentication_header", + "auth_query_params" + ] + }, + "vcenter.identity.providers.oidc_update_spec": { + "type": "object", + "properties": { + "discovery_endpoint": { + "description": "Endpoint to retrieve the provider metadata\nIf unset, leaves value unchanged.", + "type": "string", + "format": "uri" + }, + "client_id": { + "description": "Client identifier to connect to the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "client_secret": { + "description": "The secret shared between the client and the provider\nIf unset, leaves value unchanged.", + "type": "string" + }, + "claim_map": { + "description": "The map used to transform an OAuth2 claim to a corresponding claim that vCenter Server understands. Currently only the key \"perms\" is supported. The key \"perms\" is used for mapping the \"perms\" claim of incoming JWT. The value is another map with an external group as the key and a vCenter Server group as value.\nIf unset, leaves value unchanged.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "vcenter.identity.providers.summary": { + "type": "object", + "properties": { + "provider": { + "description": "The identifier of the provider\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.identity.Providers. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.identity.Providers.", + "type": "string" + }, + "name": { + "description": "The user friendly name for the provider\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/vcenter.identity.providers.config_type" + }, + "oauth2": { + "description": "OAuth2 Summary\nThis field is optional and it is only relevant when the value of Providers.Summary.config-tag is Oauth2.", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_summary" + }, + "oidc": { + "description": "OIDC Summary\nThis field is optional and it is only relevant when the value of Providers.Summary.config-tag is Oidc.", + "$ref": "#/definitions/vcenter.identity.providers.oidc_summary" + }, + "is_default": { + "description": "Specifies whether the provider is the default provider.", + "type": "boolean" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request.\n \nHow to append to authEndpoint request:\n If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details:\n - If the value contains only one string, then the key is added with \"k=v\".\n - If the value is an empty list, then the key is added without a \"=v\".\n - If the value contains multiple strings, then the key is repeated in the query-string for each string in the value.\n\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "federation_type": { + "description": "The type of the identity provider\nIf no federation type value set earlier.", + "$ref": "#/definitions/vcenter.identity.federation_type" + } + }, + "required": [ + "provider", + "config_tag", + "is_default" + ] + }, + "vcenter.identity.providers.update_spec": { + "type": "object", + "properties": { + "config_tag": { + "description": "The config type of the identity provider", + "$ref": "#/definitions/vcenter.identity.providers.config_type" + }, + "oauth2": { + "description": "OAuth2 UpdateSpec\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.config-tag is Oauth2.", + "$ref": "#/definitions/vcenter.identity.providers.oauth2_update_spec" + }, + "oidc": { + "description": "OIDC UpdateSpec\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.config-tag is Oidc.", + "$ref": "#/definitions/vcenter.identity.providers.oidc_update_spec" + }, + "org_ids": { + "description": "The set orgIds as part of SDDC creation which provides the basis for tenancy\nIf unset, leaves value unchanged.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "make_default": { + "description": "Specifies whether to make this the default provider. If Providers.UpdateSpec.make-default is set to true, this provider will be flagged as the default provider and any other providers that had previously been flagged as the default will be made non-default. If Providers.UpdateSpec.make-default is set to false, this provider's default flag will not be modified.\nIf unset, leaves value unchanged.", + "type": "boolean" + }, + "name": { + "description": "The user friendly name for the provider. This name can be used for human-readable identification purposes, but it does not have to be unique, as the system will use internal UUIDs to differentiate providers.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "domain_names": { + "description": "Set of fully qualified domain names to trust when federating with this identity provider. Tokens from this identity provider will only be validated if the user belongs to one of these domains, and any domain-qualified groups in the tokens will be filtered to include only those groups that belong to one of these domains.\nIf unset, leaves value unchanged. If domainNames is an empty set, domain validation behavior at login with this identity provider will be as follows: the user's domain will be parsed from the User Principal Name (UPN) value that is found in the tokens returned by the identity provider. This domain will then be implicitly trusted and used to filter any groups that are also provided in the tokens.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "auth_query_params": { + "description": "key/value pairs that are to be appended to the authEndpoint request. How to append to authEndpoint request: If the map is not empty, a \"?\" is added to the endpoint URL, and combination of each k and each string in the v is added with an \"&\" delimiter. Details: If the value contains only one string, then the key is added with \"k=v\". If the value is an empty list, then the key is added without a \"=v\". If the value contains multiple strings, then the key is repeated in the query-string for each string in the value. If the map is empty, deletes all params.\nIf unset, leaves value unchanged.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "idm_protocol": { + "description": "The protocol to communicate to the identity management endpoints\nIf unset, leave value unchanged.", + "$ref": "#/definitions/vcenter.identity.providers.idm_protocol" + }, + "idm_endpoints": { + "description": "Identity management endpoints. When specified, at least one endpoint must be provided.\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.idm-protocol is one of REST, SCIM, or SCIM2_0.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "active_directory_over_ldap": { + "description": "Identity management configuration. If the protocol is LDAP, the configuration must be set, else InvalidArgument is thrown\nThis field is optional and it is only relevant when the value of Providers.UpdateSpec.idm-protocol is LDAP.", + "$ref": "#/definitions/vcenter.identity.providers.active_directory_over_ldap" + }, + "upn_claim": { + "description": "Specifies which claim provides the user principal name (UPN) for the subject of the token.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "reset_upn_claim": { + "description": "Flag indicating whether the user principal name (UPN) claim should be set back to its default value. If this field is set to true, the user principal name (UPN) claim will be set to 'acct', which is used for backwards compatibility with CSP. If this field is set to false, the existing user principal name (UPN) claim will be changed to the value specified in Providers.UpdateSpec.upn-claim, if any.\nIf unset, the existing user principal name (UPN) claim will be changed to the value specified in Providers.UpdateSpec.upn-claim, if any.", + "type": "boolean" + }, + "groups_claim": { + "description": "Specifies which claim provides the group membership for the token subject.\nIf unset, leaves value unchanged.", + "type": "string" + }, + "reset_groups_claim": { + "description": "Flag indicating whether any existing groups claim value should be removed. If this field is set to true, the existing groups claim value is removed which defaults to backwards compatibility with CSP. In this case, the groups for the subject will be comprised of the groups in 'group_names' and 'group_ids' claims. If this field is set to false, the existing groups claim will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.\nIf unset, the existing groups claim will be changed to the value specified in Providers.UpdateSpec.groups-claim, if any.", + "type": "boolean" + }, + "federation_type": { + "description": "The type of the identity provider\nIf unset, leaves value unchanged.", + "$ref": "#/definitions/vcenter.identity.federation_type" + } + }, + "required": [ + "config_tag" + ] + }, + "vcenter.identity.providers_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.identity.providers.create_spec", + "description": "the CreateSpec contains the information used to create the provider" + } + }, + "required": [ + "spec" + ] + }, + "vcenter.identity.providers_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.identity.providers.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.identity.providers_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.identity.providers.update_spec", + "description": "the UpdateSpec contains the information used to update the provider" + } + }, + "required": [ + "spec" + ] + }, + "vcenter.inventory.datastore.find_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.inventory.datastore.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.inventory.datastore.info": { + "type": "object", + "properties": { + "type": { + "description": "Type of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be one of Datastore or StoragePod. When operations return a value of this structure as a result, the field will be one of Datastore or StoragePod.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.inventory.datastore_find": { + "type": "object", + "properties": { + "datastores": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifiers of the datastores for which information will be returned.\nThe parameter must contain identifiers for the resource type: Datastore." + } + }, + "required": [ + "datastores" + ] + }, + "vcenter.inventory.network.find_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.inventory.network.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.inventory.network.info": { + "type": "object", + "properties": { + "type": { + "description": "Type of the vCenter Server network.\nWhen clients pass a value of this structure as a parameter, the field must be one of Network, DistributedVirtualPortgroup, or OpaqueNetwork. When operations return a value of this structure as a result, the field will be one of Network, DistributedVirtualPortgroup, or OpaqueNetwork.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.inventory.network_find": { + "type": "object", + "properties": { + "networks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifiers of the vCenter Server networks for which information will be returned.\nThe parameter must contain identifiers for the resource type: Network." + } + }, + "required": [ + "networks" + ] + }, + "vcenter.iso.image.mount_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.iso.image_mount": { + "type": "object", + "properties": { + "vm": { + "type": "string", + "description": "The identifier of the virtual machine where the specified ISO image will be mounted.\nThe parameter must be an identifier for the resource type: VirtualMachine." + } + }, + "required": [ + "vm" + ] + }, + "vcenter.iso.image_unmount": { + "type": "object", + "properties": { + "cdrom": { + "type": "string", + "description": "The device identifier of the CD-ROM.\nThe parameter must be an identifier for the resource type: vcenter.vm.hardware.Cdrom." + } + }, + "required": [ + "cdrom" + ] + }, + "vcenter.namespaces.access.subject_type": { + "type": "string", + "description": "The Access.SubjectType enumerated type lists the types of subjects who can be associated with a Access.Role on the namespace.", + "enum": [ + "USER", + "GROUP" + ] + }, + "vcenter.namespaces.instances.VM_service_spec": { + "type": "object", + "properties": { + "content_libraries": { + "description": "Set of Content Libraries for use by the VM Service. The Content Libraries specified should exist in vSphere inventory. \nThe Content Libraries specified for the VM Image Service, using {CreateSpec#contentLibraries} during Instances.create operation or {UpdateSpec#contentLibraries} during Instances.update operation or {SetSpec#contentLibraries} during Instances.set operation will also be included in this list. \n\nIf the same Content Library is present both here and in VM Image Service specification, then: \n\n - The Content Library is only surfaced to users once. \n - The settings in VM Image Service specification are honored. \n\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: content.Library. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: content.Library.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "vm_classes": { + "description": "Set of VirtualMachineClasses for use by the VM Service. The class names specified here should exist in vSphere inventory. If this field is empty in an updated specification, all VirtualMachineClasses that are currently associated with the namespace will be disassociated from it. \n NOTE: Any change in virtual machine classes associated with the namespace will not impact existing VMs.\n\nThis field is optional because it was added in a newer version than its parent node.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.VirtualMachineClass. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.VirtualMachineClass.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.namespaces.instances.content_library_spec": { + "type": "object", + "properties": { + "content_library": { + "description": "Content Library ID used by the VM Image Service. The Content Library specified should exist in vSphere inventory.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "writable": { + "description": "Flag to indicate if the Content Library is writable. When set to true, users with Access.Info.role of type OWNER or EDIT on a Supervisor namespace can add or delete Content Library items in vSphere from this Supervisor namespace. A subscribed Content Library is not allowed to be marked as writable. \nAn InvalidArgument error will be thrown from Instances.create operation, Instances.update operation and Instances.set operation if a subscribed Content Library has the Instances.ContentLibrarySpec.writable flag set to true.\n\nIf unset, the value defaults to false and the Content Library is read-only to users.", + "type": "boolean" + } + }, + "required": [ + "content_library" + ] + }, + "vcenter.namespaces.instances.storage_spec": { + "type": "object", + "properties": { + "policy": { + "description": "ID of the storage policy. A Kubernetes storage class is created for this storage policy if it does not exist already.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.", + "type": "string" + }, + "limit": { + "description": "The maximum amount of storage (in mebibytes) which can be utilized by the namespace for this specification.\nIf unset, no limits are placed.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "policy" + ] + }, + "vcenter.namespaces.namespace_templates.create_spec": { + "type": "object", + "properties": { + "template": { + "description": "Identifier of the namespace template. This has DNS_LABEL restrictions as specified in . This name is unique across all namespaces templates in this vCenter server.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization. This field should not be empty and at least one policy should be supplied. The {link create} throws {term InvalidArgument} exception if this field is set empty.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.storage_spec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization. vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed by NSX-T Container Plugin. If field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.subject" + } + }, + "vm_service_spec": { + "description": "VM Service specification to be associated with the namespace template. Namespaces created using this template will have access to the virtual machine classes and Content Libraries specified in this {CreateSpec#vmServiceSpec} by default.\nIf unset, the namespaces created using this template will not have access to any virtual machine classes by default, and to any Content Libraries by default unless Content Libraries are specified in the {CreateSpec#contentLibraries}.", + "$ref": "#/definitions/vcenter.namespaces.instances.VM_service_spec" + }, + "content_libraries": { + "description": "Content Library specifications to be associated with the namespace template. Namespaces created using this template will have access to the Content Libraries specified in this {CreateSpec#contentLibraries} by default.\nIf unset, the namespaces created using this template will not have access to any Content Libraries by default unless Content Libraries are specified in the {CreateSpec#vmServiceSpec}.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.content_library_spec" + } + } + }, + "required": [ + "template", + "resource_spec", + "storage_specs" + ] + }, + "vcenter.namespaces.namespace_templates.get_v2_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.info_v2" + } + }, + "required": [ + "value" + ] + }, + "vcenter.namespaces.namespace_templates.info": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are defined in the namespace template.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.storage_spec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.subject" + } + }, + "vm_service_spec": { + "description": "Current set of virtual machine classes and Content Libraries associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.namespaces.instances.VM_service_spec" + }, + "content_libraries": { + "description": "Current set of Content Library specifications associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.content_library_spec" + } + } + }, + "required": [ + "cluster", + "template", + "storage_specs" + ] + }, + "vcenter.namespaces.namespace_templates.info_v2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + }, + "resource_spec": { + "description": "Resource quotas that this template defines. Quotas on the namespace resources. Refer to vcenter.namespace_management.NamespaceResourceOptions#get for the type of the value for this field.\nIf unset, no resource constraints are defined in the namespace template.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.storage_spec" + } + }, + "networks": { + "description": "vSphere Networks that this template captures and are associated with the namespace after namespace realization.\nThis field is unset if the cluster hosting this namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as its network provider.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.subject" + } + }, + "vm_service_spec": { + "description": "Current set of virtual machine classes and Content Libraries associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.namespaces.instances.VM_service_spec" + }, + "content_libraries": { + "description": "Current set of Content Library specifications associated with the template.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.content_library_spec" + } + } + }, + "required": [ + "supervisor", + "template", + "storage_specs" + ] + }, + "vcenter.namespaces.namespace_templates.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.namespaces.namespace_templates.list_v2_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.summary_v2" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.namespaces.namespace_templates.subject": { + "type": "object", + "properties": { + "subject_type": { + "description": "Type of the subject.", + "$ref": "#/definitions/vcenter.namespaces.access.subject_type" + }, + "subject": { + "description": "Name of the subject.", + "type": "string" + }, + "domain": { + "description": "Domain of the subject.", + "type": "string" + } + }, + "required": [ + "subject_type", + "subject", + "domain" + ] + }, + "vcenter.namespaces.namespace_templates.summary": { + "type": "object", + "properties": { + "cluster": { + "description": "Identifier for the vSphere cluster associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + } + }, + "required": [ + "cluster", + "template" + ] + }, + "vcenter.namespaces.namespace_templates.summary_v2": { + "type": "object", + "properties": { + "supervisor": { + "description": "Identifier for the Supervisor associated with namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespace_management.supervisor.Supervisor.", + "type": "string" + }, + "template": { + "description": "Name of the namespace template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.namespaces.NamespaceTemplate.", + "type": "string" + } + }, + "required": [ + "supervisor", + "template" + ] + }, + "vcenter.namespaces.namespace_templates.update_spec": { + "type": "object", + "properties": { + "resource_spec": { + "description": "Resource quota on the namespace. Refer to vcenter.namespace_management.NamespaceResourceOptions.Info#createResourceQuotaType and use vcenter.namespace_management.NamespaceResourceOptions#get for retrieving the type for the value for this field. For an example of this, see ResourceQuotaOptionsV1.\nIf unset, no resource limits will be set on the namespace.", + "type": "object" + }, + "storage_specs": { + "description": "Storage that this template defines and will be associated with a namespace after namespace realization.\nIf unset then no update will be made.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.storage_spec" + } + }, + "networks": { + "description": "vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing vcenter.namespace_management.Networks.Info structures.\nThe field must be left unset if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSXT_VPC as the network provider, since the network(s) for this namespace will be managed by NSX-T Container Plugin. If field is unset when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.namespace_management.Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.namespace_management.Network.", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "Permissions associated with namespace template.\nIf unset, only users with the Administrator role can use this template; for example, this template is applied to the namespace created by self-service-users with the Administrator role.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.subject" + } + }, + "vm_service_spec": { + "description": "VM Service specification to be associated with the namespace template. The virtual machine classes and Content Library associations of the template will be updated according to this {UpdateSpec#vmServiceSpec}.\nIf unset, the namespaces created using this template will not have access to any virtual machine classes by default, and to any Content Libraries by default unless Content Libraries are specified in the {UpdateSpec#contentLibraries}.", + "$ref": "#/definitions/vcenter.namespaces.instances.VM_service_spec" + }, + "content_libraries": { + "description": "Content Library specifications to be associated with the namespace template. Namespaces created using this template will have access to the Content Libraries specified in this {UpdateSpec#contentLibraries} by default.\nIf unset, the namespaces created using this template will not have access to any Content Libraries by default unless Content Libraries are specified in the {UpdateSpec#vmServiceSpec}.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.namespaces.instances.content_library_spec" + } + } + } + }, + "vcenter.namespaces.namespace_templates_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.create_spec", + "description": "Specification for setting up the namespace template." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.namespaces.namespace_templates_create_v2": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.create_spec", + "description": "Specification for setting up the namespace template." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.namespaces.namespace_templates_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.namespaces.namespace_templates_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.update_spec", + "description": "Specification for updating the namespace template." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.namespaces.namespace_templates_update_v2": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.namespaces.namespace_templates.update_spec", + "description": "Specification for updating the namespace template." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.network.filter_spec": { + "type": "object", + "properties": { + "networks": { + "description": "Identifiers of networks that can match the filter.\nIf unset or empty, networks with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Network. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Network.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that networks must have to match the filter (see Network.Summary.name).\nIf unset or empty, networks with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "types": { + "description": "Types that networks must have to match the filter (see Network.Summary.type).\nIf unset, networks with any type match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.network.type" + } + }, + "folders": { + "description": "Folders that must contain the network for the network to match the filter.\nIf unset or empty, networks in any folder match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Folder. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Folder.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the network for the network to match the filter.\nIf unset or empty, networks in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.network.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.network.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.network.summary": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "name": { + "description": "Name of the network.", + "type": "string" + }, + "type": { + "description": "Type (Type) of the vCenter Server network.", + "$ref": "#/definitions/vcenter.network.type" + } + }, + "required": [ + "network", + "name", + "type" + ] + }, + "vcenter.network.type": { + "type": "string", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "vcenter.ovf.disk_provisioning_type": { + "type": "string", + "description": "The DiskProvisioningType enumerated type defines the virtual disk provisioning types that can be set for a disk on the target platform.", + "enum": [ + "thin", + "thick", + "eagerZeroedThick" + ] + }, + "vcenter.ovf.export_flag.info": { + "type": "object", + "properties": { + "option": { + "description": "The name of the export flag that is supported by the server.", + "type": "string" + }, + "description": { + "description": "Localizable description of the export flag.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "option", + "description" + ] + }, + "vcenter.ovf.export_flag.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.export_flag.info" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.ovf.import_flag.info": { + "type": "object", + "properties": { + "option": { + "description": "The name of the import flag that is supported by the deployment platform.", + "type": "string" + }, + "description": { + "description": "Localizable description of the import flag.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "option", + "description" + ] + }, + "vcenter.ovf.import_flag.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.import_flag.info" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.ovf.library_item.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.ovf.library_item.create_result" + } + }, + "required": [ + "value" + ] + }, + "vcenter.ovf.library_item.create_result": { + "type": "object", + "properties": { + "succeeded": { + "description": "Whether the LibraryItem.create operation completed successfully.", + "type": "boolean" + }, + "ovf_library_item_id": { + "description": "Identifier of the created or updated library item.\nIf unset, the LibraryItem.create operation failed and LibraryItem.CreateResult.error will describe the error(s) that caused the failure.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + }, + "error": { + "description": "Errors, warnings, and informational messages produced by the LibraryItem.create operation.\nIf unset, no errors, warnings, or informational messages were reported by the LibraryItem.create operation.", + "$ref": "#/definitions/vcenter.ovf.library_item.result_info" + } + }, + "required": [ + "succeeded" + ] + }, + "vcenter.ovf.library_item.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name to use in the OVF descriptor stored in the library item.\nIf unset, the server will use source's current name.", + "type": "string" + }, + "description": { + "description": "Description to use in the OVF descriptor stored in the library item.\nIf unset, the server will use source's current annotation.", + "type": "string" + }, + "flags": { + "description": "Flags to use for OVF package creation. The supported flags can be obtained using ExportFlag.list.\nIf unset, no flags will be used.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "vcenter.ovf.library_item.create_target": { + "type": "object", + "properties": { + "library_id": { + "description": "Identifier of the library in which a new library item should be created. This field is not used if the LibraryItem.CreateTarget.library-item-id field is specified.\nThis field is currently required. \n In the future, if unset, the LibraryItem.CreateTarget.library-item-id field must be specified. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "library_item_id": { + "description": "Identifier of the library item that should be should be updated.\nIf unset, a new library item will be created. The LibraryItem.CreateTarget.library-id field must be specified if this field is set.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + } + } + }, + "vcenter.ovf.library_item.deploy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.ovf.library_item.deployment_result" + } + }, + "required": [ + "value" + ] + }, + "vcenter.ovf.library_item.deployable_identity": { + "type": "object", + "properties": { + "type": { + "description": "Type of the deployable resource.\nWhen clients pass a value of this structure as a parameter, the field must be one of VirtualMachine or VirtualApp. When operations return a value of this structure as a result, the field will be one of VirtualMachine or VirtualApp.", + "type": "string" + }, + "id": { + "description": "Identifier of the deployable resource.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for one of these resource types: VirtualMachine or VirtualApp. When operations return a value of this structure as a result, the field will be an identifier for one of these resource types: VirtualMachine or VirtualApp.", + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + }, + "vcenter.ovf.library_item.deployment_result": { + "type": "object", + "properties": { + "succeeded": { + "description": "Whether the LibraryItem.deploy operation completed successfully.", + "type": "boolean" + }, + "resource_id": { + "description": "Identifier of the deployed resource entity.\nIf unset, the LibraryItem.deploy operation failed and LibraryItem.DeploymentResult.error will describe the error(s) that caused the failure.", + "$ref": "#/definitions/vcenter.ovf.library_item.deployable_identity" + }, + "error": { + "description": "Errors, warnings, and informational messages produced by the LibraryItem.deploy operation.\nIf unset, no errors, warnings, or informational messages were reported by the LibraryItem.deploy operation.", + "$ref": "#/definitions/vcenter.ovf.library_item.result_info" + } + }, + "required": [ + "succeeded" + ] + }, + "vcenter.ovf.library_item.deployment_target": { + "type": "object", + "properties": { + "resource_pool_id": { + "description": "Identifier of the resource pool to which the virtual machine or virtual appliance should be attached.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host_id": { + "description": "Identifier of the target host on which the virtual machine or virtual appliance will run. The target host must be a member of the cluster that contains the resource pool identified by LibraryItem.DeploymentTarget.resource-pool-id.\nIf unset, the server will automatically select a target host from the resource pool if LibraryItem.DeploymentTarget.resource-pool-id is a stand-alone host or a cluster with Distributed Resource Scheduling (DRS) enabled.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "folder_id": { + "description": "Identifier of the vCenter folder that should contain the virtual machine or virtual appliance. The folder must be virtual machine folder.\nIf unset, the server will choose the deployment folder.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + } + }, + "required": [ + "resource_pool_id" + ] + }, + "vcenter.ovf.library_item.filter_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.ovf.library_item.ovf_summary" + } + }, + "required": [ + "value" + ] + }, + "vcenter.ovf.library_item.ovf_summary": { + "type": "object", + "properties": { + "name": { + "description": "Default name for the virtual machine or virtual appliance.\nIf unset, the OVF descriptor did not specify a name.", + "type": "string" + }, + "annotation": { + "description": "Default annotation for the virtual machine or virtual appliance.\nIf unset, the OVF descriptor did not specify an annotation.", + "type": "string" + }, + "EULAs": { + "description": "End User License Agreements specified in the OVF descriptor. All end user license agreements must be accepted in order for the LibraryItem.deploy operation to succeed. See LibraryItem.ResourcePoolDeploymentSpec.accept-all-eula.", + "type": "array", + "items": { + "type": "string" + } + }, + "networks": { + "description": "Section identifiers for sections of type ovf:NetworkSection in the OVF descriptor. These identifiers can be used as keys in LibraryItem.ResourcePoolDeploymentSpec.network-mappings.\nIf unset, the OVF descriptor did not specify any networks.", + "type": "array", + "items": { + "type": "string" + } + }, + "storage_groups": { + "description": "Section identifiers for sections of type vmw:StorageGroupSection in the OVF descriptor. These identifiers can be used as keys in LibraryItem.ResourcePoolDeploymentSpec.storage-mappings.\nIf unset, the OVF descriptor did not specify any storage groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_params": { + "description": "Additional OVF parameters which can be specified for the deployment target. These OVF parameters can be inspected, optionally modified, and used as values in LibraryItem.ResourcePoolDeploymentSpec.additional-parameters for the LibraryItem.deploy operation.\nIf unset, the OVF descriptor does not require addtional parameters or does not have additional parameters suitable for the deployment target.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in OvfParams. When operations return a value of this structure as a result, the field will contain all the attributes defined in OvfParams.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "EULAs" + ] + }, + "vcenter.ovf.library_item.resource_pool_deployment_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name assigned to the deployed target virtual machine or virtual appliance.\nIf unset, the server will use the name from the OVF package.", + "type": "string" + }, + "annotation": { + "description": "Annotation assigned to the deployed target virtual machine or virtual appliance.\nIf unset, the server will use the annotation from the OVF package.", + "type": "string" + }, + "accept_all_EULA": { + "description": "Whether to accept all End User License Agreements. See LibraryItem.OvfSummary.eulas.", + "type": "boolean" + }, + "network_mappings": { + "description": "Specification of the target network to use for sections of type ovf:NetworkSection in the OVF descriptor. The key in the map is the section identifier of the ovf:NetworkSection section in the OVF descriptor and the value is the target network to be used for deployment.\nIf unset, the server will choose a network mapping.\nWhen clients pass a value of this structure as a parameter, the value in the field map must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the value in the field map will be an identifier for the resource type: Network.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "storage_mappings": { + "description": "Specification of the target storage to use for sections of type vmw:StorageGroupSection in the OVF descriptor. The key in the map is the section identifier of the ovf:StorageGroupSection section in the OVF descriptor and the value is the target storage specification to be used for deployment. See LibraryItem.StorageGroupMapping.\nIf unset, the server will choose a storage mapping.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.ovf.library_item.storage_group_mapping" + } + } + } + }, + "storage_provisioning": { + "description": "Default storage provisioning type to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the provisioning type.", + "$ref": "#/definitions/vcenter.ovf.disk_provisioning_type" + }, + "storage_profile_id": { + "description": "Default storage profile to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the default profile.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: StorageProfile.", + "type": "string" + }, + "locale": { + "description": "The locale to use for parsing the OVF descriptor.\nIf unset, the server locale will be used.", + "type": "string" + }, + "flags": { + "description": "Flags to be use for deployment. The supported flag values can be obtained using ImportFlag.list.\nIf unset, no flags will be used.", + "type": "array", + "items": { + "type": "string" + } + }, + "additional_parameters": { + "description": "Additional OVF parameters that may be needed for the deployment. Additional OVF parameters may be required by the OVF descriptor of the OVF package in the library item. Examples of OVF parameters that can be specified through this field include, but are not limited to: \n - DeploymentOptionParams\n - ExtraConfigParams\n - IpAllocationParams\n - PropertyParams\n - ScaleOutParams\n - VcenterExtensionParams\n \nIf unset, the server will choose default settings for all parameters necessary for the LibraryItem.deploy operation. See LibraryItem.deploy.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in OvfParams. When operations return a value of this structure as a result, the field will contain all the attributes defined in OvfParams.", + "type": "array", + "items": { + "type": "object" + } + }, + "default_datastore_id": { + "description": "Default datastore to use for all sections of type vmw:StorageSection in the OVF descriptor.\nIf unset, the server will choose the default datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "vm_config_spec": { + "description": "The LibraryItem.ResourcePoolDeploymentSpec.vm-config-spec is used for virtual machine configuration settings including hardware specifications to use in place of the OVF descriptor. If set, the OVF descriptor acts as a disk descriptor. Fields in the LibraryItem.ResourcePoolDeploymentSpec parameters such as LibraryItem.ResourcePoolDeploymentSpec.name that overlap with settings in the LibraryItem.ResourcePoolDeploymentSpec.vm-config-spec are not overridden and will continue to be used. Similarly, storage settings in the LibraryItem.ResourcePoolDeploymentSpec that affect the disks on the virtual machine namely LibraryItem.ResourcePoolDeploymentSpec.storage-mappings, LibraryItem.ResourcePoolDeploymentSpec.storage-profile-id, LibraryItem.ResourcePoolDeploymentSpec.storage-provisioning and LibraryItem.ResourcePoolDeploymentSpec.default-datastore-id will also be honored.\nIf unset, the relevant virtual machine specifications in the OVF descriptor of the OVF template will be used.", + "$ref": "#/definitions/vcenter.ovf.library_item.vm_config_spec" + } + }, + "required": [ + "accept_all_EULA" + ] + }, + "vcenter.ovf.library_item.result_info": { + "type": "object", + "properties": { + "errors": { + "description": "Errors reported by the LibraryItem.create or LibraryItem.deploy operation. These errors would have prevented the LibraryItem.create or LibraryItem.deploy operation from completing successfully.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.ovf_error" + } + }, + "warnings": { + "description": "Warnings reported by the LibraryItem.create or LibraryItem.deploy operation. These warnings would not have prevented the LibraryItem.create or LibraryItem.deploy operation from completing successfully, but there might be issues that warrant attention.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.ovf_warning" + } + }, + "information": { + "description": "Information messages reported by the LibraryItem.create or LibraryItem.deploy operation. For example, a non-required parameter was ignored.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.ovf_info" + } + } + }, + "required": [ + "errors", + "warnings", + "information" + ] + }, + "vcenter.ovf.library_item.storage_group_mapping": { + "type": "object", + "properties": { + "type": { + "description": "Type of storage deployment target to use for the vmw:StorageGroupSection section. The specified value must be DATASTORE or STORAGE_PROFILE.", + "$ref": "#/definitions/vcenter.ovf.library_item.storage_group_mapping.type" + }, + "datastore_id": { + "description": "Target datastore to be used for the storage group.\nThis field is optional and it is only relevant when the value of LibraryItem.StorageGroupMapping.type is DATASTORE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_profile_id": { + "description": "Target storage profile to be used for the storage group.\nThis field is optional and it is only relevant when the value of LibraryItem.StorageGroupMapping.type is STORAGE_PROFILE.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: StorageProfile.", + "type": "string" + }, + "provisioning": { + "description": "Target provisioning type to use for the storage group.\nIf unset, LibraryItem.ResourcePoolDeploymentSpec.storage-provisioning will be used.", + "$ref": "#/definitions/vcenter.ovf.disk_provisioning_type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.ovf.library_item.storage_group_mapping.type": { + "type": "string", + "description": "The LibraryItem.StorageGroupMapping.Type enumerated type defines the supported types of storage targets for sections of type vmw:StorageGroupSection in the OVF descriptor.", + "enum": [ + "DATASTORE", + "STORAGE_PROFILE" + ] + }, + "vcenter.ovf.library_item.vm_config_spec": { + "type": "object", + "properties": { + "provider": { + "description": "The LibraryItem.VmConfigSpec.provider selects a provider from the list of available providers.", + "$ref": "#/definitions/vcenter.ovf.library_item.vm_config_spec_provider" + }, + "xml": { + "description": "The LibraryItem.VmConfigSpec.xml is a conditional configuration made available upon selecting the XML. It is used to pass in a vim.vm.ConfigSpec for a virtual machine that has been serialized to XML and base64 encoded.\nThis field is optional and it is only relevant when the value of LibraryItem.VmConfigSpec.provider is XML.", + "type": "string" + } + }, + "required": [ + "provider" + ] + }, + "vcenter.ovf.library_item.vm_config_spec_provider": { + "type": "string", + "description": "The LibraryItem.VmConfigSpecProvider is used to provide the optional LibraryItem.VmConfigSpec used when deploying an OVF template.", + "enum": [ + "XML" + ] + }, + "vcenter.ovf.library_item_create": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "Client-generated token used to retry a request if the client fails to get a response from the server. If the original request succeeded, the result of that request will be returned, otherwise the operation will be retried.\nIf unset, the server will create a token." + }, + "source": { + "$ref": "#/definitions/vcenter.ovf.library_item.deployable_identity", + "description": "Identifier of the virtual machine or virtual appliance to use as the source." + }, + "target": { + "$ref": "#/definitions/vcenter.ovf.library_item.create_target", + "description": "Specification of the target content library and library item." + }, + "create_spec": { + "$ref": "#/definitions/vcenter.ovf.library_item.create_spec", + "description": "Information used to create the OVF package from the source virtual machine or virtual appliance." + } + }, + "required": [ + "source", + "target", + "create_spec" + ] + }, + "vcenter.ovf.library_item_deploy": { + "type": "object", + "properties": { + "client_token": { + "type": "string", + "description": "Client-generated token used to retry a request if the client fails to get a response from the server. If the original request succeeded, the result of that request will be returned, otherwise the operation will be retried.\nIf unset, the server will create a token." + }, + "target": { + "$ref": "#/definitions/vcenter.ovf.library_item.deployment_target", + "description": "Specification of the deployment target." + }, + "deployment_spec": { + "$ref": "#/definitions/vcenter.ovf.library_item.resource_pool_deployment_spec", + "description": "Specification of how the OVF package should be deployed to the target." + } + }, + "required": [ + "target", + "deployment_spec" + ] + }, + "vcenter.ovf.library_item_filter": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/vcenter.ovf.library_item.deployment_target", + "description": "Specification of the deployment target." + } + }, + "required": [ + "target" + ] + }, + "vcenter.ovf.ovf_error": { + "type": "object", + "properties": { + "category": { + "description": "The message category.", + "$ref": "#/definitions/vcenter.ovf.ovf_message.category" + }, + "issues": { + "description": "List of parse issues (see ParseIssue).\nThis field is optional and it is only relevant when the value of OvfMessage.category is VALIDATION.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.parse_issue" + } + }, + "name": { + "description": "The name of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "value": { + "description": "The value of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "message": { + "description": "A localizable message.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "error": { + "description": "Represents a server Error.\nThis field is optional and it is only relevant when the value of OvfMessage.category is SERVER.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in Error. When operations return a value of this structure as a result, the field will contain all the attributes defined in Error.", + "type": "object" + } + }, + "required": [ + "category" + ] + }, + "vcenter.ovf.ovf_info": { + "type": "object", + "properties": { + "messages": { + "description": "A list of localizable messages (see LocalizableMessage).", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "messages" + ] + }, + "vcenter.ovf.ovf_message.category": { + "type": "string", + "description": "The OvfMessage.Category enumerated type defines the categories of messages (see OvfMessage).", + "enum": [ + "VALIDATION", + "INPUT", + "SERVER" + ] + }, + "vcenter.ovf.ovf_warning": { + "type": "object", + "properties": { + "category": { + "description": "The message category.", + "$ref": "#/definitions/vcenter.ovf.ovf_message.category" + }, + "issues": { + "description": "List of parse issues (see ParseIssue).\nThis field is optional and it is only relevant when the value of OvfMessage.category is VALIDATION.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.ovf.parse_issue" + } + }, + "name": { + "description": "The name of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "value": { + "description": "The value of input parameter.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "type": "string" + }, + "message": { + "description": "A localizable message.\nThis field is optional and it is only relevant when the value of OvfMessage.category is INPUT.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "error": { + "description": "Represents a server Error.\nThis field is optional and it is only relevant when the value of OvfMessage.category is SERVER.\nWhen clients pass a value of this structure as a parameter, the field must contain all the attributes defined in Error. When operations return a value of this structure as a result, the field will contain all the attributes defined in Error.", + "type": "object" + } + }, + "required": [ + "category" + ] + }, + "vcenter.ovf.parse_issue": { + "type": "object", + "properties": { + "category": { + "description": "The category of the parse issue.", + "$ref": "#/definitions/vcenter.ovf.parse_issue.category" + }, + "file": { + "description": "The name of the file in which the parse issue was found.", + "type": "string" + }, + "line_number": { + "description": "The line number of the line in the file (see ParseIssue.file) where the parse issue was found (or -1 if not applicable).", + "type": "integer", + "format": "int64" + }, + "column_number": { + "description": "The position in the line (see ParseIssue.line-number) (or -1 if not applicable).", + "type": "integer", + "format": "int64" + }, + "message": { + "description": "A localizable message describing the parse issue.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "category", + "file", + "line_number", + "column_number", + "message" + ] + }, + "vcenter.ovf.parse_issue.category": { + "type": "string", + "description": "The ParseIssue.Category enumerated type defines the categories of issues that can be found when parsing files inside an OVF package (see ParseIssue) including OVF descriptor (which is an XML document), manifest and certificate files, or exporting an OVF package.", + "enum": [ + "VALUE_ILLEGAL", + "ATTRIBUTE_REQUIRED", + "ATTRIBUTE_ILLEGAL", + "ELEMENT_REQUIRED", + "ELEMENT_ILLEGAL", + "ELEMENT_UNKNOWN", + "SECTION_UNKNOWN", + "SECTION_RESTRICTION", + "PARSE_ERROR", + "GENERATE_ERROR", + "VALIDATION_ERROR", + "EXPORT_ERROR", + "INTERNAL_ERROR" + ] + }, + "vcenter.resource_pool.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.resource_pool.create_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the resource pool.", + "type": "string" + }, + "parent": { + "description": "Parent of the created resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "cpu_allocation": { + "description": "Resource allocation for CPU.\nif unset or empty, use the default CPU allocation specification.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_create_spec" + }, + "memory_allocation": { + "description": "Resource allocation for memory.\nif unset or empty, use the default memory allocation specification.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_create_spec" + } + }, + "required": [ + "name", + "parent" + ] + }, + "vcenter.resource_pool.filter_spec": { + "type": "object", + "properties": { + "resource_pools": { + "description": "Identifiers of resource pools that can match the filter.\nIf unset or empty, resource pools with any identifier match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "names": { + "description": "Names that resource pools must have to match the filter (see ResourcePool.Info.name).\nIf unset or empty, resource pools with any name match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "parent_resource_pools": { + "description": "Resource pools that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any resource pool match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "datacenters": { + "description": "Datacenters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any datacenter match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: Datacenter. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: Datacenter.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "hosts": { + "description": "Hosts that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any host match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: HostSystem. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: HostSystem.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "clusters": { + "description": "Clusters that must contain the resource pool for the resource pool to match the filter.\nIf unset or empty, resource pools in any cluster match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ClusterComputeResource.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.resource_pool.info": { + "type": "object", + "properties": { + "name": { + "description": "Name of the vCenter Server resource pool.", + "type": "string" + }, + "resource_pools": { + "description": "Identifiers of the child resource pools contained in this resource pool.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: ResourcePool.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "cpu_allocation": { + "description": "Resource allocation information for CPU.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_info" + }, + "memory_allocation": { + "description": "Resource allocation information for memory.\nThis field is optional because it was added in a newer version than its parent node.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_info" + } + }, + "required": [ + "name", + "resource_pools" + ] + }, + "vcenter.resource_pool.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.resource_pool.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.resource_pool.resource_allocation_create_spec": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.reservation will be set to 0.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.expandable-reservation will be set to true.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.limit will be set to -1.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.\nIf unset or empty, ResourcePool.ResourceAllocationCreateSpec.shares will be set to 'NORMAL'.", + "$ref": "#/definitions/vcenter.resource_pool.shares_info" + } + } + }, + "vcenter.resource_pool.resource_allocation_info": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.", + "$ref": "#/definitions/vcenter.resource_pool.shares_info" + } + }, + "required": [ + "reservation", + "expandable_reservation", + "limit", + "shares" + ] + }, + "vcenter.resource_pool.resource_allocation_update_spec": { + "type": "object", + "properties": { + "reservation": { + "description": "Amount of resource that is guaranteed available to a resource pool. Reserved resources are not wasted if they are not used. If the utilization is less than the reservation, the resources can be utilized by other running virtual machines. Units are MB fo memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.reservation will be set to 0.", + "type": "integer", + "format": "int64" + }, + "expandable_reservation": { + "description": "In a resource pool with an expandable reservation, the reservation can grow beyond the specified value, if the parent resource pool has unreserved resources. A non-expandable reservation is called a fixed reservation.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.expandable-reservation will be set to true.", + "type": "boolean" + }, + "limit": { + "description": "The utilization of a resource pool will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of resource pools independent of available resources. If set to -1, then there is no fixed limit on resource usage (only bounded by available resources and shares). Units are MB for memory, and MHz for CPU.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.limit will be set to -1.", + "type": "integer", + "format": "int64" + }, + "shares": { + "description": "Shares are used in case of resource contention.\nIf unset or empty, ResourcePool.ResourceAllocationUpdateSpec.shares will be set to 'NORMAL'.", + "$ref": "#/definitions/vcenter.resource_pool.shares_info" + } + } + }, + "vcenter.resource_pool.shares_info": { + "type": "object", + "properties": { + "level": { + "description": "The allocation level. It maps to a pre-determined set of numeric values for shares. If the shares value does not map to a predefined size, then the level is set as CUSTOM.", + "$ref": "#/definitions/vcenter.resource_pool.shares_info.level" + }, + "shares": { + "description": "When ResourcePool.SharesInfo.level is set to CUSTOM, it is the number of shares allocated. Otherwise, this value is ignored. \n There is no unit for this value. It is a relative measure based on the settings for other resource pools.\n\nThis field is optional and it is only relevant when the value of ResourcePool.SharesInfo.level is CUSTOM.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "level" + ] + }, + "vcenter.resource_pool.shares_info.level": { + "type": "string", + "description": "The ResourcePool.SharesInfo.Level enumerated type defines the possible values for the allocation level.", + "enum": [ + "LOW", + "NORMAL", + "HIGH", + "CUSTOM" + ] + }, + "vcenter.resource_pool.summary": { + "type": "object", + "properties": { + "resource_pool": { + "description": "Identifier of the resource pool.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "name": { + "description": "Name of the resource pool.", + "type": "string" + } + }, + "required": [ + "resource_pool", + "name" + ] + }, + "vcenter.resource_pool.update_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the resource pool.\nif unset or empty, the name of the resource pool will not be changed.", + "type": "string" + }, + "cpu_allocation": { + "description": "Resource allocation for CPU.\nif unset or empty, the CPU allocation of the resource pool will not be changed.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_update_spec" + }, + "memory_allocation": { + "description": "Resource allocation for memory.\nif unset or empty, the memory allocation of the resource pool will not be changed.", + "$ref": "#/definitions/vcenter.resource_pool.resource_allocation_update_spec" + } + } + }, + "vcenter.resource_pool_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.resource_pool.create_spec", + "description": "Specification of the new resource pool to be created, see ResourcePool.CreateSpec." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.resource_pool_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.resource_pool.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.resource_pool_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.resource_pool.update_spec", + "description": "Specification for updating the configuration of the resource pool." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.services.service.health": { + "type": "string", + "description": "The Service.Health enumerated type defines the possible values for health of a service.", + "enum": [ + "DEGRADED", + "HEALTHY", + "HEALTHY_WITH_WARNINGS" + ] + }, + "vcenter.services.service.info": { + "type": "object", + "properties": { + "name_key": { + "description": "Service name key. Can be used to lookup resource bundle", + "type": "string" + }, + "description_key": { + "description": "Service description key. Can be used to lookup resource bundle", + "type": "string" + }, + "startup_type": { + "description": "Startup Type.", + "$ref": "#/definitions/vcenter.services.service.startup_type" + }, + "state": { + "description": "Running State.", + "$ref": "#/definitions/vcenter.services.service.state" + }, + "health": { + "description": "Health of service.\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "$ref": "#/definitions/vcenter.services.service.health" + }, + "health_messages": { + "description": "Localizable messages associated with the health of the service\nThis field is optional and it is only relevant when the value of Service.Info.state is STARTED.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "name_key", + "description_key", + "startup_type", + "state" + ] + }, + "vcenter.services.service.list_details_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.services.service.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.services.service.startup_type": { + "type": "string", + "description": "The Service.StartupType enumerated type defines valid Startup Type for vCenter Server services.", + "enum": [ + "MANUAL", + "AUTOMATIC", + "DISABLED" + ] + }, + "vcenter.services.service.state": { + "type": "string", + "description": "The Service.State enumerated type defines valid Run State for services.", + "enum": [ + "STARTING", + "STOPPING", + "STARTED", + "STOPPED" + ] + }, + "vcenter.services.service.update_spec": { + "type": "object", + "properties": { + "startup_type": { + "description": "Startup Type\nIf unspecified, leaves value unchanged.", + "$ref": "#/definitions/vcenter.services.service.startup_type" + } + } + }, + "vcenter.services.service_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.services.service.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.services.service_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.services.service.update_spec", + "description": "Service Update specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.storage.policies.VM.info": { + "type": "object", + "properties": { + "vm_home": { + "description": "Flag to indicate whether or not the virtual machine home is associated with the given storage policy.", + "type": "boolean" + }, + "disks": { + "description": "List of the virtual disks that are associated with the given storage policy.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "vm_home", + "disks" + ] + }, + "vcenter.storage.policies.VM.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.storage.policies.VM.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.storage.policies.check_compatibility_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.storage.policies.compatibility_info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.storage.policies.compatibility_info": { + "type": "object", + "properties": { + "compatible_datastores": { + "description": "Info about a list of datastores compatible with a specific storage policy.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.storage.policies.compatible_datastore_info" + } + } + }, + "required": [ + "compatible_datastores" + ] + }, + "vcenter.storage.policies.compatible_datastore_info": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "vcenter.storage.policies.compliance.VM.filter_spec": { + "type": "object", + "properties": { + "status": { + "description": "Compliance Status that a virtual machine must have to match the filter. Atleast one status must be specified.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.VM.status" + } + }, + "vms": { + "description": "Identifiers of virtual machines that can match the filter\nIf unset or empty, virtual machines with any identifier matches the filter\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: VirtualMachine.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "status" + ] + }, + "vcenter.storage.policies.compliance.VM.info": { + "type": "object", + "properties": { + "vm_home": { + "description": "Compliance status of the virtual machine home.\nIf unset or empty, virtual machine home is not associated with a storage policy.", + "$ref": "#/definitions/vcenter.storage.policies.compliance.VM.status" + }, + "disks": { + "description": "A Map of virtual disks and their compliance status If empty, the virtual machine does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.VM.status" + } + } + } + } + }, + "required": [ + "disks" + ] + }, + "vcenter.storage.policies.compliance.VM.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.VM.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.storage.policies.compliance.VM.status": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "vcenter.storage.policies.compliance.filter_spec": { + "type": "object", + "properties": { + "status": { + "description": "Compliance Status that a virtual machine must have to match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.status" + } + } + }, + "required": [ + "status" + ] + }, + "vcenter.storage.policies.compliance.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.storage.policies.compliance.status": { + "type": "string", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "vcenter.storage.policies.compliance.summary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of virtual machine\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "vm_home": { + "description": "Compliance status of the virtual machine home.\nIf unset or empty, vmHome is not associated with a storage policy.", + "$ref": "#/definitions/vcenter.storage.policies.compliance.status" + }, + "disks": { + "description": "List of the virtual hard disk.\nIf unset or empty, virtual machine entity does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.storage.policies.compliance.status" + } + } + } + } + }, + "required": [ + "vm" + ] + }, + "vcenter.storage.policies.filter_spec": { + "type": "object", + "properties": { + "policies": { + "description": "Identifiers of storage policies that can match the filter.\nIf unset or empty, storage policies with any identifiers match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.StoragePolicy.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.storage.policies.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.storage.policies.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.storage.policies.summary": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "name": { + "description": "Name of the storage policy.", + "type": "string" + }, + "description": { + "description": "Description of the storage policy.", + "type": "string" + } + }, + "required": [ + "policy", + "name", + "description" + ] + }, + "vcenter.storage.policies_check_compatibility": { + "type": "object", + "properties": { + "datastores": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "description": "Datastores used to check compatibility against a storage policy. The number of datastores is limited to 1024.\nThe parameter must contain identifiers for the resource type: Datastore." + } + }, + "required": [ + "datastores" + ] + }, + "vcenter.system_config.deployment_type.info": { + "type": "object", + "properties": { + "type": { + "description": "The type of the appliance.", + "$ref": "#/definitions/vcenter.deployment.appliance_type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.system_config.deployment_type.reconfigure_spec": { + "type": "object", + "properties": { + "type": { + "description": "The type of the appliance.", + "$ref": "#/definitions/vcenter.deployment.appliance_type" + }, + "remote_psc": { + "description": "External PSC to register with when reconfiguring a VCSA_EMBEDDED appliance to a VCSA_EXTERNAL appliance.\nOnly required when reconfiguring an VCSA_EMBEDDED node to a VCSA_EXTERNAL.", + "$ref": "#/definitions/vcenter.deployment.remote_psc_spec" + } + }, + "required": [ + "type" + ] + }, + "vcenter.system_config.deployment_type_reconfigure": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.system_config.deployment_type.reconfigure_spec", + "description": "ReconfigureSpec to set the appliance type." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.system_config.deployment_type_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.system_config.deployment_type.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.system_config.psc_registration.info": { + "type": "object", + "properties": { + "address": { + "description": "The IP address or DNS resolvable name of the PSC this appliance is registered with.", + "type": "string" + }, + "https_port": { + "description": "The HTTPs port used by the external PSC.", + "type": "integer", + "format": "int64" + }, + "sso_domain": { + "description": "The Single Sign-On domain name of the external PSC.", + "type": "string" + } + }, + "required": [ + "address", + "https_port", + "sso_domain" + ] + }, + "vcenter.system_config.psc_registration_repoint": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.deployment.remote_psc_spec", + "description": "RemotePscSpec structure containing information about the external PSC node to repoint this vCenter Server appliance to." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.system_config.psc_registration_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.system_config.psc_registration.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.tokenservice.invalid_grant": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + } + }, + "required": [ + "messages" + ] + }, + "vcenter.tokenservice.invalid_grant_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.tokenservice.invalid_grant" + } + } + }, + "vcenter.tokenservice.invalid_request": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + } + }, + "required": [ + "messages" + ] + }, + "vcenter.tokenservice.invalid_request_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.tokenservice.invalid_request" + } + } + }, + "vcenter.tokenservice.invalid_scope": { + "type": "object", + "properties": { + "messages": { + "description": "Stack of one or more localizable messages for human error consumers. \n The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "data": { + "description": "Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully. \n Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports. The ArgumentLocations, FileLocations, and TransientIndication structures are intended as possible values for this field. DynamicID may also be useful as a value for this field (although that is not its primary purpose). Some services may provide their own specific structures for use as the value of this field when reporting errors from their operations.\n\nSome operations will not set this field when reporting errors.", + "type": "object" + } + }, + "required": [ + "messages" + ] + }, + "vcenter.tokenservice.invalid_scope_error": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.tokenservice.invalid_scope" + } + } + }, + "vcenter.tokenservice.token_exchange.exchange_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.tokenservice.token_exchange.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.tokenservice.token_exchange.exchange_spec": { + "type": "object", + "properties": { + "grant_type": { + "description": "The value of \"urn:ietf:params:oauth:grant-type:token-exchange\" indicates that a token exchange is being performed.", + "type": "string" + }, + "resource": { + "description": "Indicates the location of the target service or resource where the client intends to use the requested security token.\nif can be inferred from other arguments or not needed for specific case of exchange.", + "type": "string" + }, + "audience": { + "description": "The logical name of the target service where the client intends to use the requested security token. This serves a purpose similar to the TokenExchange.ExchangeSpec.resource parameter, but with the client providing a logical name rather than a location.\nif can be inferred from other arguments or not needed for specific case of exchange.", + "type": "string" + }, + "scope": { + "description": "A list of space-delimited, case-sensitive strings, that allow the client to specify the desired scope of the requested security token in the context of the service or resource where the token will be used.\nif can be inferred from other arguments or not needed for specific case of exchange.", + "type": "string" + }, + "requested_token_type": { + "description": "An identifier for the type of the requested security token. If the requested type is unspecified, the issued token type is at the discretion of the server and may be dictated by knowledge of the requirements of the service or resource indicated by the TokenExchange.ExchangeSpec.resource or TokenExchange.ExchangeSpec.audience parameter.\nif can be inferred from other arguments or not needed for specific case of exchange.", + "type": "string" + }, + "subject_token": { + "description": "A security token that represents the identity of the party on behalf of whom exchange is being made. Typically, the subject of this token will be the subject of the security token issued. Token is base64-encoded.", + "type": "string" + }, + "subject_token_type": { + "description": "An identifier, that indicates the type of the security token in the TokenExchange.ExchangeSpec.subject-token parameter.", + "type": "string" + }, + "actor_token": { + "description": "A security token that represents the identity of the acting party. Typically, this will be the party that is authorized to use the requested security token and act on behalf of the subject.\nif not needed for specific case of exchange.", + "type": "string" + }, + "actor_token_type": { + "description": "An identifier, that indicates the type of the security token in the TokenExchange.ExchangeSpec.actor-token parameter.\nif TokenExchange.ExchangeSpec.actor-token parameter is not present.", + "type": "string" + } + }, + "required": [ + "grant_type", + "subject_token", + "subject_token_type" + ] + }, + "vcenter.tokenservice.token_exchange.info": { + "type": "object", + "properties": { + "access_token": { + "description": "The security token issued by the server in response to the token exchange request. Token is base64-encoded.", + "type": "string" + }, + "issued_token_type": { + "description": "An identifier, that indicates the type of the security token in the TokenExchange.Info.access-token parameter.", + "type": "string" + }, + "token_type": { + "description": "A case-insensitive value specifying the method of using the access token issued.", + "type": "string" + }, + "expires_in": { + "description": "The validity lifetime, in seconds, of the token issued by the server.\nif not applicable for issued token.", + "type": "integer", + "format": "int64" + }, + "scope": { + "description": "Scope of the issued security token.\nif the scope of the issued security token is identical to the scope requested by the client.", + "type": "string" + }, + "refresh_token": { + "description": "A refresh token can be issued in cases where the client of the token exchange needs the ability to access a resource even when the original credential is no longer valid.\nif not needed for specific case of exchange.", + "type": "string" + } + }, + "required": [ + "access_token", + "issued_token_type", + "token_type" + ] + }, + "vcenter.tokenservice.token_exchange_exchange": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.tokenservice.token_exchange.exchange_spec", + "description": "TokenExchange.ExchangeSpec structure contains arguments that define exchange process." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.topology.nodes.appliance_type": { + "type": "string", + "enum": [ + "VCSA_EMBEDDED", + "VCSA_EXTERNAL", + "PSC_EXTERNAL" + ] + }, + "vcenter.topology.nodes.filter_spec": { + "type": "object", + "properties": { + "types": { + "description": "Types of the appliance that a vCenter and Platform Services Controller node must be to match the filter (see Nodes.ApplianceType.\nIf unset or empty, node of any ApplianceType match the filter.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/vcenter.topology.nodes.appliance_type" + } + } + } + }, + "vcenter.topology.nodes.info": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name of the node.", + "type": "string" + }, + "type": { + "description": "Appliance type of the node.", + "$ref": "#/definitions/vcenter.topology.nodes.appliance_type" + }, + "replication_partners": { + "description": "List of replication partners' node identifiers. Identifiers can be either IP address or DNS resolvable name of the partner node.\nThis field is optional and it is only relevant when the value of Nodes.Info.type is one of VCSA_EMBEDDED or PSC_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "items": { + "type": "string" + } + }, + "client_affinity": { + "description": "Identifier of the affinitized Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the affinitized node.\nThis field is optional and it is only relevant when the value of Nodes.Info.type is VCSA_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + } + }, + "required": [ + "domain", + "type" + ] + }, + "vcenter.topology.nodes.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.topology.nodes.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.topology.nodes.summary": { + "type": "object", + "properties": { + "node": { + "description": "Identifier for the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "type": { + "description": "Appliance type of the node.", + "$ref": "#/definitions/vcenter.topology.nodes.appliance_type" + }, + "replication_partners": { + "description": "List of replication partners' node identifiers. Identifiers can be either IP address or DNS resolvable name of the partner node.\nThis field is optional and it is only relevant when the value of Nodes.Summary.type is one of VCSA_EMBEDDED or PSC_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "items": { + "type": "string" + } + }, + "client_affinity": { + "description": "Identifier of the affinitized Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the affinitized node.\nThis field is optional and it is only relevant when the value of Nodes.Summary.type is VCSA_EXTERNAL.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + } + }, + "required": [ + "node", + "type" + ] + }, + "vcenter.topology.nodes_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.topology.nodes.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.topology.replication_status.filter_spec": { + "type": "object", + "properties": { + "nodes": { + "description": "Identifier that a vCenter and Platform Services Controller node must have to match the filter. (see ReplicationStatus.Summary.node).\nIf unset or empty, all vCenter and Platform Services Controller nodes of type VCSA_EMBEDDED/PSC_EXTERNAL match the filter.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.VCenter.name.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + } + }, + "vcenter.topology.replication_status.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.topology.replication_status.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.topology.replication_status.summary": { + "type": "object", + "properties": { + "node": { + "description": "Identifier for the vCenter or Platform Services Controller node. Identifier can be either IP address or DNS resolvable name of the node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "replication_partner": { + "description": "Identifier for the vCenter or Platform Services Controller replication partner. Identifier can be either IP address or DNS resolvable name of the replication partner.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.VCenter.name. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.VCenter.name.", + "type": "string" + }, + "partner_available": { + "description": "Indicates if the VMware Directory Service on partner is reachable or not.", + "type": "boolean" + }, + "status_available": { + "description": "Indicates if the replication status for the node with respect to replication partner can be retrieved or not.", + "type": "boolean" + }, + "replicating": { + "description": "Indicates if node is processing replication changes from the replication partner.\nThis field will be unset if the partner host or replication status is not available, i.e, if ReplicationStatus.Summary.partner-available or ReplicationStatus.Summary.status-available is false.", + "type": "boolean" + }, + "change_lag": { + "description": "Number of replication changes node is behind the replication partner.\nThis field will be unset if the partner host or replication status is not available, i.e, if ReplicationStatus.Summary.partner-available or ReplicationStatus.Summary.status-available is false.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "node", + "replication_partner", + "partner_available", + "status_available" + ] + }, + "vcenter.vcha.cluster.active.info": { + "type": "object", + "properties": { + "management": { + "description": "IP specification for the Management network.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + }, + "ha": { + "description": "IP specification for the HA network.\nIf unset, then the second NIC of the Active Node of the VCHA cluster is not configured.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + }, + "placement": { + "description": "Contains the placement information of the active node.\nIf unset, the request specified that placement information of the active node should not be included.", + "$ref": "#/definitions/vcenter.vcha.placement_info" + } + }, + "required": [ + "management" + ] + }, + "vcenter.vcha.cluster.active_get": { + "type": "object", + "properties": { + "vc_spec": { + "$ref": "#/definitions/vcenter.vcha.credentials_spec", + "description": "Contains active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance." + }, + "partial": { + "type": "boolean", + "description": "If true, then return only the information that does not require connecting to the Active vCenter Server. \n If false or unset, then return all the information.\nIf unset, then return all the information." + } + } + }, + "vcenter.vcha.cluster.active_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.active.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.active_spec": { + "type": "object", + "properties": { + "ha_network_type": { + "description": "The type of the Network object used by the HA network.\n If the Cluster.ActiveSpec.ha-network field is set, then the Cluster.ActiveSpec.ha-network-type field must be set.\n If the Cluster.ActiveSpec.ha-network field is unset, then the Cluster.ActiveSpec.ha-network-type field is ignored.\nIf unset and the Cluster.ActiveSpec.ha-network field is unset, then the second NIC is assumed to be already configured.\n If unset and the Cluster.ActiveSpec.ha-network field is set, then an error is reported.", + "$ref": "#/definitions/vcenter.vcha.network_type" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\n If the Cluster.ActiveSpec.ha-network field is set, then the Cluster.ActiveSpec.ha-network-type field must be set.\n If the Cluster.ActiveSpec.ha-network field is unset, then the Cluster.ActiveSpec.ha-network-type field is ignored.\nIf unset and the Cluster.ActiveSpec.ha-network-type field is unset, then the second NIC is assumed to be already configured.\n If unset and the Cluster.ActiveSpec.ha-network field is set, then an error is reported.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + } + }, + "required": [ + "ha_ip" + ] + }, + "vcenter.vcha.cluster.cluster_mode": { + "type": "string", + "description": "The Cluster.ClusterMode enumerated type defines the possible modes for a VCHA Cluster.", + "enum": [ + "ENABLED", + "DISABLED", + "MAINTENANCE" + ] + }, + "vcenter.vcha.cluster.cluster_state": { + "type": "string", + "description": "The Cluster.ClusterState enumerated type defines the possible for a VCHA Cluster.", + "enum": [ + "HEALTHY", + "DEGRADED", + "ISOLATED" + ] + }, + "vcenter.vcha.cluster.config_state": { + "type": "string", + "description": "The Cluster.ConfigState enumerated type defines the VCHA configuration state.", + "enum": [ + "CONFIGURED", + "NOTCONFIGURED", + "INVALID", + "PREPARED" + ] + }, + "vcenter.vcha.cluster.deploy_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "deployment": { + "description": "Contains the deployment type.", + "$ref": "#/definitions/vcenter.vcha.cluster.type" + }, + "active": { + "description": "Contains the active node's network configuration.", + "$ref": "#/definitions/vcenter.vcha.cluster.active_spec" + }, + "passive": { + "description": "Contains the passive node's placement configuration.", + "$ref": "#/definitions/vcenter.vcha.cluster.passive_spec" + }, + "witness": { + "description": "Contains the witness node's placement configuration.", + "$ref": "#/definitions/vcenter.vcha.cluster.witness_spec" + } + }, + "required": [ + "deployment", + "active", + "passive", + "witness" + ] + }, + "vcenter.vcha.cluster.deploy_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.deployment_type.info": { + "type": "object", + "properties": { + "deployment_type": { + "description": "Identifies the deployment type of the VCHA cluster.", + "$ref": "#/definitions/vcenter.vcha.cluster.deployment_type.type" + } + }, + "required": [ + "deployment_type" + ] + }, + "vcenter.vcha.cluster.deployment_type.type": { + "type": "string", + "description": "The DeploymentType.Type enumerated type defines the possible deployment types for a VCHA Cluster.", + "enum": [ + "NONE", + "AUTO", + "MANUAL" + ] + }, + "vcenter.vcha.cluster.deployment_type_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.deployment_type.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.error_condition": { + "type": "object", + "properties": { + "error": { + "description": "Contains an error condition.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "recommendation": { + "description": "Contains a recommendation on handling the error condition.\nIf unset, there is no tip for the error condition.", + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "required": [ + "error" + ] + }, + "vcenter.vcha.cluster.failover_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.info": { + "type": "object", + "properties": { + "config_state": { + "description": "Configuration state of the VCHA cluster.\n The active node's management vCenter server credentials are not required to populate this field.\nIf unset, then the information is unavailable.", + "$ref": "#/definitions/vcenter.vcha.cluster.config_state" + }, + "node1": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_info" + }, + "node2": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_info" + }, + "witness": { + "description": "Node configuration information for the VCHA cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.witness_info" + }, + "mode": { + "description": "Operational mode of the VCHA Cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.cluster_mode" + }, + "health_state": { + "description": "Last known state of the VCHA Cluster.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.cluster_state" + }, + "health_exception": { + "description": "Health warning messages if the health information is unavailable.\nIf unset, then the cluster is in a healthy state.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "health_warnings": { + "description": "A collection of messages describing the reason for a non-healthy Cluster.\nIf unset, then the cluster is in a healthy state.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vcha.cluster.error_condition" + } + }, + "manual_failover_allowed": { + "description": "Specifies if manual failover is allowed.\nIf unset, then the cluster state healthy and manual failover allowance in accordance with the cluster mode.", + "type": "boolean" + }, + "auto_failover_allowed": { + "description": "Specifies if automatic failover is allowed.\nIf unset, then the cluster state healthy and automatic failover allowance in accordance with the cluster mode.", + "type": "boolean" + } + } + }, + "vcenter.vcha.cluster.ip_family": { + "type": "string", + "description": "The Cluster.IpFamily enumerated type defines the IP address family.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "vcenter.vcha.cluster.ip_info": { + "type": "object", + "properties": { + "ip_family": { + "description": "Family of the ip.", + "$ref": "#/definitions/vcenter.vcha.cluster.ip_family" + }, + "ipv4": { + "description": "If the type of the ip family is IPV4, then this will point to IPv4 address specification.\nThis field is optional and it is only relevant when the value of Cluster.IpInfo.ip-family is IPV4.", + "$ref": "#/definitions/vcenter.vcha.cluster.ipv4_info" + }, + "ipv6": { + "description": "If the type of the ip family is IPV6, then this will point to IPv6 address specification.\nThis field is optional and it is only relevant when the value of Cluster.IpInfo.ip-family is IPV6.", + "$ref": "#/definitions/vcenter.vcha.cluster.ipv6_info" + }, + "gateway_ip": { + "description": "Gateway IP address.\nIf unset, no gateway is specified.", + "type": "string" + } + }, + "required": [ + "ip_family" + ] + }, + "vcenter.vcha.cluster.ipv4_info": { + "type": "object", + "properties": { + "address": { + "description": "IP address of the configured network interface.", + "type": "string" + }, + "subnet_mask": { + "description": "The subnet mask of the interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix of the interface.\nIf unset , then the subnet mask is invalid.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "subnet_mask" + ] + }, + "vcenter.vcha.cluster.ipv6_info": { + "type": "object", + "properties": { + "address": { + "description": "IP address of the configured network interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix of the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "vcenter.vcha.cluster.mode.cluster_mode": { + "type": "string", + "description": "The Mode.ClusterMode enumerated type defines the possible modes for a VCHA Cluster.", + "enum": [ + "ENABLED", + "DISABLED", + "MAINTENANCE" + ] + }, + "vcenter.vcha.cluster.mode.info": { + "type": "object", + "properties": { + "mode": { + "description": "Identifies the mode of the VCHA cluster.", + "$ref": "#/definitions/vcenter.vcha.cluster.mode.cluster_mode" + } + }, + "required": [ + "mode" + ] + }, + "vcenter.vcha.cluster.mode.set_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.mode_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.mode.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.mode_set_task": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/definitions/vcenter.vcha.cluster.mode.cluster_mode", + "description": "Clustermode to change the VCHA cluster mode to." + } + }, + "required": [ + "mode" + ] + }, + "vcenter.vcha.cluster.node_info": { + "type": "object", + "properties": { + "failover_ip": { + "description": "Failover IP address that this node will assume after the failover to serve client requests. Each failover node can have a different failover IP address.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeInfo.failover-ip.\nIf unset, then it will assume the public IP address of the Active vCenter Server.", + "$ref": "#/definitions/vcenter.vcha.cluster.ip_info" + }, + "ha_ip": { + "description": "VCHA Cluster network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\n The active node's management vCenter server credentials are not required to populate this Cluster.NodeInfo.ha-ip.", + "$ref": "#/definitions/vcenter.vcha.cluster.ip_info" + }, + "runtime": { + "description": "Runtime information for the node in the VCHA Cluster.\n The active node's management vCenter server credentials are required to populate some fields of Cluster.NodeInfo.runtime.\nIf unset, then the information is unavailable or the specified Active vCenter server management credentials are invalid or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_runtime_info" + } + }, + "required": [ + "ha_ip" + ] + }, + "vcenter.vcha.cluster.node_role": { + "type": "string", + "description": "The Cluster.NodeRole enumerated type defines the role node can be in a VCHA Cluster.", + "enum": [ + "ACTIVE", + "PASSIVE", + "WITNESS" + ] + }, + "vcenter.vcha.cluster.node_runtime_info": { + "type": "object", + "properties": { + "state": { + "description": "Last known state of the node.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeRuntimeInfo.state.\nIf unset, then information is unavailable or the passive and witness nodes are not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_state" + }, + "role": { + "description": "Last known role of the node.\n The active node's management vCenter server credentials are not required to populate Cluster.NodeRuntimeInfo.role.\nIf unset, then information is unavailable or the passive and witness nodes are not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_role" + }, + "placement": { + "description": "Placement information of the node.\n The active node's management vCenter server credentials are required to populate most fields of Cluster.NodeRuntimeInfo.placement.\nIf unset, then the information is unavailable or the specified Active vCenter server management credentials are invalid or the node is not cloned yet or the VCHA cluster was deployed in a manual fashion.", + "$ref": "#/definitions/vcenter.vcha.placement_info" + } + } + }, + "vcenter.vcha.cluster.node_state": { + "type": "string", + "description": "The Cluster.NodeState enumerated type defines possible state a node can be in a VCHA Cluster.", + "enum": [ + "UP", + "DOWN" + ] + }, + "vcenter.vcha.cluster.node_vm_info": { + "type": "object", + "properties": { + "vm": { + "description": "The identifier of the virtual machine of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine:VCenter.", + "type": "string" + }, + "bios_uuid": { + "description": "BIOS UUID for the node.", + "type": "string" + } + }, + "required": [ + "vm", + "bios_uuid" + ] + }, + "vcenter.vcha.cluster.passive.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive.check_result" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.passive.check_result": { + "type": "object", + "properties": { + "warnings": { + "description": "A list of problems which may require attention, but which are not fatal.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "errors": { + "description": "A list of problems which are fatal to the operation and the operation will fail.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "warnings", + "errors" + ] + }, + "vcenter.vcha.cluster.passive.check_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "placement": { + "description": "Contains the node's placement information for validation.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + } + }, + "required": [ + "placement" + ] + }, + "vcenter.vcha.cluster.passive.redeploy_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "placement": { + "description": "Contains the node's placement information.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + }, + "ha_ip": { + "description": "Contains the VCHA HA network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\nIf unset, then the stored network configuration for the VCHA HA network for the passive node will be used.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + }, + "failover_ip": { + "description": "Failover IP address that this node must assume after the failover to serve client requests.\nIf unset, then the public IP address of the Active vCenter Server is assumed.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + } + }, + "required": [ + "placement" + ] + }, + "vcenter.vcha.cluster.passive.redeploy_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.passive_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive.check_spec", + "description": "Contains the passive node's placement specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.cluster.passive_redeploy_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.passive.redeploy_spec", + "description": "Contains the passive node's redeploy specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.cluster.passive_spec": { + "type": "object", + "properties": { + "placement": { + "description": "Contains the placement configuration of the node.\nIf unset, then the it is assumed that the clone will be done manually by the customer. In this case, the placement configuration for the witness node should also be omitted. Only the network configuration will be setup. Once the passive and witness nodes are cloned from the active node, the VCHA high availability is turned on.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + }, + "failover_ip": { + "description": "IP specification for the management network.\nIf unset, then it will assume the public IP address of the Active vCenter Server.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + } + }, + "required": [ + "ha_ip" + ] + }, + "vcenter.vcha.cluster.type": { + "type": "string", + "description": "The Cluster.Type enumerated type defines the possible deployment types for a VCHA Cluster.", + "enum": [ + "AUTO", + "MANUAL" + ] + }, + "vcenter.vcha.cluster.undeploy_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "force_delete": { + "description": "Flag controlling in what circumstances the virtual machines will be deleted. For this flag to take effect, the VCHA cluster should have been successfully configured using automatic deployment. \n - If true, the Cluster.UndeploySpec.vms field will be ignored, the VCHA cluster specific information is removed, and the passive and witness virtual machines will be deleted.\n - If false, the Cluster.UndeploySpec.vms field contains the information identifying the passive and witness virtual machines.\n \n = If the Cluster.UndeploySpec.vms field is set, then it will be validated prior to deleting the passive and witness virtual machines and VCHA cluster specific information is removed.\n = If the Cluster.UndeploySpec.vms field is unset, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.\n \nIf unset, the Cluster.UndeploySpec.vms field contains the information identifying the passive and witness virtual machines. \n - If the Cluster.UndeploySpec.vms field is set, then it will be validated prior to deleting the passive and witness virtual machines. VCHA cluster specific information is removed.\n - If the Cluster.UndeploySpec.vms field is unset, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.", + "type": "boolean" + }, + "vms": { + "description": "Contains virtual machine information for the passive and witness virtual machines. For this flag to take effect, the VCHA cluster should have been successfully configured using automatic deployment. \n If set, the Cluster.UndeploySpec.force-delete field controls whether this information is validated. \n\n - If the Cluster.UndeploySpec.force-delete field is true, then this information is ignored, VCHA cluster specific information is removed and the passive and witness virtual machines will be deleted.\n - If the Cluster.UndeploySpec.force-delete field is unset or false, then this information is validated prior to deleting the passive and witness virtual machines. VCHA cluster specific information is removed.\n \nIf unset, the Cluster.UndeploySpec.force-delete field controls the deletion of the passive and witness virtual machines. \n - If the Cluster.UndeploySpec.force-delete field is true, then the passive and witness virtual machines will be deleted. VCHA cluster specific information is removed. \n - If the Cluster.UndeploySpec.force-delete field is unset or false, then the passive and witness virtual machines will not be deleted. The customer should delete them in order to cleanup completely. VCHA cluster specific information is removed.", + "$ref": "#/definitions/vcenter.vcha.cluster.vm_info" + } + } + }, + "vcenter.vcha.cluster.undeploy_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.vm_info": { + "type": "object", + "properties": { + "passive": { + "description": "The virtual machine information of the passive node.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_vm_info" + }, + "witness": { + "description": "The virtual machine information of the witness node.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_vm_info" + } + }, + "required": [ + "passive", + "witness" + ] + }, + "vcenter.vcha.cluster.witness.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness.check_result" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.witness.check_result": { + "type": "object", + "properties": { + "warnings": { + "description": "A list of problems which may require attention, but which are not fatal.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + }, + "errors": { + "description": "A list of problems which are fatal to the operation and the operation will fail.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "warnings", + "errors" + ] + }, + "vcenter.vcha.cluster.witness.check_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "placement": { + "description": "Contains the node's placement information for validation.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + } + }, + "required": [ + "placement" + ] + }, + "vcenter.vcha.cluster.witness.redeploy_spec": { + "type": "object", + "properties": { + "vc_spec": { + "description": "Contains the active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance.", + "$ref": "#/definitions/vcenter.vcha.credentials_spec" + }, + "placement": { + "description": "Contains the node's placement information.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + }, + "ha_ip": { + "description": "Contains the VCHA HA network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\nIf unset, then the stored network configuration for the VCHA HA network for the witness node will be used.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + } + }, + "required": [ + "placement" + ] + }, + "vcenter.vcha.cluster.witness.redeploy_task_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster.witness_check": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness.check_spec", + "description": "Contains the witness node's placement specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.cluster.witness_info": { + "type": "object", + "properties": { + "ha_ip": { + "description": "VCHA Cluster network configuration of the node. All cluster communication (state replication, heartbeat, cluster messages) happens over this network.\n The active node's management vCenter server credentials are not required to populate Cluster.WitnessInfo.ha-ip.", + "$ref": "#/definitions/vcenter.vcha.cluster.ip_info" + }, + "runtime": { + "description": "Runtime information for the node in the VCHA Cluster.\n The active node's management vCenter server credentials are required to populate some fields of Cluster.WitnessInfo.runtime.\nIf unset, then the information is unavailable or the node is not cloned yet.", + "$ref": "#/definitions/vcenter.vcha.cluster.node_runtime_info" + } + }, + "required": [ + "ha_ip" + ] + }, + "vcenter.vcha.cluster.witness_redeploy_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.witness.redeploy_spec", + "description": "Contains the witness node's redeploy specification." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.cluster.witness_spec": { + "type": "object", + "properties": { + "placement": { + "description": "Contains the placement configuration of the node.\nIf unset, then it is assumed that the clone will be done manually by the customer. In this case, the placement configuration for the witness node should also be omitted. Only the network configuration will be setup. Once the passive and witness nodes are cloned from the active node, the VCHA high availability is turned on.", + "$ref": "#/definitions/vcenter.vcha.placement_spec" + }, + "ha_ip": { + "description": "IP specification for the HA network.", + "$ref": "#/definitions/vcenter.vcha.ip_spec" + } + }, + "required": [ + "ha_ip" + ] + }, + "vcenter.vcha.cluster_deploy_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.deploy_spec", + "description": "Contains the deploy specification for all three nodes of a VCHA cluster." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.cluster_failover_task": { + "type": "object", + "properties": { + "planned": { + "type": "boolean", + "description": "If false, a failover is initiated immediately and may result in data loss.\n If true, a failover is initated after the Active node flushes its state to Passive and there is no data loss." + } + }, + "required": [ + "planned" + ] + }, + "vcenter.vcha.cluster_get": { + "type": "object", + "properties": { + "vc_spec": { + "$ref": "#/definitions/vcenter.vcha.credentials_spec", + "description": "Contains active node's management vCenter server credentials.\nIf unset, then the active vCenter Server instance is assumed to be either self-managed or else in enhanced linked mode and managed by a linked vCenter Server instance." + }, + "partial": { + "type": "boolean", + "description": "If true, then return only the information that does not require connecting to the Active vCenter Server.\n If false or unset, then return all the information.\nIf unset, then return all the information." + } + } + }, + "vcenter.vcha.cluster_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.cluster.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.cluster_undeploy_task": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vcha.cluster.undeploy_spec", + "description": "Contains the undeploy specification for a VCHA cluster." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vcha.connection_spec": { + "type": "object", + "properties": { + "hostname": { + "description": "IP Address or DNS of the vCenter.", + "type": "string" + }, + "port": { + "description": "Port number.\nIf unset, port 443 will be used.", + "type": "integer", + "format": "int64" + }, + "ssl_thumbprint": { + "description": "SHA1 hash of the server SSL certificate.\nIf unset, empty ssl thumbprint is assumed.", + "type": "string" + }, + "username": { + "description": "Username to access the server.\nThis field is currently required. If unset, an error is returned. In the future, if this field is unset, the system will attempt to identify the user. If a user cannot be identified, then the requested operation will fail.", + "type": "string" + }, + "password": { + "description": "Password for the specified user.\nThis field is currently required. If unset, an empty password is assumed. In the future, if this field is unset, the system will attempt to authenticate the user. If a user cannot be identified, then the requested operation will fail.", + "type": "string", + "format": "password" + } + }, + "required": [ + "hostname" + ] + }, + "vcenter.vcha.credentials_spec": { + "type": "object", + "properties": { + "active_location": { + "description": "Connection information for the management vCenter Server of the Active Node in a VCHA Cluster.", + "$ref": "#/definitions/vcenter.vcha.connection_spec" + } + }, + "required": [ + "active_location" + ] + }, + "vcenter.vcha.disk_info": { + "type": "object", + "properties": { + "datastore": { + "description": "The identifier of the datastore to put all the virtual disks on.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore:VCenter.", + "type": "string" + }, + "datastore_name": { + "description": "The name of the datastore.", + "type": "string" + } + }, + "required": [ + "datastore", + "datastore_name" + ] + }, + "vcenter.vcha.disk_spec": { + "type": "object", + "properties": { + "datastore": { + "description": "The identifier of the datastore to put all the virtual disks on.\nThis field needs to be set. If unset, then see vim.vm.RelocateSpec.datastore.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore:VCenter.", + "type": "string" + } + } + }, + "vcenter.vcha.ip_family": { + "type": "string", + "description": "The IpFamily enumerated type defines the Ip address family.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "vcenter.vcha.ip_spec": { + "type": "object", + "properties": { + "ip_family": { + "description": "Family of the IP address to configure the interface.", + "$ref": "#/definitions/vcenter.vcha.ip_family" + }, + "ipv4": { + "description": "If the family of the ip is IPV4, then this will point to IPv4 address specification.\nThis field is optional and it is only relevant when the value of IpSpec.ip-family is IPV4.", + "$ref": "#/definitions/vcenter.vcha.ipv4_spec" + }, + "ipv6": { + "description": "If the family of the ip is IPV6, then this will point to IPv6 address specification.\nThis field is optional and it is only relevant when the value of IpSpec.ip-family is IPV6.", + "$ref": "#/definitions/vcenter.vcha.ipv6_spec" + }, + "default_gateway": { + "description": "The IP address of the Gateway for this interface.\nIf unset, gateway will not be used for the network interface.", + "type": "string" + }, + "dns_servers": { + "description": "The list of IP addresses of the DNS servers for this interface. This list is a comma separated list.\nIf unset, DNS servers will not be used for the network interface.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ip_family" + ] + }, + "vcenter.vcha.ipv4_spec": { + "type": "object", + "properties": { + "address": { + "description": "IPV4 address to be used to configure the interface.", + "type": "string" + }, + "subnet_mask": { + "description": "The subnet mask for the interface.\nIf unset and the Ipv4Spec.prefix field is unset, then an error will be reported.\n If unset and the Ipv4Spec.prefix field is set, then the Ipv4Spec.prefix field will be used to create a subnet mask whose first prefix bits are 1 and the remaining bits 0.\n If both the Ipv4Spec.subnet-mask field and the Ipv4Spec.prefix field are set and they do not represent the same value, then an error will be reported.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.\nIf unset and the Ipv4Spec.subnet-mask field is unset, this an error will be reported.\n If unset and the Ipv4Spec.subnet-mask field is set, then the Ipv4Spec.subnet-mask field will be used.\n If both the Ipv4Spec.subnet-mask field and the Ipv4Spec.prefix field are set and they do not represent the same value, then an error will be reported.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address" + ] + }, + "vcenter.vcha.ipv6_spec": { + "type": "object", + "properties": { + "address": { + "description": "IPv6 address to be used to configure the interface.", + "type": "string" + }, + "prefix": { + "description": "The CIDR prefix for the interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "address", + "prefix" + ] + }, + "vcenter.vcha.network_type": { + "type": "string", + "description": "The NetworkType enumerated type defines the type of a vCenter Server network.", + "enum": [ + "STANDARD_PORTGROUP", + "DISTRIBUTED_PORTGROUP" + ] + }, + "vcenter.vcha.operations.info": { + "type": "object", + "properties": { + "disabled": { + "description": "Identifiers of the operations that are current disabled. These operation strings are one of \"vcenter.vcha.cluster.deploy\", \"vcenter.vcha.cluster.failover\", \"vcenter.vcha.cluster.passive.redeploy\", \"vcenter.vcha.cluster.witness.redeploy\", \"vcenter.vcha.cluster.mode.set\", \"vcenter.vcha.cluster.undeploy\" and \"vcenter.vcha.cluster.get\".\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "active": { + "description": "Identifiers of the operations that are currently running. These operation strings are one of \"vcenter.vcha.cluster.deploy\", \"vcenter.vcha.cluster.failover\", \"vcenter.vcha.cluster.passive.redeploy\", \"vcenter.vcha.cluster.witness.redeploy\", \"vcenter.vcha.cluster.mode.set\", and \"vcenter.vcha.cluster.undeploy\".\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vapi.operation. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vapi.operation.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "disabled", + "active" + ] + }, + "vcenter.vcha.operations_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vcha.operations.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vcha.placement_info": { + "type": "object", + "properties": { + "management_vcenter_name": { + "description": "The hostname of the vCenter server that is managing the VCHA node.", + "type": "string" + }, + "management_vcenter_server_guid": { + "description": "The unique identifier of the vCenter server that is managing the VCHA node.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "string" + }, + "vm_name": { + "description": "The virtual machine name of the VCHA node.", + "type": "string" + }, + "datacenter": { + "description": "The identifier of the datacenter of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datacenter:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datacenter:VCenter.", + "type": "string" + }, + "datacenter_name": { + "description": "The name of the datacenter of the VCHA node.", + "type": "string" + }, + "host": { + "description": "The identifier of the host of the VCHA node.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "host_name": { + "description": "The name of the host of the VCHA node.", + "type": "string" + }, + "cluster": { + "description": "The identifier of the cluster of which PlacementInfo.host is member.\nIf unset, PlacementInfo.host is a standalone host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource:VCenter.", + "type": "string" + }, + "cluster_name": { + "description": "The name of the cluster of which PlacementInfo.host is member.\nIf unset, PlacementInfo.host is a standalone host.", + "type": "string" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "ha_network_name": { + "description": "The name of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.", + "type": "string" + }, + "ha_network_type": { + "description": "The type of the Network object used for the HA network.\nIf unset, the information is currently unavailable or the haNetwork is not configured.", + "$ref": "#/definitions/vcenter.vcha.network_type" + }, + "management_network": { + "description": "The identifier of the Network object used for the Management network.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "management_network_name": { + "description": "The name of the Network object used for the Management network.", + "type": "string" + }, + "management_network_type": { + "description": "The type of the Network object used for the Management network.", + "$ref": "#/definitions/vcenter.vcha.network_type" + }, + "storage": { + "description": "The storage information of the VCHA node.", + "$ref": "#/definitions/vcenter.vcha.disk_info" + }, + "bios_uuid": { + "description": "BIOS UUID for the node.\nIf unset, the information is currently unavailable.", + "type": "string" + } + }, + "required": [ + "management_vcenter_name", + "vm_name", + "datacenter", + "datacenter_name", + "host", + "host_name", + "management_network", + "management_network_name", + "management_network_type", + "storage" + ] + }, + "vcenter.vcha.placement_spec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the VCHA node to be used for the virtual machine name.", + "type": "string" + }, + "folder": { + "description": "The identifier of the folder to deploy the VCHA node to.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder:VCenter.", + "type": "string" + }, + "host": { + "description": "The identifier of the host to deploy the VCHA node to.\nIf unset, see vim.vm.RelocateSpec.host.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem:VCenter.", + "type": "string" + }, + "resource_pool": { + "description": "The identifier of the resource pool to deploy the VCHA node to.\nIf unset, then the active node's resource pool will be used.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool:VCenter.", + "type": "string" + }, + "ha_network_type": { + "description": "The type of the Network object used by the HA network.\n If the PlacementSpec.ha-network field is set, then the PlacementSpec.ha-network-type field must be set.\n If the PlacementSpec.ha-network field is unset, then the PlacementSpec.ha-network-type field is ignored.\nIf unset and the PlacementSpec.ha-network field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n If unset and the PlacementSpec.ha-network field is set, then an error is reported.", + "$ref": "#/definitions/vcenter.vcha.network_type" + }, + "ha_network": { + "description": "The identifier of the Network object used for the HA network.\n If the PlacementSpec.ha-network field is set, then the {#link #haNetworkType} field must be set.\n If the PlacementSpec.ha-network field is unset, then the PlacementSpec.ha-network-type field is ignored.\nIf unset and the PlacementSpec.ha-network-type field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "management_network_type": { + "description": "The type of the Network object used by the Management network.\n If the PlacementSpec.management-network field is set, then the {#link #managementNetworkType} field must be set.\n If the PlacementSpec.management-network field is unset, then the PlacementSpec.management-network-type field is ignored.\nIf unset and the PlacementSpec.management-network field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n If unset and the PlacementSpec.management-network field is set, then an error is reported.", + "$ref": "#/definitions/vcenter.vcha.network_type" + }, + "management_network": { + "description": "The identifier of the Network object used for the Management network. If the PlacementSpec.management-network field is set, then the PlacementSpec.management-network-type field must be set.\n If the PlacementSpec.management-network field is unset, then the PlacementSpec.management-network-type field is ignored.\nIf unset and the PlacementSpec.management-network-type field is unset, then the same network present on the Active node virtual machine is used to deploy the virtual machine with an assumption that the network is present on the destination.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network:VCenter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network:VCenter.", + "type": "string" + }, + "storage": { + "description": "The storage specification to deploy the VCHA node to.\nIf unset, see vim.vm.RelocateSpec.datastore.", + "$ref": "#/definitions/vcenter.vcha.disk_spec" + } + }, + "required": [ + "name", + "folder" + ] + }, + "vcenter.vm.console.tickets.create_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.console.tickets.summary" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.console.tickets.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "The type of virtual machine console ticket", + "$ref": "#/definitions/vcenter.vm.console.tickets.type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.console.tickets.summary": { + "type": "object", + "properties": { + "ticket": { + "description": "Console ticket URI", + "type": "string", + "format": "uri" + } + }, + "required": [ + "ticket" + ] + }, + "vcenter.vm.console.tickets.type": { + "type": "string", + "description": "The Tickets.Type enumerated type defines the types of console tickets.", + "enum": [ + "VMRC", + "WEBMKS" + ] + }, + "vcenter.vm.console.tickets_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.console.tickets.create_spec", + "description": "Specification for the console ticket to be created." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.guest.customization.info": { + "type": "object", + "properties": { + "status": { + "description": "The status of the customization operation.", + "$ref": "#/definitions/vcenter.vm.guest.customization.info.status" + }, + "error": { + "description": "Description of the error if the Customization.Info.status of customization operation is FAILED.\nThis field will be unset if the status is not FAILED or there is no information available for the error.", + "type": "string" + }, + "start_time": { + "description": "Time when the customization process has started inside the guest operating system.\nThis field will be unset if the status is PENDING.", + "type": "string", + "format": "date-time" + }, + "end_time": { + "description": "Time when the customization process has completed inside the guest operating system.\nThis field will be unset if the status is not SUCCEEDED or FAILED.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "status" + ] + }, + "vcenter.vm.guest.customization.info.status": { + "type": "string", + "description": "The Customization.Info.Status enumerated type defines the status values that can be reported for the customization operation.", + "enum": [ + "IDLE", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED" + ] + }, + "vcenter.vm.guest.customization.set_spec": { + "type": "object", + "properties": { + "name": { + "description": "The name of the customization specification that has be retrieved from the virtual center inventory and applied for the virtual machine. Either one of Customization.SetSpec.name or Customization.SetSpec.spec or none of them should be specified.\nIf unset and Customization.SetSpec.spec is also unset when executing Customization.set operation, then any pending customization for the virtual machine will be cleared.", + "type": "string" + }, + "spec": { + "description": "The customization specification that has to be applied for the virtual machine. Either one of Customization.SetSpec.name or Customization.SetSpec.spec or none of them should be specified.\nIf unset and Customization.SetSpec.name is also unset when executing Customization.set operation, then any pending customization for the virtual machine will be cleared.", + "$ref": "#/definitions/vcenter.guest.customization_spec" + } + } + }, + "vcenter.vm.guest.customization_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.guest.customization.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.customization_set": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.guest.customization.set_spec", + "description": "The customization settings to be applied to the guest operating system." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.guest.dhcp_config_info": { + "type": "object", + "properties": { + "ipv4_enabled": { + "description": "True if IPv4 DHCP is enabled, false otherwise.", + "type": "boolean" + }, + "ipv6_enabled": { + "description": "True if IPv6 DHCP is enabled, false otherwise.", + "type": "boolean" + } + }, + "required": [ + "ipv4_enabled", + "ipv6_enabled" + ] + }, + "vcenter.vm.guest.dns_assigned_values": { + "type": "object", + "properties": { + "host_name": { + "description": "The host name portion of DNS name. For example, \"esx01\" part of esx01.example.com.", + "type": "string" + }, + "domain_name": { + "description": "The domain name portion of the DNS name. \"example.com\" part of esx01.example.com.", + "type": "string" + } + }, + "required": [ + "host_name", + "domain_name" + ] + }, + "vcenter.vm.guest.dns_config_info": { + "type": "object", + "properties": { + "ip_addresses": { + "description": "The IP addresses of the DNS servers in order of use. IPv4 addresses are specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "array", + "items": { + "type": "string" + } + }, + "search_domains": { + "description": "The domain in which to search for hosts, placed in order of preference. These are the domain name portion of the DNS names.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ip_addresses", + "search_domains" + ] + }, + "vcenter.vm.guest.identity.info": { + "type": "object", + "properties": { + "name": { + "description": "Guest operating system identifier (short name).", + "$ref": "#/definitions/vcenter.vm.guest_OS" + }, + "family": { + "description": "Guest operating system family.", + "$ref": "#/definitions/vcenter.vm.guest_OS_family" + }, + "full_name": { + "description": "Guest operating system full name.", + "$ref": "#/definitions/vapi.std.localizable_message" + }, + "host_name": { + "description": "Hostname of the guest operating system.", + "type": "string" + }, + "ip_address": { + "description": "IP address assigned by the guest operating system.\nIf unset the guest does not have an IP address.", + "type": "string" + } + }, + "required": [ + "name", + "family", + "full_name", + "host_name" + ] + }, + "vcenter.vm.guest.identity_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.guest.identity.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.local_filesystem.info": { + "type": "object", + "properties": { + "capacity": { + "description": "Total capacity of the file system, in bytes.", + "type": "integer", + "format": "int64" + }, + "free_space": { + "description": "Free space on the file system, in bytes.", + "type": "integer", + "format": "int64" + }, + "filesystem": { + "description": "Filesystem type, if known. For example, ext3 or NTFS.\nset if VMware Tools reports a value.", + "type": "string" + }, + "mappings": { + "description": "VirtualDisks backing the guest partition, if known.\nThis field is optional because it was added in a newer version than its parent node.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.guest.local_filesystem.virtual_disk_mapping" + } + } + }, + "required": [ + "capacity", + "free_space" + ] + }, + "vcenter.vm.guest.local_filesystem.virtual_disk_mapping": { + "type": "object", + "properties": { + "disk": { + "description": "The virtual disk.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "string" + } + }, + "required": [ + "disk" + ] + }, + "vcenter.vm.guest.local_filesystem_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.guest.local_filesystem.info" + } + } + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.networking.info": { + "type": "object", + "properties": { + "dns_values": { + "description": "Client DNS values. Data assigned by DNS.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/vcenter.vm.guest.dns_assigned_values" + }, + "dns": { + "description": "Client DNS configuration. How DNS queries are resolved.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/vcenter.vm.guest.dns_config_info" + } + } + }, + "vcenter.vm.guest.networking.interfaces.info": { + "type": "object", + "properties": { + "dns_values": { + "description": "Client DNS values. Data assigned by DNS.\nIf unset no DNS assigned value exists.", + "$ref": "#/definitions/vcenter.vm.guest.dns_assigned_values" + }, + "mac_address": { + "description": "MAC address of the adapter.\nIf unset then not supported by the Guest OS.", + "type": "string" + }, + "dns": { + "description": "DNS configuration of the adapter. See Networking.Info.dns for system wide settings.\nIf unset then not assigned by the Guest OS.", + "$ref": "#/definitions/vcenter.vm.guest.dns_config_info" + }, + "ip": { + "description": "IP configuration settings of the adapter\nIf unset then not supported by the Guest OS.", + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.ip_config_info" + }, + "wins_servers": { + "description": "The IP addresses of any WINS name servers for the adapter.\nIf unset then not supported by the Guest OS.", + "type": "array", + "items": { + "type": "string" + } + }, + "nic": { + "description": "Link to the corresponding virtual device.\nIf unset then the interface is not backed by a virtual device.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + } + } + }, + "vcenter.vm.guest.networking.interfaces.ip_address_info": { + "type": "object", + "properties": { + "ip_address": { + "description": "IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit addresses specified using eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "string" + }, + "prefix_length": { + "description": "Denotes the length of a generic Internet network address prefix. Prefix length: the valid range of values is 0-32 for IPv4, and 0-128 for IPv6. A value of n corresponds to an IP address mask that has n contiguous 1-bits from the most significant bit (MSB), with all other bits set to 0. A value of zero is valid only if the calling context defines it.", + "type": "integer", + "format": "int64" + }, + "origin": { + "description": "How this address was configured.\nIf unset the data was not available.", + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.ip_address_origin" + }, + "state": { + "description": "The state of this ipAddress.", + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.ip_address_status" + } + }, + "required": [ + "ip_address", + "prefix_length", + "state" + ] + }, + "vcenter.vm.guest.networking.interfaces.ip_address_origin": { + "type": "string", + "description": "The Interfaces.IpAddressOrigin enumerated type specifies how an IP address was obtained for an interface. See RFC 4293 IpAddressOriginTC.", + "enum": [ + "OTHER", + "MANUAL", + "DHCP", + "LINKLAYER", + "RANDOM" + ] + }, + "vcenter.vm.guest.networking.interfaces.ip_address_status": { + "type": "string", + "description": "The Interfaces.IpAddressStatus enumerated type defines the present status of an address on an interface. See RFC 4293 IpAddressStatusTC.", + "enum": [ + "PREFERRED", + "DEPRECATED", + "INVALID", + "INACCESSIBLE", + "UNKNOWN", + "TENTATIVE", + "DUPLICATE" + ] + }, + "vcenter.vm.guest.networking.interfaces.ip_config_info": { + "type": "object", + "properties": { + "ip_addresses": { + "description": "IP addresses configured on the interface.", + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.ip_address_info" + } + }, + "dhcp": { + "description": "Client side DHCP for an interface.\nIf unset the IP was not configured by DHCP.", + "$ref": "#/definitions/vcenter.vm.guest.dhcp_config_info" + } + }, + "required": [ + "ip_addresses" + ] + }, + "vcenter.vm.guest.networking.interfaces.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.guest.networking.interfaces.info" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.networking.routes.info": { + "type": "object", + "properties": { + "network": { + "description": "IP Address of the destination IP network. IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit specified using as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.", + "type": "string" + }, + "prefix_length": { + "description": "The prefix length. For IPv4 the value range is 0-32. For IPv6 prefixLength is a decimal value range 0-128. The property represents the number of contiguous, higher-order bits of the address that make up the network portion of the IP address.", + "type": "integer", + "format": "int64" + }, + "gateway_address": { + "description": "Where to send the packets for this route. Unicast IP Address of the next hop router. IPv4 address is specified using dotted decimal notation. For example, \"192.0.2.1\". IPv6 addresses are 128-bit specified using as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373.\nIf unset no gateway is set for the route.", + "type": "string" + }, + "interface_index": { + "description": "The network interface associated with this route. This is an index into the result of Interfaces.list The index refers to the relative position of an element in a list. For example, an index of 0 refers to the first element in the list while an index of 1 refers to the second element.\nIf unset the route is not associated with a network interface.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "network", + "prefix_length" + ] + }, + "vcenter.vm.guest.networking.routes.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.guest.networking.routes.info" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.networking_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.guest.networking.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest.power.info": { + "type": "object", + "properties": { + "state": { + "description": "The power state of the guest operating system.", + "$ref": "#/definitions/vcenter.vm.guest.power.state" + }, + "operations_ready": { + "description": "Flag indicating if the virtual machine is ready to process soft power operations.", + "type": "boolean" + } + }, + "required": [ + "state", + "operations_ready" + ] + }, + "vcenter.vm.guest.power.state": { + "type": "string", + "description": "Possible guest power states.", + "enum": [ + "RUNNING", + "SHUTTING_DOWN", + "RESETTING", + "STANDBY", + "NOT_RUNNING", + "UNAVAILABLE" + ] + }, + "vcenter.vm.guest.power_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.guest.power.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.guest_OS": { + "type": "string", + "description": "The GuestOS enumerated type defines the valid guest operating system types used for configuring a virtual machine.", + "enum": [ + "DOS", + "WIN_31", + "WIN_95", + "WIN_98", + "WIN_ME", + "WIN_NT", + "WIN_2000_PRO", + "WIN_2000_SERV", + "WIN_2000_ADV_SERV", + "WIN_XP_HOME", + "WIN_XP_PRO", + "WIN_XP_PRO_64", + "WIN_NET_WEB", + "WIN_NET_STANDARD", + "WIN_NET_ENTERPRISE", + "WIN_NET_DATACENTER", + "WIN_NET_BUSINESS", + "WIN_NET_STANDARD_64", + "WIN_NET_ENTERPRISE_64", + "WIN_LONGHORN", + "WIN_LONGHORN_64", + "WIN_NET_DATACENTER_64", + "WIN_VISTA", + "WIN_VISTA_64", + "WINDOWS_7", + "WINDOWS_7_64", + "WINDOWS_7_SERVER_64", + "WINDOWS_8", + "WINDOWS_8_64", + "WINDOWS_8_SERVER_64", + "WINDOWS_9", + "WINDOWS_9_64", + "WINDOWS_9_SERVER_64", + "WINDOWS_11_64", + "WINDOWS_12_64", + "WINDOWS_HYPERV", + "WINDOWS_SERVER_2019", + "WINDOWS_SERVER_2021", + "WINDOWS_SERVER_2025", + "FREEBSD", + "FREEBSD_64", + "FREEBSD_11", + "FREEBSD_12", + "FREEBSD_13", + "FREEBSD_14", + "FREEBSD_11_64", + "FREEBSD_12_64", + "FREEBSD_13_64", + "FREEBSD_14_64", + "REDHAT", + "RHEL_2", + "RHEL_3", + "RHEL_3_64", + "RHEL_4", + "RHEL_4_64", + "RHEL_5", + "RHEL_5_64", + "RHEL_6", + "RHEL_6_64", + "RHEL_7", + "RHEL_7_64", + "RHEL_8_64", + "RHEL_9_64", + "CENTOS", + "CENTOS_64", + "CENTOS_6", + "CENTOS_6_64", + "CENTOS_7", + "CENTOS_7_64", + "CENTOS_8_64", + "CENTOS_9_64", + "ORACLE_LINUX", + "ORACLE_LINUX_64", + "ORACLE_LINUX_6", + "ORACLE_LINUX_6_64", + "ORACLE_LINUX_7", + "ORACLE_LINUX_7_64", + "ORACLE_LINUX_8_64", + "ORACLE_LINUX_9_64", + "SUSE", + "SUSE_64", + "SLES", + "SLES_64", + "SLES_10", + "SLES_10_64", + "SLES_11", + "SLES_11_64", + "SLES_12", + "SLES_12_64", + "SLES_15_64", + "SLES_16_64", + "NLD_9", + "OES", + "SJDS", + "MANDRAKE", + "MANDRIVA", + "MANDRIVA_64", + "TURBO_LINUX", + "TURBO_LINUX_64", + "UBUNTU", + "UBUNTU_64", + "DEBIAN_4", + "DEBIAN_4_64", + "DEBIAN_5", + "DEBIAN_5_64", + "DEBIAN_6", + "DEBIAN_6_64", + "DEBIAN_7", + "DEBIAN_7_64", + "DEBIAN_8", + "DEBIAN_8_64", + "DEBIAN_9", + "DEBIAN_9_64", + "DEBIAN_10", + "DEBIAN_10_64", + "DEBIAN_11", + "DEBIAN_11_64", + "DEBIAN_12", + "DEBIAN_12_64", + "ASIANUX_3", + "ASIANUX_3_64", + "ASIANUX_4", + "ASIANUX_4_64", + "ASIANUX_5_64", + "ASIANUX_7_64", + "ASIANUX_8_64", + "ASIANUX_9_64", + "OPENSUSE", + "OPENSUSE_64", + "FEDORA", + "FEDORA_64", + "COREOS_64", + "VMWARE_PHOTON_64", + "OTHER_24X_LINUX", + "OTHER_24X_LINUX_64", + "OTHER_26X_LINUX", + "OTHER_26X_LINUX_64", + "OTHER_3X_LINUX", + "OTHER_3X_LINUX_64", + "OTHER_4X_LINUX", + "OTHER_4X_LINUX_64", + "OTHER_5X_LINUX", + "OTHER_5X_LINUX_64", + "OTHER_6X_LINUX", + "OTHER_6X_LINUX_64", + "OTHER_LINUX", + "GENERIC_LINUX", + "OTHER_LINUX_64", + "SOLARIS_6", + "SOLARIS_7", + "SOLARIS_8", + "SOLARIS_9", + "SOLARIS_10", + "SOLARIS_10_64", + "SOLARIS_11_64", + "OS2", + "ECOMSTATION", + "ECOMSTATION_2", + "NETWARE_4", + "NETWARE_5", + "NETWARE_6", + "OPENSERVER_5", + "OPENSERVER_6", + "UNIXWARE_7", + "DARWIN", + "DARWIN_64", + "DARWIN_10", + "DARWIN_10_64", + "DARWIN_11", + "DARWIN_11_64", + "DARWIN_12_64", + "DARWIN_13_64", + "DARWIN_14_64", + "DARWIN_15_64", + "DARWIN_16_64", + "DARWIN_17_64", + "DARWIN_18_64", + "DARWIN_19_64", + "DARWIN_20_64", + "DARWIN_21_64", + "DARWIN_22_64", + "DARWIN_23_64", + "VMKERNEL", + "VMKERNEL_5", + "VMKERNEL_6", + "VMKERNEL_65", + "VMKERNEL_7", + "VMKERNEL_8", + "AMAZONLINUX2_64", + "AMAZONLINUX3_64", + "CRXPOD_1", + "ROCKYLINUX_64", + "ALMALINUX_64", + "OTHER", + "OTHER_64" + ] + }, + "vcenter.vm.guest_OS_family": { + "type": "string", + "description": "The GuestOSFamily enumerated type defines the valid guest operating system family types reported by a virtual machine.", + "enum": [ + "WINDOWS", + "LINUX", + "NETWARE", + "SOLARIS", + "DARWIN", + "OTHER" + ] + }, + "vcenter.vm.hardware.adapter.nvme.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.nvme.create_spec": { + "type": "object", + "properties": { + "bus": { + "description": "NVMe bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the NVMe adapter on the PCI bus.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + } + } + }, + "vcenter.vm.hardware.adapter.nvme.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "bus": { + "description": "NVMe bus number.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the NVMe adapter on the PCI bus.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "bus" + ] + }, + "vcenter.vm.hardware.adapter.nvme.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.nvme.summary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual NVMe adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.NvmeAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "vcenter.vm.hardware.adapter.nvme_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.create_spec", + "description": "Specification for the new virtual NVMe adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.adapter.nvme_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.nvme.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.sata.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.sata.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Adapter type.\nIf unset, a guest-specific default value will be used.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.type" + }, + "bus": { + "description": "SATA bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SATA adapter on the PCI bus.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + } + } + }, + "vcenter.vm.hardware.adapter.sata.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Adapter type.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.type" + }, + "bus": { + "description": "SATA bus number.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SATA adapter on the PCI bus.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "type", + "bus" + ] + }, + "vcenter.vm.hardware.adapter.sata.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.sata.summary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual SATA adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.SataAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.SataAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "vcenter.vm.hardware.adapter.sata.type": { + "type": "string", + "description": "The Sata.Type enumerated type defines the valid emulation types for a virtual SATA adapter.", + "enum": [ + "AHCI" + ] + }, + "vcenter.vm.hardware.adapter.sata_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.create_spec", + "description": "Specification for the new virtual SATA adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.adapter.sata_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.sata.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.scsi.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.scsi.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Adapter type.\nIf unset, a guest-specific default value will be used.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.type" + }, + "bus": { + "description": "SCSI bus number.\nIf unset, the server will choose an available bus number; if none is available, the request will fail.", + "type": "integer", + "format": "int64" + }, + "pci_slot_number": { + "description": "Address of the SCSI adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + }, + "sharing": { + "description": "Bus sharing mode.\nIf unset, the adapter will default to NONE.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.sharing" + } + } + }, + "vcenter.vm.hardware.adapter.scsi.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Adapter type.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.type" + }, + "scsi": { + "description": "Address of the SCSI adapter on the SCSI bus.", + "$ref": "#/definitions/vcenter.vm.hardware.scsi_address_info" + }, + "pci_slot_number": { + "description": "Address of the SCSI adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + }, + "sharing": { + "description": "Bus sharing mode.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.sharing" + } + }, + "required": [ + "label", + "type", + "scsi", + "sharing" + ] + }, + "vcenter.vm.hardware.adapter.scsi.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.scsi.sharing": { + "type": "string", + "description": "The Scsi.Sharing enumerated type defines the valid bus sharing modes for a virtual SCSI adapter.", + "enum": [ + "NONE", + "VIRTUAL", + "PHYSICAL" + ] + }, + "vcenter.vm.hardware.adapter.scsi.summary": { + "type": "object", + "properties": { + "adapter": { + "description": "Identifier of the virtual SCSI adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.ScsiAdapter.", + "type": "string" + } + }, + "required": [ + "adapter" + ] + }, + "vcenter.vm.hardware.adapter.scsi.type": { + "type": "string", + "description": "The Scsi.Type enumerated type defines the valid emulation types for a virtual SCSI adapter.", + "enum": [ + "BUSLOGIC", + "LSILOGIC", + "LSILOGICSAS", + "PVSCSI" + ] + }, + "vcenter.vm.hardware.adapter.scsi.update_spec": { + "type": "object", + "properties": { + "sharing": { + "description": "Bus sharing mode. \n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.sharing" + } + } + }, + "vcenter.vm.hardware.adapter.scsi_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.create_spec", + "description": "Specification for the new virtual SCSI adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.adapter.scsi_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.adapter.scsi_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.adapter.scsi.update_spec", + "description": "Specification for updating the virtual SCSI adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.boot.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type to be used by the virtual machine.\nIf unset, defaults to value that is recommended for the guest OS and is supported for the virtual hardware version.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.type" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nIf unset, defaults to value that is recommended for the guest OS and is supported for the virtual hardware version.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nIf unset, defaults to a system defined default value.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.network_protocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.\nIf unset, default value is 0.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine should automatically retry the boot process after a failure.\nIf unset, default value is false.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.\nIf unset, default value is 10000.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process should automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.boot.device.entry": { + "type": "object", + "properties": { + "type": { + "description": "Virtual device type.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.type" + }, + "nic": { + "description": "Virtual Ethernet device. Ethernet device to use as boot device for this entry.\nThis field is optional and it is only relevant when the value of Device.Entry.type is ETHERNET.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + }, + "disks": { + "description": "Virtual disk device. List of virtual disks in boot order.\nThis field is optional and it is only relevant when the value of Device.Entry.type is DISK.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.boot.device.entry_create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Virtual Boot device type.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.boot.device.type": { + "type": "string", + "description": "The Device.Type enumerated type defines the valid device types that may be used as bootable devices.", + "enum": [ + "CDROM", + "DISK", + "ETHERNET", + "FLOPPY" + ] + }, + "vcenter.vm.hardware.boot.device_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.entry" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.boot.device_set": { + "type": "object", + "properties": { + "devices": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.device.entry" + }, + "description": "Ordered list of boot devices." + } + }, + "required": [ + "devices" + ] + }, + "vcenter.vm.hardware.boot.info": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type used by the virtual machine.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.type" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nThis field is optional and it is only relevant when the value of Boot.Info.type is EFI.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nThis field is optional and it is only relevant when the value of Boot.Info.type is EFI.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.network_protocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine will automatically retry the boot process after a failure.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process will automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.", + "type": "boolean" + } + }, + "required": [ + "type", + "delay", + "retry", + "retry_delay", + "enter_setup_mode" + ] + }, + "vcenter.vm.hardware.boot.network_protocol": { + "type": "string", + "description": "The Boot.NetworkProtocol enumerated type defines the valid network boot protocols supported when booting a virtual machine with EFI firmware over the network.", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "vcenter.vm.hardware.boot.type": { + "type": "string", + "description": "The Boot.Type enumerated type defines the valid firmware types for a virtual machine.", + "enum": [ + "BIOS", + "EFI" + ] + }, + "vcenter.vm.hardware.boot.update_spec": { + "type": "object", + "properties": { + "type": { + "description": "Firmware type to be used by the virtual machine.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.type" + }, + "efi_legacy_boot": { + "description": "Flag indicating whether to use EFI legacy boot mode.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "network_protocol": { + "description": "Protocol to use when attempting to boot the virtual machine over the network.\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.boot.network_protocol" + }, + "delay": { + "description": "Delay in milliseconds before beginning the firmware boot process when the virtual machine is powered on. This delay may be used to provide a time window for users to connect to the virtual machine console and enter BIOS setup mode.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "retry": { + "description": "Flag indicating whether the virtual machine should automatically retry the boot process after a failure.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "retry_delay": { + "description": "Delay in milliseconds before retrying the boot process after a failure; applicable only when Boot.Info.retry is true.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "enter_setup_mode": { + "description": "Flag indicating whether the firmware boot process should automatically enter setup mode the next time the virtual machine boots. Note that this flag will automatically be reset to false once the virtual machine enters setup mode.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.boot_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.boot_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.boot.update_spec", + "description": "Specification for updating the boot-related settings of the virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.cdrom.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual CD-ROM device.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.backing_type" + }, + "iso_file": { + "description": "Path of the image file backing the virtual CD-ROM device.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is ISO_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the host device backing the virtual CD-ROM device. \n\n\nThis field will be unset if Cdrom.BackingInfo.auto-detect is true and the virtual CD-ROM device is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual CD-ROM device is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + }, + "device_access_type": { + "description": "Access type for the device backing.\nThis field is optional and it is only relevant when the value of Cdrom.BackingInfo.type is one of HOST_DEVICE or CLIENT_DEVICE.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.device_access_type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.cdrom.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual CD-ROM device.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.backing_type" + }, + "iso_file": { + "description": "Path of the image file that should be used as the virtual CD-ROM device backing.\nThis field is optional and it is only relevant when the value of Cdrom.BackingSpec.type is ISO_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual CD-ROM device backing.\nIf unset, the virtual CD-ROM device will be configured to automatically detect a suitable host device.", + "type": "string" + }, + "device_access_type": { + "description": "Access type for the device backing.\nIf unset, defaults to EMULATION.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.device_access_type" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.cdrom.backing_type": { + "type": "string", + "description": "The Cdrom.BackingType enumerated type defines the valid backing types for a virtual CD-ROM device.", + "enum": [ + "ISO_FILE", + "HOST_DEVICE", + "CLIENT_DEVICE" + ] + }, + "vcenter.vm.hardware.cdrom.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.cdrom.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device should be attached.\nIf unset, guest-specific default values will be used", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.host_bus_adapter_type" + }, + "ide": { + "description": "Address for attaching the device to a virtual IDE adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.ide_address_spec" + }, + "sata": { + "description": "Address for attaching the device to a virtual SATA adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.sata_address_spec" + }, + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.cdrom.device_access_type": { + "type": "string", + "description": "The Cdrom.DeviceAccessType enumerated type defines the valid device access types for a physical device packing of a virtual CD-ROM device.", + "enum": [ + "EMULATION", + "PASSTHRU", + "PASSTHRU_EXCLUSIVE" + ] + }, + "vcenter.vm.hardware.cdrom.host_bus_adapter_type": { + "type": "string", + "description": "The Cdrom.HostBusAdapterType enumerated type defines the valid types of host bus adapters that may be used for attaching a Cdrom to a virtual machine.", + "enum": [ + "IDE", + "SATA" + ] + }, + "vcenter.vm.hardware.cdrom.info": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device is attached.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.host_bus_adapter_type" + }, + "label": { + "description": "Device label.", + "type": "string" + }, + "ide": { + "description": "Address of device attached to a virtual IDE adapter.\nThis field is optional and it is only relevant when the value of Cdrom.Info.type is IDE.", + "$ref": "#/definitions/vcenter.vm.hardware.ide_address_info" + }, + "sata": { + "description": "Address of device attached to a virtual SATA adapter.\nThis field is optional and it is only relevant when the value of Cdrom.Info.type is SATA.", + "$ref": "#/definitions/vcenter.vm.hardware.sata_address_info" + }, + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.backing_info" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/vcenter.vm.hardware.connection_state" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "type", + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "vcenter.vm.hardware.cdrom.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.cdrom.summary": { + "type": "object", + "properties": { + "cdrom": { + "description": "Identifier of the virtual CD-ROM device.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Cdrom. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Cdrom.", + "type": "string" + } + }, + "required": [ + "cdrom" + ] + }, + "vcenter.vm.hardware.cdrom.update_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual CD-ROM device. \n This field may only be modified if the virtual machine is not powered on or the virtual CD-ROM device is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.cdrom_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.create_spec", + "description": "Specification for the new virtual CD-ROM device." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.cdrom_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.cdrom_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.cdrom.update_spec", + "description": "Specification for updating the virtual CD-ROM device." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.connection_state": { + "type": "string", + "description": "The ConnectionState enumerated type defines the valid states for a removable device that is configured to be connected.", + "enum": [ + "CONNECTED", + "RECOVERABLE_ERROR", + "UNRECOVERABLE_ERROR", + "NOT_CONNECTED", + "UNKNOWN" + ] + }, + "vcenter.vm.hardware.cpu.info": { + "type": "object", + "properties": { + "count": { + "description": "Number of CPU cores.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "Number of CPU cores per socket.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding CPUs while the virtual machine is running is enabled.", + "type": "boolean" + }, + "hot_remove_enabled": { + "description": "Flag indicating whether removing CPUs while the virtual machine is running is enabled.", + "type": "boolean" + } + }, + "required": [ + "count", + "cores_per_socket", + "hot_add_enabled", + "hot_remove_enabled" + ] + }, + "vcenter.vm.hardware.cpu.update_spec": { + "type": "object", + "properties": { + "count": { + "description": "New number of CPU cores. The number of CPU cores in the virtual machine must be a multiple of the number of cores per socket. \n The supported range of CPU counts is constrained by the configured guest operating system and virtual hardware version of the virtual machine. \n\n If the virtual machine is running, the number of CPU cores may only be increased if Cpu.Info.hot-add-enabled is true, and may only be decreased if Cpu.Info.hot-remove-enabled is true.\n\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "New number of CPU cores per socket. The number of CPU cores in the virtual machine must be a multiple of the number of cores per socket.\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding CPUs while the virtual machine is running is enabled. \n This field may only be modified if the virtual machine is powered off.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "hot_remove_enabled": { + "description": "Flag indicating whether removing CPUs while the virtual machine is running is enabled. \n This field may only be modified if the virtual machine is powered off.\n\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.cpu_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.cpu.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.cpu_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.cpu.update_spec", + "description": "Specification for updating the CPU-related settings of the virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.disk.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual disk.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.backing_type" + }, + "vmdk_file": { + "description": "Path of the VMDK file backing the virtual disk.\nThis field is optional and it is only relevant when the value of Disk.BackingInfo.type is VMDK_FILE.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.disk.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual disk.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.backing_type" + }, + "vmdk_file": { + "description": "Path of the VMDK file backing the virtual disk.\nThis field is optional and it is only relevant when the value of Disk.BackingSpec.type is VMDK_FILE.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.disk.backing_type": { + "type": "string", + "description": "The Disk.BackingType enumerated type defines the valid backing types for a virtual disk.", + "enum": [ + "VMDK_FILE" + ] + }, + "vcenter.vm.hardware.disk.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.disk.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Type of host bus adapter to which the device should be attached.\nIf unset, guest-specific default values will be used", + "$ref": "#/definitions/vcenter.vm.hardware.disk.host_bus_adapter_type" + }, + "ide": { + "description": "Address for attaching the device to a virtual IDE adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.ide_address_spec" + }, + "scsi": { + "description": "Address for attaching the device to a virtual SCSI adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.scsi_address_spec" + }, + "sata": { + "description": "Address for attaching the device to a virtual SATA adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.sata_address_spec" + }, + "nvme": { + "description": "Address for attaching the device to a virtual NVMe adapter.\nIf unset, the server will choose an available address; if none is available, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.nvme_address_spec" + }, + "backing": { + "description": "Existing physical resource backing for the virtual disk. Exactly one of Disk.CreateSpec.backing or Disk.CreateSpec.new-vmdk must be specified.\nIf unset, the virtual disk will not be connected to an existing backing.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.backing_spec" + }, + "new_vmdk": { + "description": "Specification for creating a new VMDK backing for the virtual disk. Exactly one of Disk.CreateSpec.backing or Disk.CreateSpec.new-vmdk must be specified.\nIf unset, a new VMDK backing will not be created.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.vmdk_create_spec" + } + } + }, + "vcenter.vm.hardware.disk.host_bus_adapter_type": { + "type": "string", + "description": "The Disk.HostBusAdapterType enumerated type defines the valid types of host bus adapters that may be used for attaching a virtual storage device to a virtual machine.", + "enum": [ + "IDE", + "SCSI", + "SATA", + "NVME" + ] + }, + "vcenter.vm.hardware.disk.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Type of host bus adapter to which the device is attached.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.host_bus_adapter_type" + }, + "ide": { + "description": "Address of device attached to a virtual IDE adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/vcenter.vm.hardware.ide_address_info" + }, + "scsi": { + "description": "Address of device attached to a virtual SCSI adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/vcenter.vm.hardware.scsi_address_info" + }, + "sata": { + "description": "Address of device attached to a virtual SATA adapter.\nWorkaround for PR1459646", + "$ref": "#/definitions/vcenter.vm.hardware.sata_address_info" + }, + "nvme": { + "description": "Address of device attached to a virtual NVMe adapter.\nThis field is optional and it is only relevant when the value of Disk.Info.type is NVME.", + "$ref": "#/definitions/vcenter.vm.hardware.nvme_address_info" + }, + "backing": { + "description": "Physical resource backing for the virtual disk.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.backing_info" + }, + "capacity": { + "description": "Capacity of the virtual disk in bytes.\nIf unset, virtual disk is inaccessible or disk capacity is 0.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "label", + "type", + "backing" + ] + }, + "vcenter.vm.hardware.disk.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.disk.storage_policy_spec": { + "type": "object", + "properties": { + "policy": { + "description": "Identifier of the storage policy which should be associated with the VMDK file.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "policy" + ] + }, + "vcenter.vm.hardware.disk.summary": { + "type": "object", + "properties": { + "disk": { + "description": "Identifier of the virtual Disk.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "string" + } + }, + "required": [ + "disk" + ] + }, + "vcenter.vm.hardware.disk.update_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual disk. \n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.backing_spec" + } + } + }, + "vcenter.vm.hardware.disk.vmdk_create_spec": { + "type": "object", + "properties": { + "name": { + "description": "Base name of the VMDK file. The name should not include the '.vmdk' file extension.\nIf unset, a name (derived from the name of the virtual machine) will be chosen by the server.", + "type": "string" + }, + "capacity": { + "description": "Capacity of the virtual disk backing in bytes.\nIf unset, defaults to a guest-specific capacity.", + "type": "integer", + "format": "int64" + }, + "storage_policy": { + "description": "The Disk.StoragePolicySpec structure contains information about the storage policy that is to be associated the with VMDK file.\nIf unset the default storage policy of the target datastore (if applicable) is applied. Currently a default storage policy is only supported by object based datastores : VVol & vSAN. For non- object datastores, if unset then no storage policy would be associated with the VMDK file.", + "$ref": "#/definitions/vcenter.vm.hardware.disk.storage_policy_spec" + } + } + }, + "vcenter.vm.hardware.disk_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.create_spec", + "description": "Specification for the new virtual disk." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.disk_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.disk_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.disk.update_spec", + "description": "Specification for updating the virtual disk." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.ethernet.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.backing_type" + }, + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nIf unset, the identifier of the network backing could not be determined.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "network_name": { + "description": "Name of the standard portgroup backing the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is STANDARD_PORTGROUP.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is HOST_DEVICE.", + "type": "string" + }, + "distributed_switch_uuid": { + "description": "UUID of the distributed virtual switch that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is DISTRIBUTED_PORTGROUP.", + "type": "string" + }, + "distributed_port": { + "description": "Key of the distributed virtual port that backs the virtual Ethernet adapter.\nThis field will be unset if the virtual Ethernet device is not bound to a distributed virtual port; this can happen if the virtual machine is powered off or the virtual Ethernet device is not connected.", + "type": "string" + }, + "connection_cookie": { + "description": "Server-generated cookie that identifies the connection to the port. This ookie may be used to verify that the virtual machine is the rightful owner of the port.\nThis field will be unset if the virtual Ethernet device is not bound to a distributed virtual port; this can happen if the virtual machine is powered off or the virtual Ethernet device is not connected.", + "type": "integer", + "format": "int64" + }, + "opaque_network_type": { + "description": "Type of the opaque network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is OPAQUE_NETWORK.", + "type": "string" + }, + "opaque_network_id": { + "description": "Identifier of the opaque network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingInfo.type is OPAQUE_NETWORK.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.ethernet.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.backing_type" + }, + "network": { + "description": "Identifier of the network that backs the virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.BackingSpec.type is one of STANDARD_PORTGROUP, DISTRIBUTED_PORTGROUP, or OPAQUE_NETWORK.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + }, + "distributed_port": { + "description": "Key of the distributed virtual port that backs the virtual Ethernet adapter. Depending on the type of the Portgroup, the port may be specified using this field. If the portgroup type is early-binding (also known as static), a port is assigned when the Ethernet adapter is configured to use the port. The port may be either automatically or specifically assigned based on the value of this field. If the portgroup type is ephemeral, the port is created and assigned to a virtual machine when it is powered on and the Ethernet adapter is connected. This field cannot be specified as no free ports exist before use.\nMay be used to specify a port when the network specified on the Ethernet.BackingSpec.network field is a static or early binding distributed portgroup. If unset, the port will be automatically assigned to the Ethernet adapter based on the policy embodied by the portgroup type.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.ethernet.backing_type": { + "type": "string", + "description": "The Ethernet.BackingType enumerated type defines the valid backing types for a virtual Ethernet adapter.", + "enum": [ + "STANDARD_PORTGROUP", + "HOST_DEVICE", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "vcenter.vm.hardware.ethernet.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.ethernet.create_spec": { + "type": "object", + "properties": { + "type": { + "description": "Ethernet adapter emulation type.\nIf unset, defaults to a guest-specific type.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.emulation_type" + }, + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility is enabled on this virtual Ethernet adapter.\nIf unset, UPT will not be enabled on the newly-created virtual Ethernet adapter.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type.\nIf unset, defaults to GENERATED.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.mac_address_type" + }, + "mac_address": { + "description": "MAC address.\nWorkaround for PR1459647", + "type": "string" + }, + "pci_slot_number": { + "description": "Address of the virtual Ethernet adapter on the PCI bus. If the PCI address is invalid, the server will change when it the VM is started or as the device is hot added.\nIf unset, the server will choose an available address when the virtual machine is powered on.", + "type": "integer", + "format": "int64" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN is enabled on this virtual Ethernet adapter.\nDefaults to false if unset.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter.\nIf unset, the system may try to find an appropriate backing. If one is not found, the request will fail.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.ethernet.emulation_type": { + "type": "string", + "description": "The Ethernet.EmulationType enumerated type defines the valid emulation types for a virtual Ethernet adapter.", + "enum": [ + "E1000", + "E1000E", + "PCNET32", + "VMXNET", + "VMXNET2", + "VMXNET3" + ] + }, + "vcenter.vm.hardware.ethernet.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "type": { + "description": "Ethernet adapter emulation type.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.emulation_type" + }, + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility is enabled on this virtual Ethernet adapter.\nThis field is optional and it is only relevant when the value of Ethernet.Info.type is VMXNET3.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.mac_address_type" + }, + "mac_address": { + "description": "MAC address.\nMay be unset if Ethernet.Info.mac-type is MANUAL and has not been specified, or if Ethernet.Info.mac-type is GENERATED and the virtual machine has never been powered on since the Ethernet adapter was created.", + "type": "string" + }, + "pci_slot_number": { + "description": "Address of the virtual Ethernet adapter on the PCI bus. If the PCI address is invalid, the server will change it when the VM is started or as the device is hot added.\nMay be unset if the virtual machine has never been powered on since the adapter was created.", + "type": "integer", + "format": "int64" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN is enabled on this virtual Ethernet adapter.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.backing_info" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/vcenter.vm.hardware.connection_state" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "type", + "mac_type", + "wake_on_lan_enabled", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "vcenter.vm.hardware.ethernet.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.ethernet.mac_address_type": { + "type": "string", + "description": "The Ethernet.MacAddressType enumerated type defines the valid MAC address origins for a virtual Ethernet adapter.", + "enum": [ + "MANUAL", + "GENERATED", + "ASSIGNED" + ] + }, + "vcenter.vm.hardware.ethernet.summary": { + "type": "object", + "properties": { + "nic": { + "description": "Identifier of the virtual Ethernet adapter.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "string" + } + }, + "required": [ + "nic" + ] + }, + "vcenter.vm.hardware.ethernet.update_spec": { + "type": "object", + "properties": { + "upt_compatibility_enabled": { + "description": "Flag indicating whether Universal Pass-Through (UPT) compatibility should be enabled on this virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged. Must be unset if the emulation type of the virtual Ethernet adapter is not VMXNET3.", + "type": "boolean" + }, + "mac_type": { + "description": "MAC address type. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.mac_address_type" + }, + "mac_address": { + "description": "MAC address. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged. Must be specified if Ethernet.UpdateSpec.mac-type is MANUAL. Must be unset if the MAC address type is not MANUAL.", + "type": "string" + }, + "wake_on_lan_enabled": { + "description": "Flag indicating whether wake-on-LAN shoud be enabled on this virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual Ethernet adapter. \n This field may be modified at any time, and changes will be applied the next time the virtual machine is powered on.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.ethernet_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.create_spec", + "description": "Specification for the new virtual Ethernet adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.ethernet_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.ethernet_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.ethernet.update_spec", + "description": "Specification for updating the virtual Ethernet adapter." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.floppy.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual floppy drive.", + "$ref": "#/definitions/vcenter.vm.hardware.floppy.backing_type" + }, + "image_file": { + "description": "Path of the image file backing the virtual floppy drive.\nThis field is optional and it is only relevant when the value of Floppy.BackingInfo.type is IMAGE_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the host device backing the virtual floppy drive. \n\n\nThis field will be unset if Floppy.BackingInfo.auto-detect is true and the virtual floppy drive is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual floppy drive is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Floppy.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.floppy.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual floppy drive.", + "$ref": "#/definitions/vcenter.vm.hardware.floppy.backing_type" + }, + "image_file": { + "description": "Path of the image file that should be used as the virtual floppy drive backing.\nThis field is optional and it is only relevant when the value of Floppy.BackingSpec.type is IMAGE_FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual floppy drive backing.\nIf unset, the virtual floppy drive will be configured to automatically detect a suitable host device.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.floppy.backing_type": { + "type": "string", + "description": "The Floppy.BackingType enumerated type defines the valid backing types for a virtual floppy drive.", + "enum": [ + "IMAGE_FILE", + "HOST_DEVICE", + "CLIENT_DEVICE" + ] + }, + "vcenter.vm.hardware.floppy.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.floppy.create_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual floppy drive.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/vcenter.vm.hardware.floppy.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.floppy.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "backing": { + "description": "Physical resource backing for the virtual floppy drive.", + "$ref": "#/definitions/vcenter.vm.hardware.floppy.backing_info" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/vcenter.vm.hardware.connection_state" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "vcenter.vm.hardware.floppy.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.floppy.summary": { + "type": "object", + "properties": { + "floppy": { + "description": "Identifier of the virtual floppy drive.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.Floppy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.Floppy.", + "type": "string" + } + }, + "required": [ + "floppy" + ] + }, + "vcenter.vm.hardware.floppy.update_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual floppy drive. \n This field may only be modified if the virtual machine is not powered on or the virtual floppy drive is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.floppy.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.floppy_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.create_spec", + "description": "Specification for the new virtual floppy drive." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.floppy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.floppy_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.floppy.update_spec", + "description": "Specification for updating the virtual floppy drive." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.ide_address_info": { + "type": "object", + "properties": { + "primary": { + "description": "Flag specifying whether the device is attached to the primary or secondary IDE adapter of the virtual machine.", + "type": "boolean" + }, + "master": { + "description": "Flag specifying whether the device is the master or slave device on the IDE adapter.", + "type": "boolean" + } + }, + "required": [ + "primary", + "master" + ] + }, + "vcenter.vm.hardware.ide_address_spec": { + "type": "object", + "properties": { + "primary": { + "description": "Flag specifying whether the device should be attached to the primary or secondary IDE adapter of the virtual machine.\nIf unset, the server will choose a adapter with an available connection. If no IDE connections are available, the request will be rejected.", + "type": "boolean" + }, + "master": { + "description": "Flag specifying whether the device should be the master or slave device on the IDE adapter.\nIf unset, the server will choose an available connection type. If no IDE connections are available, the request will be rejected.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.info": { + "type": "object", + "properties": { + "version": { + "description": "Virtual hardware version.", + "$ref": "#/definitions/vcenter.vm.hardware.version" + }, + "upgrade_policy": { + "description": "Scheduled upgrade policy.", + "$ref": "#/definitions/vcenter.vm.hardware.upgrade_policy" + }, + "upgrade_version": { + "description": "Target hardware version to be used on the next scheduled virtual hardware upgrade.\nThis field is optional and it is only relevant when the value of Hardware.Info.upgrade-policy is one of AFTER_CLEAN_SHUTDOWN or ALWAYS.", + "$ref": "#/definitions/vcenter.vm.hardware.version" + }, + "upgrade_status": { + "description": "Scheduled upgrade status.", + "$ref": "#/definitions/vcenter.vm.hardware.upgrade_status" + }, + "upgrade_error": { + "description": "Reason for the scheduled upgrade failure.\nThis field is optional and it is only relevant when the value of Hardware.Info.upgrade-status is FAILED.", + "type": "string" + } + }, + "required": [ + "version", + "upgrade_policy", + "upgrade_status" + ] + }, + "vcenter.vm.hardware.memory.info": { + "type": "object", + "properties": { + "size_MiB": { + "description": "Memory size in mebibytes.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding memory while the virtual machine is running is enabled. \n Some guest operating systems may consume more resources or perform less efficiently when they run on hardware that supports adding memory while the machine is running.", + "type": "boolean" + }, + "hot_add_increment_size_MiB": { + "description": "The granularity, in mebibytes, at which memory can be added to a running virtual machine. \n When adding memory to a running virtual machine, the amount of memory added must be at least Memory.Info.hot-add-increment-size-mib and the total memory size of the virtual machine must be a multiple of {@link>hotAddIncrementSize}.\n\nOnly set when Memory.Info.hot-add-enabled is true and the virtual machine is running.", + "type": "integer", + "format": "int64" + }, + "hot_add_limit_MiB": { + "description": "The maximum amount of memory, in mebibytes, that can be added to a running virtual machine.\nOnly set when Memory.Info.hot-add-enabled is true and the virtual machine is running.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "size_MiB", + "hot_add_enabled" + ] + }, + "vcenter.vm.hardware.memory.update_spec": { + "type": "object", + "properties": { + "size_MiB": { + "description": "New memory size in mebibytes. \n The supported range of memory sizes is constrained by the configured guest operating system and virtual hardware version of the virtual machine. \n\n If the virtual machine is running, this value may only be changed if Memory.Info.hot-add-enabled is true, and the new memory size must satisfy the constraints specified by Memory.Info.hot-add-increment-size-mib and Memory.Info.hot-add-limit-mib.\n\nIf unset, the value is unchanged.", + "type": "integer", + "format": "int64" + }, + "hot_add_enabled": { + "description": "Flag indicating whether adding memory while the virtual machine is running should be enabled. \n Some guest operating systems may consume more resources or perform less efficiently when they run on hardware that supports adding memory while the machine is running. \n\n This field may only be modified if the virtual machine is not powered on.\n\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.memory_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.memory.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.memory_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.memory.update_spec", + "description": "Specification for updating the memory-related settings of the virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.nvme_address_info": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "vcenter.vm.hardware.nvme_address_spec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "vcenter.vm.hardware.parallel.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual parallel port.", + "$ref": "#/definitions/vcenter.vm.hardware.parallel.backing_type" + }, + "file": { + "description": "Path of the file backing the virtual parallel port.\nThis field is optional and it is only relevant when the value of Parallel.BackingInfo.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual parallel port. \n\n\nThis field will be unset if Parallel.BackingInfo.auto-detect is true and the virtual parallel port is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual parallel port is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Parallel.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.parallel.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual parallel port.", + "$ref": "#/definitions/vcenter.vm.hardware.parallel.backing_type" + }, + "file": { + "description": "Path of the file that should be used as the virtual parallel port backing.\nThis field is optional and it is only relevant when the value of Parallel.BackingSpec.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device that should be used as the virtual parallel port backing.\nIf unset, the virtual parallel port will be configured to automatically detect a suitable host device.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.parallel.backing_type": { + "type": "string", + "description": "The Parallel.BackingType enumerated type defines the valid backing types for a virtual parallel port.", + "enum": [ + "FILE", + "HOST_DEVICE" + ] + }, + "vcenter.vm.hardware.parallel.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.parallel.create_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual parallel port.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/vcenter.vm.hardware.parallel.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.parallel.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "backing": { + "description": "Physical resource backing for the virtual parallel port.", + "$ref": "#/definitions/vcenter.vm.hardware.parallel.backing_info" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/vcenter.vm.hardware.connection_state" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "vcenter.vm.hardware.parallel.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.parallel.summary": { + "type": "object", + "properties": { + "port": { + "description": "Identifier of the virtual parallel port.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.ParallelPort. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.ParallelPort.", + "type": "string" + } + }, + "required": [ + "port" + ] + }, + "vcenter.vm.hardware.parallel.update_spec": { + "type": "object", + "properties": { + "backing": { + "description": "Physical resource backing for the virtual parallel port. \n This field may only be modified if the virtual machine is not powered on or the virtual parallel port is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.parallel.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.parallel_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.create_spec", + "description": "Specification for the new virtual parallel port." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.parallel_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.parallel_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.parallel.update_spec", + "description": "Specification for updating the virtual parallel port." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.sata_address_info": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "vcenter.vm.hardware.sata_address_spec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "vcenter.vm.hardware.scsi_address_info": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device is attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus", + "unit" + ] + }, + "vcenter.vm.hardware.scsi_address_spec": { + "type": "object", + "properties": { + "bus": { + "description": "Bus number of the adapter to which the device should be attached.", + "type": "integer", + "format": "int64" + }, + "unit": { + "description": "Unit number of the device.\nIf unset, the server will choose an available unit number on the specified adapter. If there are no available connections on the adapter, the request will be rejected.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "bus" + ] + }, + "vcenter.vm.hardware.serial.backing_info": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual serial port.", + "$ref": "#/definitions/vcenter.vm.hardware.serial.backing_type" + }, + "file": { + "description": "Path of the file backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual serial port. \n\n\nThis field will be unset if Serial.BackingInfo.auto-detect is true and the virtual serial port is not connected or no suitable device is available on the host.", + "type": "string" + }, + "auto_detect": { + "description": "Flag indicating whether the virtual serial port is configured to automatically detect a suitable host device.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is HOST_DEVICE.", + "type": "boolean" + }, + "pipe": { + "description": "Name of the pipe backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "string" + }, + "no_rx_loss": { + "description": "Flag that enables optimized data transfer over the pipe. When the value is true, the host buffers data to prevent data overrun. This allows the virtual machine to read all of the data transferred over the pipe with no data loss.\nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "boolean" + }, + "network_location": { + "description": "URI specifying the location of the network service backing the virtual serial port. \n - If Serial.BackingInfo.type is NETWORK_SERVER, this field is the location used by clients to connect to this server. The hostname part of the URI should either be empty or should specify the address of the host on which the virtual machine is running.\n - If Serial.BackingInfo.type is NETWORK_CLIENT, this field is the location used by the virtual machine to connect to the remote server.\n \nThis field is optional and it is only relevant when the value of Serial.BackingInfo.type is one of NETWORK_SERVER or NETWORK_CLIENT.", + "type": "string", + "format": "uri" + }, + "proxy": { + "description": "Proxy service that provides network access to the network backing. If set, the virtual machine initiates a connection with the proxy service and forwards the traffic to the proxy.\nIf unset, no proxy service is configured.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.serial.backing_spec": { + "type": "object", + "properties": { + "type": { + "description": "Backing type for the virtual serial port.", + "$ref": "#/definitions/vcenter.vm.hardware.serial.backing_type" + }, + "file": { + "description": "Path of the file backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is FILE.", + "type": "string" + }, + "host_device": { + "description": "Name of the device backing the virtual serial port. \n\n\nIf unset, the virtual serial port will be configured to automatically detect a suitable host device.", + "type": "string" + }, + "pipe": { + "description": "Name of the pipe backing the virtual serial port.\nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is one of PIPE_SERVER or PIPE_CLIENT.", + "type": "string" + }, + "no_rx_loss": { + "description": "Flag that enables optimized data transfer over the pipe. When the value is true, the host buffers data to prevent data overrun. This allows the virtual machine to read all of the data transferred over the pipe with no data loss.\nIf unset, defaults to false.", + "type": "boolean" + }, + "network_location": { + "description": "URI specifying the location of the network service backing the virtual serial port. \n - If Serial.BackingSpec.type is NETWORK_SERVER, this field is the location used by clients to connect to this server. The hostname part of the URI should either be empty or should specify the address of the host on which the virtual machine is running.\n - If Serial.BackingSpec.type is NETWORK_CLIENT, this field is the location used by the virtual machine to connect to the remote server.\n \nThis field is optional and it is only relevant when the value of Serial.BackingSpec.type is one of NETWORK_SERVER or NETWORK_CLIENT.", + "type": "string", + "format": "uri" + }, + "proxy": { + "description": "Proxy service that provides network access to the network backing. If set, the virtual machine initiates a connection with the proxy service and forwards the traffic to the proxy.\nIf unset, no proxy service should be used.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.hardware.serial.backing_type": { + "type": "string", + "description": "The Serial.BackingType enumerated type defines the valid backing types for a virtual serial port.", + "enum": [ + "FILE", + "HOST_DEVICE", + "PIPE_SERVER", + "PIPE_CLIENT", + "NETWORK_SERVER", + "NETWORK_CLIENT" + ] + }, + "vcenter.vm.hardware.serial.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.serial.create_spec": { + "type": "object", + "properties": { + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host.\nIf unset, defaults to false.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port.\nIf unset, defaults to automatic detection of a suitable host device.", + "$ref": "#/definitions/vcenter.vm.hardware.serial.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nDefaults to false if unset.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nDefaults to false if unset.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.serial.info": { + "type": "object", + "properties": { + "label": { + "description": "Device label.", + "type": "string" + }, + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port.", + "$ref": "#/definitions/vcenter.vm.hardware.serial.backing_info" + }, + "state": { + "description": "Connection status of the virtual device.", + "$ref": "#/definitions/vcenter.vm.hardware.connection_state" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.", + "type": "boolean" + } + }, + "required": [ + "label", + "yield_on_poll", + "backing", + "state", + "start_connected", + "allow_guest_control" + ] + }, + "vcenter.vm.hardware.serial.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.serial.summary": { + "type": "object", + "properties": { + "port": { + "description": "Identifier of the virtual serial port.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.vm.hardware.SerialPort. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.vm.hardware.SerialPort.", + "type": "string" + } + }, + "required": [ + "port" + ] + }, + "vcenter.vm.hardware.serial.update_spec": { + "type": "object", + "properties": { + "yield_on_poll": { + "description": "CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host. \n This field may be modified at any time, and changes applied to a connected virtual serial port take effect immediately.\n\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "backing": { + "description": "Physical resource backing for the virtual serial port. \n This field may only be modified if the virtual machine is not powered on or the virtual serial port is not connected.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.serial.backing_spec" + }, + "start_connected": { + "description": "Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on.\nIf unset, the value is unchanged.", + "type": "boolean" + }, + "allow_guest_control": { + "description": "Flag indicating whether the guest can connect and disconnect the device.\nIf unset, the value is unchanged.", + "type": "boolean" + } + } + }, + "vcenter.vm.hardware.serial_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.create_spec", + "description": "Specification for the new virtual serial port." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.serial_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware.serial_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.serial.update_spec", + "description": "Specification for updating the virtual serial port." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware.update_spec": { + "type": "object", + "properties": { + "upgrade_policy": { + "description": "Scheduled upgrade policy. \n If set to NEVER, the Hardware.Info.upgrade-version field will be reset to unset.\n\nIf unset, the value is unchanged.", + "$ref": "#/definitions/vcenter.vm.hardware.upgrade_policy" + }, + "upgrade_version": { + "description": "Target hardware version to be used on the next scheduled virtual hardware upgrade. \n If specified, this field must represent a newer virtual hardware version than the current virtual hardware version reported in Hardware.Info.version.\n\nIf Hardware.UpdateSpec.upgrade-policy is set to NEVER, this field must be unset. Otherwise, if this field is unset, default to the most recent virtual hardware version supported by the server.", + "$ref": "#/definitions/vcenter.vm.hardware.version" + } + } + }, + "vcenter.vm.hardware.upgrade_policy": { + "type": "string", + "description": "The Hardware.UpgradePolicy enumerated type defines the valid virtual hardware upgrade policies for a virtual machine.", + "enum": [ + "NEVER", + "AFTER_CLEAN_SHUTDOWN", + "ALWAYS" + ] + }, + "vcenter.vm.hardware.upgrade_status": { + "type": "string", + "description": "The Hardware.UpgradeStatus enumerated type defines the valid virtual hardware upgrade statuses for a virtual machine.", + "enum": [ + "NONE", + "PENDING", + "SUCCESS", + "FAILED" + ] + }, + "vcenter.vm.hardware.version": { + "type": "string", + "description": "The Hardware.Version enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual machine hardware versions (1003746)).", + "enum": [ + "VMX_03", + "VMX_04", + "VMX_06", + "VMX_07", + "VMX_08", + "VMX_09", + "VMX_10", + "VMX_11", + "VMX_12", + "VMX_13", + "VMX_14", + "VMX_15", + "VMX_16", + "VMX_17", + "VMX_18", + "VMX_19", + "VMX_20", + "VMX_21" + ] + }, + "vcenter.vm.hardware_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.hardware.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.hardware_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.hardware.update_spec", + "description": "Specification for updating the virtual hardware settings of the virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.hardware_upgrade": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/vcenter.vm.hardware.version", + "description": "New virtual machine version.\nIf unset, defaults to the most recent virtual hardware version supported by the server." + } + } + }, + "vcenter.vm.identity.info": { + "type": "object", + "properties": { + "name": { + "description": "Virtual machine name.", + "type": "string" + }, + "bios_uuid": { + "description": "128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in \"12345678-abcd-1234-cdef-123456789abc\" format.", + "type": "string" + }, + "instance_uuid": { + "description": "VirtualCenter-specific 128-bit UUID of a virtual machine, represented as a hexademical string. This identifier is used by VirtualCenter to uniquely identify all virtual machine instances, including those that may share the same SMBIOS UUID.", + "type": "string" + } + }, + "required": [ + "name", + "bios_uuid", + "instance_uuid" + ] + }, + "vcenter.vm.library_item.check_out_info": { + "type": "object", + "properties": { + "library_item": { + "description": "Identifier of the library item that the virtual machine is checked out from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.Item. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.Item.", + "type": "string" + } + }, + "required": [ + "library_item" + ] + }, + "vcenter.vm.library_item.info": { + "type": "object", + "properties": { + "check_out": { + "description": "Information about the checked out virtual machine.\nIf unset, the virtual machine is not checked out from a library item.", + "$ref": "#/definitions/vcenter.vm.library_item.check_out_info" + } + } + }, + "vcenter.vm.library_item_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.library_item.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.power.info": { + "type": "object", + "properties": { + "state": { + "description": "Power state of the virtual machine.", + "$ref": "#/definitions/vcenter.vm.power.state" + }, + "clean_power_off": { + "description": "Flag indicating whether the virtual machine was powered off cleanly. This field may be used to detect that the virtual machine crashed unexpectedly and should be restarted.\nThis field is optional and it is only relevant when the value of Power.Info.state is POWERED_OFF.", + "type": "boolean" + } + }, + "required": [ + "state" + ] + }, + "vcenter.vm.power.state": { + "type": "string", + "enum": [ + "POWERED_OFF", + "POWERED_ON", + "SUSPENDED" + ] + }, + "vcenter.vm.power_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.power.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.storage.policy.compliance.check_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.storage.policy.compliance.check_spec": { + "type": "object", + "properties": { + "vm_home": { + "description": "Invoke compliance check on the virtual machine home directory if set to true.", + "type": "boolean" + }, + "disks": { + "description": "Identifiers of the virtual machine's virtual disks for which compliance should be checked.\nIf unset or empty, compliance check is invoked on all the associated disks.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + }, + "required": [ + "vm_home" + ] + }, + "vcenter.vm.storage.policy.compliance.info": { + "type": "object", + "properties": { + "overall_compliance": { + "description": "The overall compliance status of the virtual machine and all it's entities.", + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.status" + }, + "vm_home": { + "description": "The storage policy compliance information Compliance.VmComplianceInfo for the virtual machine's home directory.\nIf unset the virtual machine home directory has no storage policy association.", + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.vm_compliance_info" + }, + "disks": { + "description": "The compliance information Compliance.VmComplianceInfo for the virtual machine's virtual disks that are currently associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.vm_compliance_info" + } + } + } + } + }, + "required": [ + "overall_compliance", + "disks" + ] + }, + "vcenter.vm.storage.policy.compliance.status": { + "type": "string", + "description": "The Compliance.Status enumerated type defines the storage compliance status of a virtual machine and its applicable entities.", + "enum": [ + "COMPLIANT", + "NON_COMPLIANT", + "UNKNOWN_COMPLIANCE", + "NOT_APPLICABLE", + "OUT_OF_DATE" + ] + }, + "vcenter.vm.storage.policy.compliance.vm_compliance_info": { + "type": "object", + "properties": { + "status": { + "description": "Status of the compliance operation.", + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.status" + }, + "check_time": { + "description": "Date and time of the most recent compliance check.", + "type": "string", + "format": "date-time" + }, + "policy": { + "description": "Identifier of the storage policy associated with the virtual machine.\nIf unset SPBM is unable to retrieve or determine the associated policy, Compliance.VmComplianceInfo.failure-cause is set in such casses.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "failure_cause": { + "description": "The exception that caused the compliance check to fail. There can be more than one cause, since a policy can contain capabilities from multiple providers. If empty, it implies no failures while retrieving compliance.", + "type": "array", + "items": { + "$ref": "#/definitions/vapi.std.localizable_message" + } + } + }, + "required": [ + "status", + "check_time", + "failure_cause" + ] + }, + "vcenter.vm.storage.policy.compliance_check": { + "type": "object", + "properties": { + "check_spec": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.check_spec", + "description": "Parameter specifies the entities on which storage policy compliance check is to be invoked. The storage compliance Info Compliance.Info is returned.\nIf unset, the behavior is equivalent to a Compliance.CheckSpec with CheckSpec#vmHome set to true and CheckSpec#disks populated with all disks attached to the virtual machine." + } + } + }, + "vcenter.vm.storage.policy.compliance_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.storage.policy.compliance.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.storage.policy.disk_policy_spec": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used while performing update operation on the virtual disks.", + "$ref": "#/definitions/vcenter.vm.storage.policy.disk_policy_spec.policy_type" + }, + "policy": { + "description": "Storage Policy identification.\nThis field is optional and it is only relevant when the value of Policy.DiskPolicySpec.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.storage.policy.disk_policy_spec.policy_type": { + "type": "string", + "description": "The Policy.DiskPolicySpec enumerated type defines the choices for how to specify the policy to be associated with a virtual disk.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_DEFAULT_POLICY" + ] + }, + "vcenter.vm.storage.policy.info": { + "type": "object", + "properties": { + "vm_home": { + "description": "Storage Policy associated with virtual machine home.\nIfunset, the virtual machine's home directory doesn't have any storage policy.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + }, + "disks": { + "description": "Storage policies associated with virtual disks. The values in this map are storage policy identifiers. They will be identifiers for the resource type:vcenter.StoragePolicy If the map is empty, the virtual machine does not have any disks or its disks are not associated with a storage policy.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + } + }, + "required": [ + "disks" + ] + }, + "vcenter.vm.storage.policy.update_spec": { + "type": "object", + "properties": { + "vm_home": { + "description": "Storage policy to be used when reconfiguring the virtual machine home.\nif unset the current storage policy is retained.", + "$ref": "#/definitions/vcenter.vm.storage.policy.vm_home_policy_spec" + }, + "disks": { + "description": "Storage policy or policies to be used when reconfiguring virtual machine diks.\nif unset the current storage policy is retained.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm.storage.policy.disk_policy_spec" + } + } + } + } + } + }, + "vcenter.vm.storage.policy.vm_home_policy_spec": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used while performing update operation on the virtual machine home's directory.", + "$ref": "#/definitions/vcenter.vm.storage.policy.vm_home_policy_spec.policy_type" + }, + "policy": { + "description": "Storage Policy identification.\nThis field is optional and it is only relevant when the value of Policy.VmHomePolicySpec.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: vcenter.StoragePolicy. When operations return a value of this structure as a result, the field will be an identifier for the resource type: vcenter.StoragePolicy.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm.storage.policy.vm_home_policy_spec.policy_type": { + "type": "string", + "description": "The Policy.VmHomePolicySpec.PolicyType enumerated type defines the choices for how to specify the policy to be associated with the virtual machine home's directory.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_DEFAULT_POLICY" + ] + }, + "vcenter.vm.storage.policy_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.storage.policy.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.storage.policy_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.storage.policy.update_spec", + "description": "Storage Policy Specification for updating the virtual machine and virtual disks." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.tools.info": { + "type": "object", + "properties": { + "auto_update_supported": { + "description": "Set if the virtual machine supports auto-upgrading Tools via Tools.UpgradePolicy.", + "type": "boolean" + }, + "install_attempt_count": { + "description": "Number of attempts that have been made to install or upgrade the version of Tools installed on this virtual machine.\nThis field will be unset if there have been no Tools install or upgrade attempt.", + "type": "integer", + "format": "int64" + }, + "error": { + "description": "Error that happened, if any, during last attempt to upgrade or install Tools.\nThis field will be unset if a the last Tools install or upgrade attempt succeeded.", + "type": "string" + }, + "version_number": { + "description": "Version of VMware Tools installed on the guest operating system.\nThis field wil be unset if VMWare Tools is not installed. This is an integer constructed as follows: (((MJR) << 10) + ((MNR) << 5) + (REV)) Where MJR is tha major verson, MNR is the minor version and REV is the revision. Tools version = T Tools Version Major = MJR = (T / 1024) Tools Version Minor = MNR = ((T % 1024) / 32) Tools Version Revision = BASE = ((T % 1024) % 32) Tools actual version = MJR.MNR.REV", + "type": "integer", + "format": "int64" + }, + "version": { + "description": "Version of VMware Tools installed on the guest operating system. This is a human-readable value that should not be parsed.\nThis field wil be unset if VMWare Tools is not installed.", + "type": "string" + }, + "upgrade_policy": { + "description": "Tools upgrade policy setting for the virtual machine. Tools.UpgradePolicy", + "$ref": "#/definitions/vcenter.vm.tools.upgrade_policy" + }, + "version_status": { + "description": "Current version status of VMware Tools in the guest operating system, if known.\nThis field will be unset if the version status is not known, for example if VMware Tools is too old to report the information.", + "$ref": "#/definitions/vcenter.vm.tools.version_status" + }, + "install_type": { + "description": "Current installation type of VMware Tools in the guest operating system.\nThis field will be unset if the installation type is not known, for example if VMware Tools is too old to report the information.", + "$ref": "#/definitions/vcenter.vm.tools.tools_install_type" + }, + "run_state": { + "description": "Current run state of VMware Tools in the guest operating system.", + "$ref": "#/definitions/vcenter.vm.tools.run_state" + } + }, + "required": [ + "auto_update_supported", + "upgrade_policy", + "run_state" + ] + }, + "vcenter.vm.tools.installer.info": { + "type": "object", + "properties": { + "is_connected": { + "description": "Flag indicating whether the VMware Tools installer is mounted as a CD-ROM.", + "type": "boolean" + } + }, + "required": [ + "is_connected" + ] + }, + "vcenter.vm.tools.installer_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.tools.installer.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.tools.run_state": { + "type": "string", + "description": "Current run state of VMware Tools in the guest operating system.", + "enum": [ + "NOT_RUNNING", + "RUNNING", + "EXECUTING_SCRIPTS" + ] + }, + "vcenter.vm.tools.tools_install_type": { + "type": "string", + "description": "The Tools.ToolsInstallType enumerated type defines the installation type of the Tools in the guest operating system.", + "enum": [ + "UNKNOWN", + "MSI", + "TAR", + "OSP", + "OPEN_VM_TOOLS" + ] + }, + "vcenter.vm.tools.update_spec": { + "type": "object", + "properties": { + "upgrade_policy": { + "description": "Tools upgrade policy setting for the virtual machine. Tools.UpgradePolicy\nIf unset the upgrade policy will not be modified.", + "$ref": "#/definitions/vcenter.vm.tools.upgrade_policy" + } + } + }, + "vcenter.vm.tools.upgrade_policy": { + "type": "string", + "description": "The Tools.UpgradePolicy enumerated type defines when Tools are auto-upgraded for a virtual machine.", + "enum": [ + "MANUAL", + "UPGRADE_AT_POWER_CYCLE" + ] + }, + "vcenter.vm.tools.version_status": { + "type": "string", + "description": "The Tools.VersionStatus enumerated type defines the version status types of VMware Tools installed in the guest operating system.", + "enum": [ + "NOT_INSTALLED", + "CURRENT", + "UNMANAGED", + "TOO_OLD_UNSUPPORTED", + "SUPPORTED_OLD", + "SUPPORTED_NEW", + "TOO_NEW", + "BLACKLISTED" + ] + }, + "vcenter.vm.tools_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm.tools.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm.tools_update": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm.tools.update_spec", + "description": "The new values." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm.tools_upgrade": { + "type": "object", + "properties": { + "command_line_options": { + "type": "string", + "description": "Command line options passed to the installer to modify the installation procedure for Tools.\nSet if any additional options are desired." + } + } + }, + "vcenter.vm_template.library_items.check_outs.check_in_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.check_outs.check_in_spec": { + "type": "object", + "properties": { + "message": { + "description": "Message describing the changes made to the virtual machine.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "vcenter.vm_template.library_items.check_outs.check_out_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.check_outs.check_out_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the virtual machine to check out of the library item.\nThis field is currently required. In the future, if this field is unset, the system will choose a suitable name for the virtual machine.", + "type": "string" + }, + "placement": { + "description": "Information used to place the checked out virtual machine.\nThis field is currently required. In the future, if this field is unset, the system will place the virtual machine on a suitable resource. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine template result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.placement_spec" + }, + "powered_on": { + "description": "Specifies whether the virtual machine should be powered on after check out.\nIf unset, the virtual machine will not be powered on after check out.", + "type": "boolean" + } + } + }, + "vcenter.vm_template.library_items.check_outs.info": { + "type": "object", + "properties": { + "time": { + "description": "Date and time when the virtual machine was checked out.", + "type": "string", + "format": "date-time" + }, + "user": { + "description": "Name of the user who checked out the virtual machine.", + "type": "string" + } + }, + "required": [ + "time", + "user" + ] + }, + "vcenter.vm_template.library_items.check_outs.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.check_outs.placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine should be placed.\nIf unset, the virtual machine will be placed in the same folder as the source virtual machine template.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. If CheckOuts.PlacementSpec.host and CheckOuts.PlacementSpec.resource-pool are both specified, CheckOuts.PlacementSpec.resource-pool must belong to CheckOuts.PlacementSpec.host. If CheckOuts.PlacementSpec.host and CheckOuts.PlacementSpec.cluster are both specified, CheckOuts.PlacementSpec.host must be a member of CheckOuts.PlacementSpec.cluster.\nThis field may be unset if CheckOuts.PlacementSpec.resource-pool or CheckOuts.PlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine should be placed. If CheckOuts.PlacementSpec.cluster and CheckOuts.PlacementSpec.resource-pool are both specified, CheckOuts.PlacementSpec.resource-pool must belong to CheckOuts.PlacementSpec.cluster. If CheckOuts.PlacementSpec.cluster and CheckOuts.PlacementSpec.host are both specified, CheckOuts.PlacementSpec.host must be a member of CheckOuts.PlacementSpec.cluster.\nIf CheckOuts.PlacementSpec.resource-pool or CheckOuts.PlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "vcenter.vm_template.library_items.check_outs.summary": { + "type": "object", + "properties": { + "vm": { + "description": "Identifier of the checked out virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + } + }, + "required": [ + "vm" + ] + }, + "vcenter.vm_template.library_items.check_outs_check_in": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.check_in_spec", + "description": "Specification used to check in the virtual machine into the library item.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + } + } + }, + "vcenter.vm_template.library_items.check_outs_check_out": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.check_out_spec", + "description": "Specification used to check out the source virtual machine template as a virtual machine.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + } + } + }, + "vcenter.vm_template.library_items.check_outs_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.check_outs.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.cpu_info": { + "type": "object", + "properties": { + "count": { + "description": "Number of CPU cores.", + "type": "integer", + "format": "int64" + }, + "cores_per_socket": { + "description": "Number of CPU cores per socket.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "count", + "cores_per_socket" + ] + }, + "vcenter.vm_template.library_items.cpu_update_spec": { + "type": "object", + "properties": { + "num_cpus": { + "description": "Number of virtual processors in the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same CPU count as the source virtual machine template contained in the library item.", + "type": "integer", + "format": "int64" + }, + "num_cores_per_socket": { + "description": "Number of cores among which to distribute CPUs in the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same number of cores per socket as the source virtual machine template contained in the library item.", + "type": "integer", + "format": "int64" + } + } + }, + "vcenter.vm_template.library_items.create_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the virtual machine template should be placed.\nIf unset, the virtual machine template will be placed in the same folder as the source virtual machine.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the virtual machine template should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine template; if a resource pool cannot be chosen, the library item creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine template should be placed. If LibraryItems.CreatePlacementSpec.host and LibraryItems.CreatePlacementSpec.resource-pool are both specified, LibraryItems.CreatePlacementSpec.resource-pool must belong to LibraryItems.CreatePlacementSpec.host. If LibraryItems.CreatePlacementSpec.host and LibraryItems.CreatePlacementSpec.cluster are both specified, LibraryItems.CreatePlacementSpec.host must be a member of LibraryItems.CreatePlacementSpec.cluster.\nThis field may be unset if LibraryItems.CreatePlacementSpec.resource-pool or LibraryItems.CreatePlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine template; if a host cannot be chosen, the library item creation operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the virtual machine template should be placed. If LibraryItems.CreatePlacementSpec.cluster and LibraryItems.CreatePlacementSpec.resource-pool are both specified, LibraryItems.CreatePlacementSpec.resource-pool must belong to LibraryItems.CreatePlacementSpec.cluster. If LibraryItems.CreatePlacementSpec.cluster and LibraryItems.CreatePlacementSpec.host are both specified, LibraryItems.CreatePlacementSpec.host must be a member of LibraryItems.CreatePlacementSpec.cluster.\nIf LibraryItems.CreatePlacementSpec.resource-pool or LibraryItems.CreatePlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "vcenter.vm_template.library_items.create_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.create_spec": { + "type": "object", + "properties": { + "source_vm": { + "description": "Identifier of the source virtual machine to create the library item from.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: VirtualMachine. When operations return a value of this structure as a result, the field will be an identifier for the resource type: VirtualMachine.", + "type": "string" + }, + "name": { + "description": "Name of the library item.", + "type": "string" + }, + "description": { + "description": "Description of the library item.\nIf unset, the newly created library item has the same description as the source virtual machine.", + "type": "string" + }, + "library": { + "description": "Identifier of the library in which the new library item should be created.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.Library.", + "type": "string" + }, + "vm_home_storage": { + "description": "Storage location for the virtual machine template's configuration and log files.\nIf unset, the virtual machine template's configuration and log files are placed on the default storage backing associated with the library specified by LibraryItems.CreateSpec.library.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_vm_home_storage" + }, + "disk_storage": { + "description": "Storage specification for the virtual machine template's disks.\nIf both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are unset, the virtual machine template's disks are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n If LibraryItems.CreateSpec.disk-storage-overrides is unset and LibraryItems.CreateSpec.disk-storage is specified, all of the virtual machine template's disks are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\n If LibraryItems.CreateSpec.disk-storage-overrides is specified and LibraryItems.CreateSpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n\n If both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_disk_storage" + }, + "disk_storage_overrides": { + "description": "Storage specification for individual disks in the virtual machine template. This is specified as a mapping between disk identifiers in the source virtual machine and their respective storage specifications.\nIf both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are unset, the virtual machine template's disks are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n If LibraryItems.CreateSpec.disk-storage-overrides is unset and LibraryItems.CreateSpec.disk-storage is specified, all of the virtual machine template's disks are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\n If LibraryItems.CreateSpec.disk-storage-overrides is specified and LibraryItems.CreateSpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are placed in the default storage backing associated with the library specified by LibraryItems.CreateSpec.library. \n\n If both LibraryItems.CreateSpec.disk-storage-overrides and LibraryItems.CreateSpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.CreateSpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.CreateSpec.disk-storage. \n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_disk_storage" + } + } + } + }, + "placement": { + "description": "Information used to place the virtual machine template.\nThis field is currently required. In the future, if this field is unset, the system will place the virtual machine template on a suitable resource. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_placement_spec" + } + }, + "required": [ + "source_vm", + "name", + "library" + ] + }, + "vcenter.vm_template.library_items.create_spec_disk_storage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier for the datastore associated with a virtual machine template's disk.\nThis field is currently required. \n If LibraryItems.CreateSpecDiskStorage.storage-policy is also specified and is incompatible with the LibraryItems.CreateSpecDiskStorage.datastore, then the disk will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for a virtual machine template's disk.\nIf unset, LibraryItems.CreateSpecDiskStorage.datastore must be specified and the virtual machine template's disk is created with the default storage policy associated with the LibraryItems.CreateSpecDiskStorage.datastore.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_disk_storage_policy" + } + } + }, + "vcenter.vm_template.library_items.create_spec_disk_storage_policy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating a virtual machine template's disk.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_disk_storage_policy.type" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.CreateSpecDiskStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm_template.library_items.create_spec_disk_storage_policy.type": { + "type": "string", + "description": "Policy type for a virtual machine template's disk.", + "enum": [ + "USE_SPECIFIED_POLICY" + ] + }, + "vcenter.vm_template.library_items.create_spec_vm_home_storage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore for the virtual machine template's configuration and log files.\nThis field is currently required. \n When LibraryItems.CreateSpecVmHomeStorage.storage-policy is also specified and is incompatible with the LibraryItems.CreateSpecVmHomeStorage.datastore, then the virtual machine template will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the virtual machine template's configuration and log files.\nIf unset, LibraryItems.CreateSpecVmHomeStorage.datastore must be specified and the virtual machine template's configuration and log files are created with the default storage policy associated with the LibraryItems.CreateSpecVmHomeStorage.datastore.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_vm_home_storage_policy" + } + } + }, + "vcenter.vm_template.library_items.create_spec_vm_home_storage_policy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the virtual machine template's configuration and log files.", + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec_vm_home_storage_policy.type" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.CreateSpecVmHomeStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm_template.library_items.create_spec_vm_home_storage_policy.type": { + "type": "string", + "description": "Policy type for the virtual machine template's configuration and log files.", + "enum": [ + "USE_SPECIFIED_POLICY" + ] + }, + "vcenter.vm_template.library_items.deploy_placement_spec": { + "type": "object", + "properties": { + "folder": { + "description": "Virtual machine folder into which the deployed virtual machine should be placed.\nThis field is currently required. \n If unset, the system will attempt to choose a suitable folder for the virtual machine; if a folder cannot be chosen, the virtual machine deployment operation will fail. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Folder. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Folder.", + "type": "string" + }, + "resource_pool": { + "description": "Resource pool into which the deployed virtual machine should be placed.\nIf unset, the system will attempt to choose a suitable resource pool for the virtual machine; if a resource pool cannot be chosen, the virtual machine deployment operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ResourcePool. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ResourcePool.", + "type": "string" + }, + "host": { + "description": "Host onto which the virtual machine should be placed. If LibraryItems.DeployPlacementSpec.host and LibraryItems.DeployPlacementSpec.resource-pool are both specified, LibraryItems.DeployPlacementSpec.resource-pool must belong to LibraryItems.DeployPlacementSpec.host. If LibraryItems.DeployPlacementSpec.host and LibraryItems.DeployPlacementSpec.cluster are both specified, LibraryItems.DeployPlacementSpec.host must be a member of LibraryItems.DeployPlacementSpec.cluster.\nThis field may be unset if LibraryItems.DeployPlacementSpec.resource-pool or LibraryItems.DeployPlacementSpec.cluster is specified. If unset, the system will attempt to choose a suitable host for the virtual machine; if a host cannot be chosen, the virtual machine deployment operation will fail.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: HostSystem. When operations return a value of this structure as a result, the field will be an identifier for the resource type: HostSystem.", + "type": "string" + }, + "cluster": { + "description": "Cluster onto which the deployed virtual machine should be placed. If LibraryItems.DeployPlacementSpec.cluster and LibraryItems.DeployPlacementSpec.resource-pool are both specified, LibraryItems.DeployPlacementSpec.resource-pool must belong to LibraryItems.DeployPlacementSpec.cluster. If LibraryItems.DeployPlacementSpec.cluster and LibraryItems.DeployPlacementSpec.host are both specified, LibraryItems.DeployPlacementSpec.host must be a member of LibraryItems.DeployPlacementSpec.cluster.\nIf LibraryItems.DeployPlacementSpec.resource-pool or LibraryItems.DeployPlacementSpec.host is specified, it is recommended that this field be unset.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: ClusterComputeResource. When operations return a value of this structure as a result, the field will be an identifier for the resource type: ClusterComputeResource.", + "type": "string" + } + } + }, + "vcenter.vm_template.library_items.deploy_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.deploy_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the deployed virtual machine.", + "type": "string" + }, + "description": { + "description": "Description of the deployed virtual machine.\nIf unset, the deployed virtual machine has the same description as the source library item.", + "type": "string" + }, + "vm_home_storage": { + "description": "Storage location for the deployed virtual machine's configuration and log files.\nIf unset, the deployed virtual machine's configuration and log files are created with the same storage spec as the source virtual machine template's configuration and log files.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_vm_home_storage" + }, + "disk_storage": { + "description": "Storage specification for the deployed virtual machine's disks.\nIf both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are unset, the deployed virtual machine's disks are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n If LibraryItems.DeploySpec.disk-storage-overrides is unset and LibraryItems.DeploySpec.disk-storage is specified, all of the deployed virtual machine's disks are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\n If LibraryItems.DeploySpec.disk-storage-overrides is specified and LibraryItems.DeploySpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n\n If both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_disk_storage" + }, + "disk_storage_overrides": { + "description": "Storage specification for individual disks in the deployed virtual machine. This is specified as a mapping between disk identifiers in the source virtual machine template contained in the library item and their storage specifications.\nIf both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are unset, the deployed virtual machine's disks are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n If LibraryItems.DeploySpec.disk-storage-overrides is unset and LibraryItems.DeploySpec.disk-storage is specified, all of the deployed virtual machine's disks are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\n If LibraryItems.DeploySpec.disk-storage-overrides is specified and LibraryItems.DeploySpec.disk-storage is unset, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the same storage spec as the corresponding disks in the source virtual machine template contained in the library item. \n\n If both LibraryItems.DeploySpec.disk-storage-overrides and LibraryItems.DeploySpec.disk-storage are specified, disks with identifiers that are not in LibraryItems.DeploySpec.disk-storage-overrides are created with the storage spec specified by LibraryItems.DeploySpec.disk-storage. \n\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_disk_storage" + } + } + } + }, + "placement": { + "description": "Information used to place the deployed virtual machine.\nThis field is currently required. In the future, if this field is unset, the system will use the values from the source virtual machine template contained in the library item. \n If specified, each field will be used for placement. If the fields result in disjoint placement, the operation will fail. If the fields along with the placement values of the source virtual machine template result in disjoint placement, the operation will fail.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_placement_spec" + }, + "powered_on": { + "description": "Specifies whether the deployed virtual machine should be powered on after deployment.\nIf unset, the virtual machine will not be powered on after deployment.", + "type": "boolean" + }, + "guest_customization": { + "description": "Guest customization spec to apply to the deployed virtual machine.\nIf unset, the guest operating system is not customized after deployment.", + "$ref": "#/definitions/vcenter.vm_template.library_items.guest_customization_spec" + }, + "hardware_customization": { + "description": "Hardware customization spec which specifies updates to the deployed virtual machine.\nIf unset, the deployed virtual machine has the same hardware configuration as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/vcenter.vm_template.library_items.hardware_customization_spec" + } + }, + "required": [ + "name" + ] + }, + "vcenter.vm_template.library_items.deploy_spec_disk_storage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier for the datastore associated the deployed virtual machine's disk.\nThis field is currently required. \n If LibraryItems.DeploySpecDiskStorage.storage-policy is also specified and is incompatible with the LibraryItems.DeploySpecDiskStorage.datastore, then the disk will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the deployed virtual machine's disk.\nIf unset, LibraryItems.DeploySpecDiskStorage.datastore must be specified and the deployed virtual machine's disk is created with the default storage policy associated with the LibraryItems.DeploySpecDiskStorage.datastore.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_disk_storage_policy" + } + } + }, + "vcenter.vm_template.library_items.deploy_spec_disk_storage_policy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the deployed virtual machine's disk.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_disk_storage_policy.type" + }, + "policy": { + "description": "Identifier of the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.DeploySpecDiskStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm_template.library_items.deploy_spec_disk_storage_policy.type": { + "type": "string", + "description": "Policy type for the deployed virtual machine's disk.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_SOURCE_POLICY" + ] + }, + "vcenter.vm_template.library_items.deploy_spec_vm_home_storage": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore for the deployed virtual machine's configuration and log files.\nThis field is currently required. \n When LibraryItems.DeploySpecVmHomeStorage.storage-policy is also specified and is incompatible with the LibraryItems.DeploySpecVmHomeStorage.datastore, then the deployed virtual machine will be flagged as being out of compliance with the specified storage policy.\n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Storage policy for the deployed virtual machine's configuration and log files.\nIf unset, LibraryItems.DeploySpecVmHomeStorage.datastore must be specified and the deployed virtual machine's configuration and log files are created with the default storage policy associated with the LibraryItems.DeploySpecVmHomeStorage.datastore.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_vm_home_storage_policy" + } + } + }, + "vcenter.vm_template.library_items.deploy_spec_vm_home_storage_policy": { + "type": "object", + "properties": { + "type": { + "description": "Policy type to be used when creating the deployed virtual machine's configuration and log files.", + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec_vm_home_storage_policy.type" + }, + "policy": { + "description": "Identifier for the storage policy to use.\nThis field is optional and it is only relevant when the value of LibraryItems.DeploySpecVmHomeStoragePolicy.type is USE_SPECIFIED_POLICY.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "vcenter.vm_template.library_items.deploy_spec_vm_home_storage_policy.type": { + "type": "string", + "description": "Policy type for the deployed virtual machine's configuration and log files.", + "enum": [ + "USE_SPECIFIED_POLICY", + "USE_SOURCE_POLICY" + ] + }, + "vcenter.vm_template.library_items.disk_info": { + "type": "object", + "properties": { + "capacity": { + "description": "Capacity of the virtual disk in bytes.\nThis field will be unset if the virtual disk is inaccessible.", + "type": "integer", + "format": "int64" + }, + "disk_storage": { + "description": "Disk storage related information.", + "$ref": "#/definitions/vcenter.vm_template.library_items.disk_storage_info" + } + }, + "required": [ + "disk_storage" + ] + }, + "vcenter.vm_template.library_items.disk_storage_info": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore where the disk is stored.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Identifier of the storage policy associated with the virtual disk.\nIf unset, the virtual disk does not have a storage policy associated with it.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "vcenter.vm_template.library_items.disk_update_spec": { + "type": "object", + "properties": { + "capacity": { + "description": "Updated capacity of the virtual disk backing in bytes. This value has to be larger than the original capacity of the disk.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "capacity" + ] + }, + "vcenter.vm_template.library_items.ethernet_info": { + "type": "object", + "properties": { + "backing_type": { + "description": "Network backing type for the virtual Ethernet adapter.", + "$ref": "#/definitions/vcenter.vm_template.library_items.ethernet_info.network_backing_type" + }, + "mac_type": { + "description": "MAC address type of the ethernet adapter.", + "$ref": "#/definitions/vcenter.vm_template.library_items.ethernet_info.mac_address_type" + }, + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nThis field will be unset if the identifier of the network backing could not be determined.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + } + }, + "required": [ + "backing_type", + "mac_type" + ] + }, + "vcenter.vm_template.library_items.ethernet_info.mac_address_type": { + "type": "string", + "description": "The LibraryItems.EthernetInfo.MacAddressType enumerated type defines the valid MAC address origins for a virtual Ethernet adapter.", + "enum": [ + "MANUAL", + "GENERATED", + "ASSIGNED" + ] + }, + "vcenter.vm_template.library_items.ethernet_info.network_backing_type": { + "type": "string", + "description": "The LibraryItems.EthernetInfo.NetworkBackingType enumerated type defines valid network backing types for a virtual Ethernet adapter.", + "enum": [ + "STANDARD_PORTGROUP", + "HOST_DEVICE", + "DISTRIBUTED_PORTGROUP", + "OPAQUE_NETWORK" + ] + }, + "vcenter.vm_template.library_items.ethernet_update_spec": { + "type": "object", + "properties": { + "network": { + "description": "Identifier of the network backing the virtual Ethernet adapter.\nThis field is currently required. \n If unset, the virtual Ethernet adapter will be connected to same network as it was in the source virtual machine template. \n\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Network. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Network.", + "type": "string" + } + } + }, + "vcenter.vm_template.library_items.guest_customization_spec": { + "type": "object", + "properties": { + "name": { + "description": "Name of the customization specification.\nIf unset, no guest customization is performed.", + "type": "string" + } + } + }, + "vcenter.vm_template.library_items.hardware_customization_spec": { + "type": "object", + "properties": { + "nics": { + "description": "Map of Ethernet network adapters to update.\nIf unset, all Ethernet adapters will remain connected to the same network as they were in the source virtual machine template. An Ethernet adapter with a MacAddressType of MANUAL will not change. An Ethernet adapter with a MacAddressType of GENERATED or ASSIGNED will receive a new address.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.ethernet_update_spec" + } + } + } + }, + "disks_to_remove": { + "description": "Idenfiers of disks to remove from the deployed virtual machine.\nIf unset, all disks will be copied.\nWhen clients pass a value of this structure as a parameter, the field must contain identifiers for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the field will contain identifiers for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "disks_to_update": { + "description": "Disk update specification for individual disks in the deployed virtual machine.\nIf unset, disks in the deployed virtual machine will have the same settings as the corresponding disks in the source virtual machine template contained in the library item.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.disk_update_spec" + } + } + } + }, + "cpu_update": { + "description": "CPU update specification for the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same CPU settings as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/vcenter.vm_template.library_items.cpu_update_spec" + }, + "memory_update": { + "description": "Memory update specification for the deployed virtual machine.\nIf {@term.unset}, the deployed virtual machine has the same memory settings as the source virtual machine template contained in the library item.", + "$ref": "#/definitions/vcenter.vm_template.library_items.memory_update_spec" + } + } + }, + "vcenter.vm_template.library_items.info": { + "type": "object", + "properties": { + "guest_OS": { + "description": "Configured guest operating system of the virtual machine template.", + "$ref": "#/definitions/vcenter.vm.guest_OS" + }, + "cpu": { + "description": "CPU configuration of the virtual machine template.", + "$ref": "#/definitions/vcenter.vm_template.library_items.cpu_info" + }, + "memory": { + "description": "Memory configuration of the virtual machine template.", + "$ref": "#/definitions/vcenter.vm_template.library_items.memory_info" + }, + "vm_home_storage": { + "description": "Storage information about the virtual machine template's configuration and log files.", + "$ref": "#/definitions/vcenter.vm_template.library_items.vm_home_storage_info" + }, + "disks": { + "description": "Storage information about the virtual machine template's virtual disks.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Disk. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Disk.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.disk_info" + } + } + } + }, + "nics": { + "description": "Information about the virtual machine template's virtual ethernet adapters.\nWhen clients pass a value of this structure as a parameter, the key in the field map must be an identifier for the resource type: vcenter.vm.hardware.Ethernet. When operations return a value of this structure as a result, the key in the field map will be an identifier for the resource type: vcenter.vm.hardware.Ethernet.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.ethernet_info" + } + } + } + }, + "vm_template": { + "description": "Identifier of the latest virtual machine template contained in the library item. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "guest_OS", + "cpu", + "memory", + "vm_home_storage", + "disks", + "nics", + "vm_template" + ] + }, + "vcenter.vm_template.library_items.memory_info": { + "type": "object", + "properties": { + "size_MiB": { + "description": "Memory size in mebibytes.", + "type": "integer", + "format": "int64" + } + }, + "required": [ + "size_MiB" + ] + }, + "vcenter.vm_template.library_items.memory_update_spec": { + "type": "object", + "properties": { + "memory": { + "description": "Size of a virtual machine's memory in MB.\nIf {@term.unset}, the deployed virtual machine has the same memory size as the source virtual machine template.", + "type": "integer", + "format": "int64" + } + } + }, + "vcenter.vm_template.library_items.versions.info": { + "type": "object", + "properties": { + "vm_template": { + "description": "Identifier of the virtual machine template associated with the library item version. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "vm_template" + ] + }, + "vcenter.vm_template.library_items.versions.list_resp": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions.summary" + } + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.versions.rollback_resp": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.versions.rollback_spec": { + "type": "object", + "properties": { + "message": { + "description": "Message describing the reason for the rollback.", + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "vcenter.vm_template.library_items.versions.summary": { + "type": "object", + "properties": { + "version": { + "description": "The version of the library item.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: content.library.item.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: content.library.item.Version.", + "type": "string" + }, + "vm_template": { + "description": "Identifier of the virtual machine template associated with the library item version. This field is the managed object identifier used to identify the virtual machine template in the vSphere Management (SOAP) API.", + "type": "string" + } + }, + "required": [ + "version", + "vm_template" + ] + }, + "vcenter.vm_template.library_items.versions_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions.info" + } + }, + "required": [ + "value" + ] + }, + "vcenter.vm_template.library_items.versions_rollback": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm_template.library_items.versions.rollback_spec", + "description": "Specification to rollback the library item.\nThis parameter is currently required. In the future, if this parameter is unset, the system will apply suitable defaults." + } + } + }, + "vcenter.vm_template.library_items.vm_home_storage_info": { + "type": "object", + "properties": { + "datastore": { + "description": "Identifier of the datastore where the virtual machine template's configuration and log files are stored.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: Datastore. When operations return a value of this structure as a result, the field will be an identifier for the resource type: Datastore.", + "type": "string" + }, + "storage_policy": { + "description": "Identifier of the storage policy associated with the virtual machine template's configuration and log files.\nIf unset, the virtual machine template's configuration and log files do not have a storage policy associated with them.\nWhen clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: spbm.StorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: spbm.StorageProfile.", + "type": "string" + } + }, + "required": [ + "datastore" + ] + }, + "vcenter.vm_template.library_items_create": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm_template.library_items.create_spec", + "description": "information used to create the library item from the source virtual machine." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm_template.library_items_deploy": { + "type": "object", + "properties": { + "spec": { + "$ref": "#/definitions/vcenter.vm_template.library_items.deploy_spec", + "description": "specification of how the virtual machine should be deployed." + } + }, + "required": [ + "spec" + ] + }, + "vcenter.vm_template.library_items_resp": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/vcenter.vm_template.library_items.info" + } + }, + "required": [ + "value" + ] + } + } +} \ No newline at end of file diff --git a/config/copy_old_return_blocks.py b/config/copy_old_return_blocks.py new file mode 100755 index 000000000..ff140a242 --- /dev/null +++ b/config/copy_old_return_blocks.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +import os + + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) +OLD_MODULE_PATH = f"{SCRIPT_DIR}/../plugins/modules" +NEW_MODULE_PATH = f"{SCRIPT_DIR}/output/plugins/modules" + + +def read_examples_and_return_blocks(module_file_path): + with open(module_file_path, "r") as f: + lines = f.readlines() + + copy_line = False + content = [] + for line in lines: + if line.startswith('EXAMPLES = r"""') or line.startswith('RETURN = r"""'): + copy_line = True + + if copy_line: + content += [line] + + if line.startswith('"""'): + copy_line = False + + return content + + +def inject_examples_and_return_blocks(module_file_path, inject_lines): + with open(module_file_path, "r") as f: + lines = f.readlines() + + new_content = [] + added_content = False + open_block = False + for line in lines: + if line.startswith('EXAMPLES = r"""') or line.startswith('RETURN = r"""'): + open_block = True + if not added_content: + new_content += inject_lines + added_content = True + continue + + if open_block and line.startswith('"""'): + open_block = False + continue + + new_content += [line] + + return new_content + + +if __name__ == "__main__": + for module in os.listdir(OLD_MODULE_PATH): + old_module = os.path.join(OLD_MODULE_PATH, module) + new_module = old_module.replace(OLD_MODULE_PATH, NEW_MODULE_PATH) + if os.path.isfile(old_module): + blocks = read_examples_and_return_blocks(old_module) + new_content = inject_examples_and_return_blocks(new_module, blocks) + + with open(new_module, "w") as f: + for line in new_content: + f.write(f"{line}") diff --git a/config/generate.yml b/config/generate.yml new file mode 100644 index 000000000..532daddde --- /dev/null +++ b/config/generate.yml @@ -0,0 +1,35 @@ +--- +- name: Generate Modules For VMWare Rest + hosts: localhost + gather_facts: true + vars: + mock_sanity_ignore_versions: + - '2.9' + - '2.10' + - '2.11' + - '2.12' + - '2.13' + - '2.14' + pre_tasks: + - name: Create Output Dir + ansible.builtin.file: + state: directory + path: "{{ playbook_dir }}/output/tests/sanity" + - name: Make Stub Sanity Ignore Files + ansible.builtin.file: + state: touch + path: "{{ playbook_dir }}/output/tests/sanity/ignore-{{ item }}.txt" + loop: "{{ mock_sanity_ignore_versions }}" + roles: + - role: ansible.content_builder.run + manifest_file: "{{ playbook_dir }}/MANIFEST.yml" + tasks: + - name: Remove Stub Sanity Ignore Files + ansible.builtin.file: + state: absent + path: "{{ playbook_dir }}/output/tests/sanity/ignore-{{ item }}.txt" + loop: "{{ mock_sanity_ignore_versions }}" + - name: Sync Return and Example Blocks + ansible.builtin.command: python "{{ playbook_dir }}/copy_old_return_blocks.py" + - name: Reformat Modules + ansible.builtin.shell: black {{ playbook_dir }}/output/plugins/modules/* diff --git a/config/modules.yaml b/config/modules.yaml index c071f662d..a5a9291c5 100644 --- a/config/modules.yaml +++ b/config/modules.yaml @@ -3,22 +3,22 @@ - appliance_access_consolecli: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_access_dcui_info: - appliance_access_dcui: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_access_shell_info: - appliance_access_shell: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_access_ssh_info: - appliance_access_ssh: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_health_applmgmt_info: - appliance_health_database_info: - appliance_health_databasestorage_info: @@ -46,14 +46,14 @@ - appliance_networking_dns_domains: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_networking_dns_hostname_info: - appliance_networking_dns_hostname: - appliance_networking_dns_servers_info: - appliance_networking_dns_servers: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_networking_firewall_inbound_info: - appliance_networking_firewall_inbound: - appliance_networking_info: @@ -71,7 +71,7 @@ - appliance_ntp: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_services_info: - appliance_services: - appliance_shutdown_info: @@ -85,17 +85,19 @@ - appliance_system_time_timezone: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_system_version_info: - appliance_timesync_info: - appliance_timesync: documentation: seealso: - - M(vmware.vmware.vcsa_settings) + - module: vmware.vmware.vcsa_settings - appliance_update_info: - appliance_vmon_service_info: - appliance_vmon_service: - content_library_item_info: +- content_library_info: +- content_library_subscriptions_info: - content_locallibrary_info: - content_locallibrary: - content_subscribedlibrary_info: @@ -109,11 +111,13 @@ - vcenter_folder_info: - vcenter_host_info: - vcenter_host: +- vcenter_info: - vcenter_network_info: - vcenter_ovf_libraryitem: - vcenter_resourcepool_info: - vcenter_resourcepool: - vcenter_storage_policies_info: +- vcenter_storage_profile_info: - vcenter_vm_guest_customization: documentation: short_description: Applies a customization specification on the virtual machine diff --git a/config/requirements.txt b/config/requirements.txt new file mode 100644 index 000000000..c3f789bf4 --- /dev/null +++ b/config/requirements.txt @@ -0,0 +1,9 @@ +ansible +jsonschema +boto3 +baron +redbaron +ruamel +ruamel.yaml +autoflake +black diff --git a/development.md b/development.md index 956ca470f..7b00a5daa 100644 --- a/development.md +++ b/development.md @@ -1,67 +1,57 @@ -# VMWare - +# VMWare Rest + # Development Guide -## Installation -Install the ansible.content_builder tool. -``` -pip install black==22.3.0 jsonschema jinja2==3.0.3 ansible-core -ansible-galaxy collection install git+https://github.com/ansible-community/ansible.content_builder.git -``` +See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details. -You can also include it in a `requirements.yml` file and install it via `ansible-galaxy collection install -r requirements.yml` using the format: +## How To: Generate Collection Modules -``` -collections: -- name: ansible.content_builder -``` +1. Get the OpenAPI spec from VCenter + a. Clone https://github.com/vmware/vmware-openapi-generator + b. Run `python vmsgen.py -vc 'your_vcenter_ip_or_hostname' -o gen_out --insecure --oas 2 --deprecate-slash-rest --fetch-authentication-metadata` from within the checked out repo + c. validate the directory `gen_out` has the spec files. Note `--oas 2` generates version 2 spec files. Version 3 seems bugged https://github.com/vmware/vmware-openapi-generator/issues/73 -See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details. +2. Add/Replace the spec in this repo + a. in `config/api_specifications` there are directories corresponding to VCenter versions. If the version you are generating a spec for does not exist, create it. + b. Copy the files you generated in step 1 (`gen_out/*.json`) to the directory matching your VCenter version in `config/api_specifications` -## Using the Content Builder tool to generate vmware modules: +3. Configure the content builder tool manifest + a. Update the `config/MANIFEST.yml`. The `plugins.api_object_path` property should be whatever version of VCenter you generated the specs for + b. **Note**: the property `plugins.module_version` should always be `1.0.0` + c. For more information on the command and input arguments, please refer to the tool's [README](https://github.com/ansible-community/ansible.content_builder#resource-module-scaffolding-generated-using-openapi-based-json). -To use the content builder tool, you need to provide a YAML file that contains all the information needed to generate a vmware module. You can find the necessary files, such as the [api specification](https://github.com/ansible-collections/vmware.vmware_rest/tree/main/config/api_specifications) and the [modules.yaml](https://github.com/ansible-collections/vmware.vmware_rest/tree/main/config/modules.yaml), in the repository. You can copy these files to your local path and customize them as per your requirements. After that, you must specify the path of these files in the input yaml file against the api_object_path and resource parameter. If you want to generate both examples and modules, set the action parameter to `generate_all`. If you only want to generate examples, use `action: generate_examples`, and for only modules, use `action: generate_modules`. For more information on the command and input arguments, please refer to the tool's [README](https://github.com/ansible-community/ansible.content_builder#resource-module-scaffolding-generated-using-openapi-based-json). To generate the vmware modules using the content_builder tool, you can use the following command: +4. Install Extra Pip Requirements + a. Run from the root of the repo: `pip install -r config/requirements.txt` + b. These requirements are taken from the content builder tool repo -``` -ansible-playbook build.yaml -e manifest_file=MANIFEST.yaml -``` +4. Run the content builder tool + a. Install the tool, if needed: `ansible-galaxy collection install git+https://github.com/ansible-community/ansible.content_builder.git` + b. Run the tool from the root of the repo: `ansible-playbook config/generate.yml` -The build.yaml file should contain the following code: +5. Copy the new content to the repo + a. Once the playbook finishes successfully, you can view the new content in `config/output` + b. Copy the contents of `config/output` to the proper places in this repo + c. The main things to copy will be `plugins`, `tests`, and `runtime`. The other generated files probably dont need to replace the existing files -```yaml ---- -- hosts: localhost - gather_facts: yes - roles: - - ansible.content_builder.run -``` +#### (Optional) Update the `RETURN Block` of the vmware modules using the test-suite -And the MANIFEST.yaml file should contain the following code: - -```yaml ---- -collection: - path: /collections/ansible_collections/vmware/vmware_rest - namespace: vmware - name: vmware_rest -plugins: - - type: module_openapi - name: "vmware_rest" - content: cloud - api_object_path: api_specifications/7.0.2 - resource: config - action: generate_all - unique_key: "" - rm_swagger_json: "" - module_version: "1.0.0" - author: "Ansible Cloud Team" -``` +The `generate.yml` playbook will copy the old blocks to the new modules. You can refresh the blocks if you introduce a new API version. -Once the modules are generated in the location mentioned in `collection:path`, you can follow the below steps to refresh the RETURN block in the module documentaion. -**_Refresh the `RETURN Block` of the vmware modules using the test-suite:_** +**Note** The steps below will run a playbook that stops all of the VMs in a vcenter + +Create `/tmp/inventory-vmware_rest` like: +``` +[vmware_rest] +localhost ansible_connection=local + +[vmware_rest:vars] +vcenter_hostname=your_hostname +vcenter_username=your_admin +vcenter_password=your_pass +``` -Set the env variables mentioned in [tox.ini](https://github.com/ansible-collections/vmware.vmware_rest/blob/main/tox.ini#L47). +Run: ``` mkdir -p ~/.ansible/collections/ansible_collections/goneri/utils git clone https://github.com/goneri/ansible-collection-goneri.utils.git ~/.ansible/collections/ansible_collections/goneri/utils @@ -70,3 +60,9 @@ Set the env variables mentioned in [tox.ini](https://github.com/ansible-collecti cd ~/.ansible/collections/ansible_collections/goneri/utils ./scripts/inject_RETURN.py ~/.ansible/collections/ansible_collections/vmware/vmware_rest/manual/source/vmware_rest_scenarios/task_outputs ~/.ansible/collections/ansible_collections/vmware/vmware_rest --config-file config/inject_RETURN.yaml ``` + +## More Details on Content Builder + +To use the content builder tool, you need to provide a YAML file that contains all the information needed to generate a vmware module. You can find the necessary files, such as the [api specification](https://github.com/ansible-collections/vmware.vmware_rest/tree/main/config/api_specifications) and the [modules.yaml](https://github.com/ansible-collections/vmware.vmware_rest/tree/main/config/modules.yaml), in the repository. You can copy these files to your local path and customize them as per your requirements. After that, you must specify the path of these files in the input yaml file against the api_object_path and resource parameter. If you want to generate both examples and modules, set the action parameter to `generate_all`. If you only want to generate examples, use `action: generate_examples`, and for only modules, use `action: generate_modules`. For more information on the command and input arguments, please refer to the tool's [README](https://github.com/ansible-community/ansible.content_builder#resource-module-scaffolding-generated-using-openapi-based-json). + +Once the modules are generated in the location mentioned in `collection:path`, you can follow the below steps to refresh the RETURN block in the module documentaion. diff --git a/docs/docsite/rst/dev_guide.rst b/docs/docsite/rst/dev_guide.rst index 981900d3e..ef6cae165 100644 --- a/docs/docsite/rst/dev_guide.rst +++ b/docs/docsite/rst/dev_guide.rst @@ -12,12 +12,9 @@ The Ansible VMware REST collection (on ``Galaxy ``. +The modules of the vmware_rest collection are autogenerated by another tool called ``content_builder ``. -If you would like to contribute a change, we would appreciate if you: - -- submit a GitHub Pull Request (PR) against the vmware_rest_code_generator project -- but also ensure the generated modules are compliant with our quality criteria. +If you would like to contribute a change, we would appreciate if you opened an issue in this repo. Requirements ============ @@ -28,27 +25,10 @@ You will need: - the ``tox `` command -vmware_rest_code_generator +Module Generation ========================== -Your contribution should follow the coding style of ``Black ``. -To run the code formatter, just run: - -.. code-block:: shell - - tox -e black - -To regenerate the vmware_rest collection, you can use the following commands: - -.. code-block:: shell - - tox -e refresh_modules -- --target-dir ~/.ansible/collections/ansible_collections/vmware/vmware_rest - -If you also want to update the EXAMPLE section of the modules, run: - -.. code-block:: shell - - tox -e refresh_examples -- --target-dir ~/.ansible/collections/ansible_collections/vmware/vmware_rest +See the ``development.md`` file in this repo. Testing with ansible-test ========================= diff --git a/galaxy.yml b/galaxy.yml index 20af9e62e..e5d288a93 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -2,7 +2,7 @@ namespace: vmware name: vmware_rest readme: README.md -version: 4.0.0-dev0 +version: "4.0.0" authors: - Ansible (https://github.com/ansible) description: VMware collection for Ansible diff --git a/meta/runtime.yml b/meta/runtime.yml index 5dc3eefb8..40d75ae2a 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -2,135 +2,137 @@ requires_ansible: ">=2.15.0" action_groups: vmware_rest: - - vcenter_cluster_info - - vcenter_datacenter_info - - vcenter_datacenter - - vcenter_datastore_info - - vcenter_folder_info - - vcenter_host_info - - vcenter_host - - vcenter_network_info - - vcenter_ovf_libraryitem - - vcenter_resourcepool_info - - vcenter_resourcepool - - vcenter_storage_policies_info - - vcenter_vm_info - - vcenter_vm - - vcenter_vmtemplate_libraryitems_info - - vcenter_vmtemplate_libraryitems - - vcenter_vm_guest_customization - - vcenter_vm_guest_filesystem_directories - - vcenter_vm_guest_identity_info - - vcenter_vm_guest_localfilesystem_info - - vcenter_vm_guest_networking_info - - vcenter_vm_guest_networking_interfaces_info - - vcenter_vm_guest_networking_routes_info - - vcenter_vm_guest_operations_info - - vcenter_vm_guest_power_info - - vcenter_vm_guest_power - - vcenter_vm_hardware_info - - vcenter_vm_hardware - - vcenter_vm_hardware_adapter_sata_info - - vcenter_vm_hardware_adapter_sata - - vcenter_vm_hardware_adapter_scsi_info - - vcenter_vm_hardware_adapter_scsi - - vcenter_vm_hardware_boot_info - - vcenter_vm_hardware_boot - - vcenter_vm_hardware_boot_device_info - - vcenter_vm_hardware_boot_device - - vcenter_vm_hardware_cdrom_info - - vcenter_vm_hardware_cdrom - - vcenter_vm_hardware_cpu_info - - vcenter_vm_hardware_cpu - - vcenter_vm_hardware_disk_info - - vcenter_vm_hardware_disk - - vcenter_vm_hardware_ethernet_info - - vcenter_vm_hardware_ethernet - - vcenter_vm_hardware_floppy_info - - vcenter_vm_hardware_floppy - - vcenter_vm_hardware_memory_info - - vcenter_vm_hardware_memory - - vcenter_vm_hardware_parallel_info - - vcenter_vm_hardware_parallel - - vcenter_vm_hardware_serial_info - - vcenter_vm_hardware_serial - - vcenter_vm_libraryitem_info - - vcenter_vm_power_info - - vcenter_vm_power - - vcenter_vm_storage_policy_info - - vcenter_vm_storage_policy - - vcenter_vm_storage_policy_compliance_info - - vcenter_vm_storage_policy_compliance - - vcenter_vm_tools_info - - vcenter_vm_tools - - vcenter_vm_tools_installer_info - - vcenter_vm_tools_installer - - content_configuration_info - - content_configuration - - content_library_item_info - - content_locallibrary_info - - content_locallibrary - - content_subscribedlibrary_info - - content_subscribedlibrary - - appliance_access_consolecli_info - - appliance_access_consolecli - - appliance_access_dcui_info - - appliance_access_dcui - - appliance_access_shell_info - - appliance_access_shell - - appliance_access_ssh_info - - appliance_access_ssh - - appliance_health_applmgmt_info - - appliance_health_database_info - - appliance_health_databasestorage_info - - appliance_health_load_info - - appliance_health_mem_info - - appliance_health_softwarepackages_info - - appliance_health_storage_info - - appliance_health_swap_info - - appliance_health_system_info - - appliance_infraprofile_configs_info - - appliance_infraprofile_configs - - appliance_localaccounts_info - - appliance_localaccounts_globalpolicy_info - - appliance_localaccounts_globalpolicy - - appliance_monitoring_info - - appliance_monitoring_query - - appliance_networking_info - - appliance_networking - - appliance_networking_dns_domains_info - - appliance_networking_dns_domains - - appliance_networking_dns_hostname_info - - appliance_networking_dns_hostname - - appliance_networking_dns_servers_info - - appliance_networking_dns_servers - - appliance_networking_firewall_inbound_info - - appliance_networking_firewall_inbound - - appliance_networking_interfaces_info - - appliance_networking_interfaces_ipv4_info - - appliance_networking_interfaces_ipv4 - - appliance_networking_interfaces_ipv6_info - - appliance_networking_interfaces_ipv6 - - appliance_networking_noproxy_info - - appliance_networking_noproxy - - appliance_networking_proxy_info - - appliance_networking_proxy - - appliance_ntp_info - - appliance_ntp - - appliance_services_info - - appliance_services - - appliance_shutdown_info - - appliance_shutdown - - appliance_system_globalfips_info - - appliance_system_globalfips - - appliance_system_storage_info - - appliance_system_storage - - appliance_system_time_info - - appliance_system_time_timezone_info - - appliance_system_time_timezone - - appliance_system_version_info - - appliance_timesync_info - - appliance_timesync - - appliance_update_info - - appliance_vmon_service_info - - appliance_vmon_service + - appliance_access_consolecli_info + - appliance_access_consolecli + - appliance_access_dcui_info + - appliance_access_dcui + - appliance_access_shell_info + - appliance_access_shell + - appliance_access_ssh_info + - appliance_access_ssh + - appliance_health_applmgmt_info + - appliance_health_database_info + - appliance_health_databasestorage_info + - appliance_health_load_info + - appliance_health_mem_info + - appliance_health_softwarepackages_info + - appliance_health_storage_info + - appliance_health_swap_info + - appliance_health_system_info + - appliance_infraprofile_configs_info + - appliance_infraprofile_configs + - appliance_localaccounts_globalpolicy_info + - appliance_localaccounts_globalpolicy + - appliance_localaccounts_info + - appliance_monitoring_info + - appliance_monitoring_query + - appliance_networking_dns_domains_info + - appliance_networking_dns_domains + - appliance_networking_dns_hostname_info + - appliance_networking_dns_hostname + - appliance_networking_dns_servers_info + - appliance_networking_dns_servers + - appliance_networking_firewall_inbound_info + - appliance_networking_firewall_inbound + - appliance_networking_info + - appliance_networking_interfaces_info + - appliance_networking_interfaces_ipv4_info + - appliance_networking_interfaces_ipv4 + - appliance_networking_interfaces_ipv6_info + - appliance_networking_interfaces_ipv6 + - appliance_networking_noproxy_info + - appliance_networking_noproxy + - appliance_networking_proxy_info + - appliance_networking_proxy + - appliance_networking + - appliance_ntp_info + - appliance_ntp + - appliance_services_info + - appliance_services + - appliance_shutdown_info + - appliance_shutdown + - appliance_system_globalfips_info + - appliance_system_globalfips + - appliance_system_storage_info + - appliance_system_storage + - appliance_system_time_info + - appliance_system_time_timezone_info + - appliance_system_time_timezone + - appliance_system_version_info + - appliance_timesync_info + - appliance_timesync + - appliance_update_info + - appliance_vmon_service_info + - appliance_vmon_service + - content_configuration_info + - content_configuration + - content_library_info + - content_library_item_info + - content_library_subscriptions_info + - content_locallibrary_info + - content_locallibrary + - content_subscribedlibrary_info + - content_subscribedlibrary + - vcenter_cluster_info + - vcenter_datacenter_info + - vcenter_datacenter + - vcenter_datastore_info + - vcenter_folder_info + - vcenter_host_info + - vcenter_host + - vcenter_network_info + - vcenter_ovf_libraryitem + - vcenter_resourcepool_info + - vcenter_resourcepool + - vcenter_storage_policies_info + - vcenter_vm_guest_customization + - vcenter_vm_guest_filesystem_directories + - vcenter_vm_guest_identity_info + - vcenter_vm_guest_localfilesystem_info + - vcenter_vm_guest_networking_info + - vcenter_vm_guest_networking_interfaces_info + - vcenter_vm_guest_networking_routes_info + - vcenter_vm_guest_operations_info + - vcenter_vm_guest_power_info + - vcenter_vm_guest_power + - vcenter_vm_hardware_adapter_sata_info + - vcenter_vm_hardware_adapter_sata + - vcenter_vm_hardware_adapter_scsi_info + - vcenter_vm_hardware_adapter_scsi + - vcenter_vm_hardware_boot_device_info + - vcenter_vm_hardware_boot_device + - vcenter_vm_hardware_boot_info + - vcenter_vm_hardware_boot + - vcenter_vm_hardware_cdrom_info + - vcenter_vm_hardware_cdrom + - vcenter_vm_hardware_cpu_info + - vcenter_vm_hardware_cpu + - vcenter_vm_hardware_disk_info + - vcenter_vm_hardware_disk + - vcenter_vm_hardware_ethernet_info + - vcenter_vm_hardware_ethernet + - vcenter_vm_hardware_floppy_info + - vcenter_vm_hardware_floppy + - vcenter_vm_hardware_info + - vcenter_vm_hardware_memory_info + - vcenter_vm_hardware_memory + - vcenter_vm_hardware_parallel_info + - vcenter_vm_hardware_parallel + - vcenter_vm_hardware + - vcenter_vm_hardware_serial_info + - vcenter_vm_hardware_serial + - vcenter_vm_info + - vcenter_vm_libraryitem_info + - vcenter_vm_power_info + - vcenter_vm_power + - vcenter_vm + - vcenter_vm_storage_policy_compliance_info + - vcenter_vm_storage_policy_compliance + - vcenter_vm_storage_policy_info + - vcenter_vm_storage_policy + - vcenter_vmtemplate_libraryitems_info + - vcenter_vmtemplate_libraryitems + - vcenter_vm_tools_info + - vcenter_vm_tools_installer_info + - vcenter_vm_tools_installer + - vcenter_vm_tools diff --git a/plugins/modules/appliance_access_consolecli.py b/plugins/modules/appliance_access_consolecli.py index 1c1a3eb10..80084fdbc 100644 --- a/plugins/modules/appliance_access_consolecli.py +++ b/plugins/modules/appliance_access_consolecli.py @@ -70,11 +70,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -84,7 +86,6 @@ vmware.vmware_rest.appliance_access_consolecli: enabled: false """ - RETURN = r""" # content generated by the update_return_section callback# task: Disable the Console CLI value: @@ -94,6 +95,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"enabled": "enabled"}, "path": {}} @@ -200,6 +202,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -253,5 +256,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_consolecli_info.py b/plugins/modules/appliance_access_consolecli_info.py index a14c9672a..136f4f4a4 100644 --- a/plugins/modules/appliance_access_consolecli_info.py +++ b/plugins/modules/appliance_access_consolecli_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -72,7 +72,6 @@ - name: Check if the Console CLI is enabled vmware.vmware_rest.appliance_access_consolecli_info: """ - RETURN = r""" # content generated by the update_return_section callback# task: Check if the Console CLI is enabled value: @@ -82,6 +81,7 @@ type: int """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -203,5 +203,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_dcui.py b/plugins/modules/appliance_access_dcui.py index 1e5c26e0b..04098e2ac 100644 --- a/plugins/modules/appliance_access_dcui.py +++ b/plugins/modules/appliance_access_dcui.py @@ -70,11 +70,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -84,7 +86,6 @@ vmware.vmware_rest.appliance_access_dcui: enabled: false """ - RETURN = r""" # content generated by the update_return_section callback# task: Disable the Direct Console User Interface value: @@ -94,6 +95,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"enabled": "enabled"}, "path": {}} @@ -198,6 +200,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -251,5 +254,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_dcui_info.py b/plugins/modules/appliance_access_dcui_info.py index 33d64ae48..ed326efa2 100644 --- a/plugins/modules/appliance_access_dcui_info.py +++ b/plugins/modules/appliance_access_dcui_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -72,7 +72,6 @@ - name: Check if the Direct Console User Interface is enabled vmware.vmware_rest.appliance_access_dcui_info: """ - RETURN = r""" # content generated by the update_return_section callback# task: Check if the Direct Console User Interface is enabled value: @@ -82,6 +81,7 @@ type: int """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -201,5 +201,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_shell.py b/plugins/modules/appliance_access_shell.py index 5cc4377f1..520140b0a 100644 --- a/plugins/modules/appliance_access_shell.py +++ b/plugins/modules/appliance_access_shell.py @@ -78,11 +78,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -99,7 +101,6 @@ timeout: 600 register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Disable the Shell value: @@ -111,6 +112,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": { @@ -220,6 +222,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -273,5 +276,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_shell_info.py b/plugins/modules/appliance_access_shell_info.py index 78cc1a29a..11aee2055 100644 --- a/plugins/modules/appliance_access_shell_info.py +++ b/plugins/modules/appliance_access_shell_info.py @@ -61,7 +61,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -75,7 +75,6 @@ vmware.vmware_rest.appliance_access_shell_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Check if the Shell is enabled value: @@ -87,6 +86,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -206,5 +206,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_ssh.py b/plugins/modules/appliance_access_ssh.py index 85add817c..6bb1bdbdd 100644 --- a/plugins/modules/appliance_access_ssh.py +++ b/plugins/modules/appliance_access_ssh.py @@ -70,11 +70,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -85,7 +87,6 @@ enabled: true register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Ensure the SSH access ie enabled value: @@ -95,6 +96,7 @@ type: int """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"enabled": "enabled"}, "path": {}} @@ -199,6 +201,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -252,5 +255,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_access_ssh_info.py b/plugins/modules/appliance_access_ssh_info.py index debb75fd4..a82015636 100644 --- a/plugins/modules/appliance_access_ssh_info.py +++ b/plugins/modules/appliance_access_ssh_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_access_ssh_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Check is the SSH access is enabled value: @@ -83,6 +82,7 @@ type: int """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -202,5 +202,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_applmgmt_info.py b/plugins/modules/appliance_health_applmgmt_info.py index ce822f432..6d29d32e5 100644 --- a/plugins/modules/appliance_health_applmgmt_info.py +++ b/plugins/modules/appliance_health_applmgmt_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_applmgmt_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the health state of applmgmt value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_database_info.py b/plugins/modules/appliance_health_database_info.py index 2b6c5e41b..8d71b1f1a 100644 --- a/plugins/modules/appliance_health_database_info.py +++ b/plugins/modules/appliance_health_database_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,10 +73,10 @@ vmware.vmware_rest.appliance_health_database_info: register: result """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -198,5 +198,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_databasestorage_info.py b/plugins/modules/appliance_health_databasestorage_info.py index c23c4b5cf..a12940030 100644 --- a/plugins/modules/appliance_health_databasestorage_info.py +++ b/plugins/modules/appliance_health_databasestorage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_databasestorage_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the database storage heath status value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_load_info.py b/plugins/modules/appliance_health_load_info.py index a5f632627..1d0bdbd48 100644 --- a/plugins/modules/appliance_health_load_info.py +++ b/plugins/modules/appliance_health_load_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_load_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the system load status value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -202,5 +202,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_mem_info.py b/plugins/modules/appliance_health_mem_info.py index 4e02ed37b..5d80131ca 100644 --- a/plugins/modules/appliance_health_mem_info.py +++ b/plugins/modules/appliance_health_mem_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_mem_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the system mem status @@ -84,6 +83,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -203,5 +203,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_softwarepackages_info.py b/plugins/modules/appliance_health_softwarepackages_info.py index da749d9c6..d45f25f69 100644 --- a/plugins/modules/appliance_health_softwarepackages_info.py +++ b/plugins/modules/appliance_health_softwarepackages_info.py @@ -64,7 +64,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -78,7 +78,6 @@ vmware.vmware_rest.appliance_health_softwarepackages_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the health of the software package manager value: @@ -88,6 +87,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -209,5 +209,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_storage_info.py b/plugins/modules/appliance_health_storage_info.py index d334c03e2..50cdf65a1 100644 --- a/plugins/modules/appliance_health_storage_info.py +++ b/plugins/modules/appliance_health_storage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_storage_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the health of the storage system value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_swap_info.py b/plugins/modules/appliance_health_swap_info.py index ba7c51d40..57f5c2bdd 100644 --- a/plugins/modules/appliance_health_swap_info.py +++ b/plugins/modules/appliance_health_swap_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_swap_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the health of the swap value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -202,5 +202,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_health_system_info.py b/plugins/modules/appliance_health_system_info.py index 2102647d2..78cc2f4b9 100644 --- a/plugins/modules/appliance_health_system_info.py +++ b/plugins/modules/appliance_health_system_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_health_system_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the system health status value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_infraprofile_configs.py b/plugins/modules/appliance_infraprofile_configs.py index 8c685fde6..78579024f 100644 --- a/plugins/modules/appliance_infraprofile_configs.py +++ b/plugins/modules/appliance_infraprofile_configs.py @@ -83,7 +83,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -100,7 +100,6 @@ - ApplianceManagement register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Export the ApplianceManagement profile value: @@ -121,6 +120,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "export": { @@ -237,6 +237,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -282,5 +283,9 @@ async def _export(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_infraprofile_configs_info.py b/plugins/modules/appliance_infraprofile_configs_info.py index ae36681b4..41e913d05 100644 --- a/plugins/modules/appliance_infraprofile_configs_info.py +++ b/plugins/modules/appliance_infraprofile_configs_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_infraprofile_configs_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: List infraprofile configs value: @@ -89,6 +88,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {}, "body": {}, "path": {}} @@ -209,5 +209,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_localaccounts_globalpolicy.py b/plugins/modules/appliance_localaccounts_globalpolicy.py index ee3fe2a1f..ccab3bf9f 100644 --- a/plugins/modules/appliance_localaccounts_globalpolicy.py +++ b/plugins/modules/appliance_localaccounts_globalpolicy.py @@ -83,7 +83,7 @@ type: int author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -97,7 +97,6 @@ vmware.vmware_rest.appliance_localaccounts_globalpolicy: warn_days: 5 """ - RETURN = r""" # content generated by the update_return_section callback# task: Update the global policy of the local accounts value: @@ -107,6 +106,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": { @@ -223,6 +223,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -276,5 +277,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_localaccounts_globalpolicy_info.py b/plugins/modules/appliance_localaccounts_globalpolicy_info.py index 6ae13879d..487be5d60 100644 --- a/plugins/modules/appliance_localaccounts_globalpolicy_info.py +++ b/plugins/modules/appliance_localaccounts_globalpolicy_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_localaccounts_globalpolicy_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the global policy of the local accounts value: @@ -86,6 +85,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -207,5 +207,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_localaccounts_info.py b/plugins/modules/appliance_localaccounts_info.py index a0ef2687b..5a7196433 100644 --- a/plugins/modules/appliance_localaccounts_info.py +++ b/plugins/modules/appliance_localaccounts_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -77,7 +77,6 @@ vmware.vmware_rest.appliance_localaccounts_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: List the local accounts value: @@ -115,6 +114,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"username": "username"}}, @@ -261,5 +261,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_monitoring_info.py b/plugins/modules/appliance_monitoring_info.py index d554c1b34..9eda89715 100644 --- a/plugins/modules/appliance_monitoring_info.py +++ b/plugins/modules/appliance_monitoring_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -79,7 +79,6 @@ vmware.vmware_rest.appliance_monitoring_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the list of the monitored items value: @@ -911,6 +910,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"stat_id": "stat_id"}}, @@ -1055,5 +1055,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_monitoring_query.py b/plugins/modules/appliance_monitoring_query.py index b9a7aea23..5989ec100 100644 --- a/plugins/modules/appliance_monitoring_query.py +++ b/plugins/modules/appliance_monitoring_query.py @@ -100,7 +100,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -120,7 +120,6 @@ function: AVG register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Query the monitoring backend value: @@ -149,6 +148,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "query": { @@ -276,6 +276,7 @@ def build_url(params): async def entry_point(module, session): + func = globals()["_query"] return await func(module.params, session) @@ -309,5 +310,9 @@ async def _query(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking.py b/plugins/modules/appliance_networking.py index 38e5c6c27..fa0a50c79 100644 --- a/plugins/modules/appliance_networking.py +++ b/plugins/modules/appliance_networking.py @@ -73,7 +73,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -88,7 +88,6 @@ ipv6_enabled: false register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Set network information id: @@ -103,6 +102,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "reset": {"query": {}, "body": {}, "path": {}}, @@ -212,6 +212,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -304,5 +305,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_domains.py b/plugins/modules/appliance_networking_dns_domains.py index accfb894d..dc7b089e5 100644 --- a/plugins/modules/appliance_networking_dns_domains.py +++ b/plugins/modules/appliance_networking_dns_domains.py @@ -75,11 +75,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -97,7 +99,6 @@ state: add register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Add another domain configuration value: @@ -107,6 +108,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "add": {"query": {}, "body": {"domain": "domain"}, "path": {}}, @@ -219,6 +221,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -297,5 +300,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_domains_info.py b/plugins/modules/appliance_networking_dns_domains_info.py index 32305e7cb..e3090b2d2 100644 --- a/plugins/modules/appliance_networking_dns_domains_info.py +++ b/plugins/modules/appliance_networking_dns_domains_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_networking_dns_domains_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get DNS domains configuration value: @@ -83,6 +82,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {}, "body": {}, "path": {}} @@ -203,5 +203,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_hostname.py b/plugins/modules/appliance_networking_dns_hostname.py index 5278d94ea..1dd77cfd6 100644 --- a/plugins/modules/appliance_networking_dns_hostname.py +++ b/plugins/modules/appliance_networking_dns_hostname.py @@ -71,7 +71,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -87,7 +87,6 @@ name: vcenter.test register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Test the hostname configuration value: @@ -101,6 +100,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "test": {"query": {}, "body": {"name": "name"}, "path": {}}, @@ -212,6 +212,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -292,5 +293,9 @@ async def _test(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_hostname_info.py b/plugins/modules/appliance_networking_dns_hostname_info.py index 73d948fbc..0e993edf7 100644 --- a/plugins/modules/appliance_networking_dns_hostname_info.py +++ b/plugins/modules/appliance_networking_dns_hostname_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_networking_dns_hostname_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the hostname configuration value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_servers.py b/plugins/modules/appliance_networking_dns_servers.py index 4bee9ebdb..c72493b3e 100644 --- a/plugins/modules/appliance_networking_dns_servers.py +++ b/plugins/modules/appliance_networking_dns_servers.py @@ -85,11 +85,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -123,7 +125,6 @@ - google.com register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Add another DNS server value: @@ -138,6 +139,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, @@ -252,6 +254,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -393,5 +396,9 @@ async def _test(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_dns_servers_info.py b/plugins/modules/appliance_networking_dns_servers_info.py index 82b50b7f4..475d2a115 100644 --- a/plugins/modules/appliance_networking_dns_servers_info.py +++ b/plugins/modules/appliance_networking_dns_servers_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_networking_dns_servers_info: register: original_DNS_config """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the DNS servers value: @@ -86,6 +85,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -207,5 +207,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_firewall_inbound.py b/plugins/modules/appliance_networking_firewall_inbound.py index b1eb55b16..a13c66ab1 100644 --- a/plugins/modules/appliance_networking_firewall_inbound.py +++ b/plugins/modules/appliance_networking_firewall_inbound.py @@ -15,7 +15,9 @@ one or more incoming IP addresses. This overwrites the existing firewall rules and creates a new rule list. Within the list of traffic rules, rules are processed in order of appearance, from top to bottom. For example, the list of rules can - be as follows: [dropped table ]' + be as follows: AddressPrefixInterface NamePolicy 10.112.0.10*REJECT 10.112.0.10nic0ACCEPT In + the above example, the first rule drops all packets originating from 10.112.0.1 + and' options: rules: description: @@ -92,7 +94,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -117,7 +119,6 @@ policy: ACCEPT register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Ensure the rules parameter is mandatory failed_when_result: @@ -132,6 +133,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"rules": "rules"}, "path": {}} @@ -238,6 +240,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -291,5 +294,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_firewall_inbound_info.py b/plugins/modules/appliance_networking_firewall_inbound_info.py index dbe5616c0..80d45a868 100644 --- a/plugins/modules/appliance_networking_firewall_inbound_info.py +++ b/plugins/modules/appliance_networking_firewall_inbound_info.py @@ -62,7 +62,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -76,7 +76,6 @@ vmware.vmware_rest.appliance_networking_firewall_inbound_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the firewall inbound configuration value: @@ -86,6 +85,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -207,5 +207,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_info.py b/plugins/modules/appliance_networking_info.py index ebf11dd3f..ccba85465 100644 --- a/plugins/modules/appliance_networking_info.py +++ b/plugins/modules/appliance_networking_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_networking_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get network information value: @@ -110,6 +109,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -229,5 +229,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_interfaces_info.py b/plugins/modules/appliance_networking_interfaces_info.py index 9d08ce5b9..f28e826fe 100644 --- a/plugins/modules/appliance_networking_interfaces_info.py +++ b/plugins/modules/appliance_networking_interfaces_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -84,7 +84,6 @@ interface_name: nic0 register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get details about one network interfaces id: @@ -118,6 +117,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"interface_name": "interface_name"}}, @@ -266,5 +266,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_interfaces_ipv4.py b/plugins/modules/appliance_networking_interfaces_ipv4.py index 2f2b96f71..41f184139 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv4.py +++ b/plugins/modules/appliance_networking_interfaces_ipv4.py @@ -105,7 +105,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -127,7 +127,6 @@ - result.value.messages[0].default_message msg == "The interface is unknown." register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Set the IPv4 network information of nic99 (which does not exist) failed_when_result: @@ -142,6 +141,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": { @@ -266,6 +266,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -322,5 +323,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_interfaces_ipv4_info.py b/plugins/modules/appliance_networking_interfaces_ipv4_info.py index 5700b1ac0..3f18631c7 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv4_info.py +++ b/plugins/modules/appliance_networking_interfaces_ipv4_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -80,7 +80,6 @@ interface_name: nic0 register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Collect the IPv4 network information value: @@ -95,6 +94,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"interface_name": "interface_name"}} @@ -220,5 +220,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_interfaces_ipv6.py b/plugins/modules/appliance_networking_interfaces_ipv6.py index fbc73396e..276214473 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv6.py +++ b/plugins/modules/appliance_networking_interfaces_ipv6.py @@ -106,7 +106,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -125,7 +125,6 @@ - result.value.messages[0].default_message msg == "The interface is unknown." register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Set the IPv6 network information of nic99 (which does not exist) failed_when_result: @@ -140,6 +139,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": { @@ -260,6 +260,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -316,5 +317,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_interfaces_ipv6_info.py b/plugins/modules/appliance_networking_interfaces_ipv6_info.py index 858d3541b..b31fb8cb7 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv6_info.py +++ b/plugins/modules/appliance_networking_interfaces_ipv6_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -80,7 +80,6 @@ interface_name: nic0 register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Collect the IPv6 network information value: @@ -99,6 +98,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"interface_name": "interface_name"}} @@ -224,5 +224,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_noproxy.py b/plugins/modules/appliance_networking_noproxy.py index 0c938c1fa..079594e6f 100644 --- a/plugins/modules/appliance_networking_noproxy.py +++ b/plugins/modules/appliance_networking_noproxy.py @@ -77,7 +77,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -99,7 +99,6 @@ servers: [] register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Remove the noproxy entries value: @@ -109,6 +108,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"servers": "servers"}, "path": {}} @@ -215,6 +215,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -268,5 +269,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_noproxy_info.py b/plugins/modules/appliance_networking_noproxy_info.py index 4b779ebfa..37cdc46bd 100644 --- a/plugins/modules/appliance_networking_noproxy_info.py +++ b/plugins/modules/appliance_networking_noproxy_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_networking_noproxy_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Remove the noproxy entries value: @@ -83,6 +82,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_proxy.py b/plugins/modules/appliance_networking_proxy.py index 71bc5abd0..bfeef8a44 100644 --- a/plugins/modules/appliance_networking_proxy.py +++ b/plugins/modules/appliance_networking_proxy.py @@ -127,7 +127,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -151,7 +151,6 @@ state: absent register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Delete the HTTP proxy configuration value: @@ -161,6 +160,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "test": { @@ -294,6 +294,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -394,5 +395,9 @@ async def _test(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_networking_proxy_info.py b/plugins/modules/appliance_networking_proxy_info.py index 81f7d8dfa..9422b42d1 100644 --- a/plugins/modules/appliance_networking_proxy_info.py +++ b/plugins/modules/appliance_networking_proxy_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -77,7 +77,6 @@ vmware.vmware_rest.appliance_networking_proxy_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the HTTP proxy configuration value: @@ -99,6 +98,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"protocol": "protocol"}}, @@ -247,5 +247,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_ntp.py b/plugins/modules/appliance_ntp.py index 5db6acbfa..9b7ca9fa2 100644 --- a/plugins/modules/appliance_ntp.py +++ b/plugins/modules/appliance_ntp.py @@ -76,11 +76,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -98,7 +100,6 @@ - time.google.com register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Test the NTP configuration value: @@ -114,6 +115,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, @@ -223,6 +225,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -301,5 +304,9 @@ async def _test(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_ntp_info.py b/plugins/modules/appliance_ntp_info.py index c3821cc40..63344a86b 100644 --- a/plugins/modules/appliance_ntp_info.py +++ b/plugins/modules/appliance_ntp_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -80,7 +80,6 @@ vmware.vmware_rest.appliance_ntp_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the NTP configuration value: @@ -91,6 +90,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -210,5 +210,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_services.py b/plugins/modules/appliance_services.py index f277fd1eb..618770f42 100644 --- a/plugins/modules/appliance_services.py +++ b/plugins/modules/appliance_services.py @@ -74,7 +74,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,7 +102,6 @@ state: restart register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Restart the ntpd service value: @@ -112,11 +111,12 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, - "start": {"query": {}, "body": {}, "path": {"service": "service"}}, "stop": {"query": {}, "body": {}, "path": {"service": "service"}}, + "start": {"query": {}, "body": {}, "path": {"service": "service"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -222,6 +222,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -319,5 +320,9 @@ async def _stop(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_services_info.py b/plugins/modules/appliance_services_info.py index e4fdd345e..f2bfbf42c 100644 --- a/plugins/modules/appliance_services_info.py +++ b/plugins/modules/appliance_services_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -80,7 +80,6 @@ service: ntpd register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information about ntpd id: @@ -97,6 +96,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"service": "service"}}, @@ -241,5 +241,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_shutdown.py b/plugins/modules/appliance_shutdown.py index 2280d85fe..e69d28417 100644 --- a/plugins/modules/appliance_shutdown.py +++ b/plugins/modules/appliance_shutdown.py @@ -76,7 +76,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -110,7 +110,6 @@ state: cancel register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Abort the reboot value: @@ -120,14 +119,15 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "reboot": {"query": {}, "body": {"delay": "delay", "reason": "reason"}, "path": {}}, "poweroff": { "query": {}, "body": {"delay": "delay", "reason": "reason"}, "path": {}, }, - "reboot": {"query": {}, "body": {"delay": "delay", "reason": "reason"}, "path": {}}, "cancel": {"query": {}, "body": {}, "path": {}}, } # pylint: disable=line-too-long @@ -235,6 +235,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -328,5 +329,9 @@ async def _reboot(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_shutdown_info.py b/plugins/modules/appliance_shutdown_info.py index 7f85e9396..1e485de80 100644 --- a/plugins/modules/appliance_shutdown_info.py +++ b/plugins/modules/appliance_shutdown_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -77,7 +77,6 @@ vmware.vmware_rest.appliance_shutdown_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the ongoing shutdown value: @@ -90,6 +89,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -209,5 +209,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_globalfips.py b/plugins/modules/appliance_system_globalfips.py index 044f9c25f..c8edb87bf 100644 --- a/plugins/modules/appliance_system_globalfips.py +++ b/plugins/modules/appliance_system_globalfips.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -81,10 +81,10 @@ EXAMPLES = r""" """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": {"query": {}, "body": {"enabled": "enabled"}, "path": {}} @@ -192,6 +192,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -261,5 +262,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_globalfips_info.py b/plugins/modules/appliance_system_globalfips_info.py index e1d003553..f52d5db96 100644 --- a/plugins/modules/appliance_system_globalfips_info.py +++ b/plugins/modules/appliance_system_globalfips_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -70,10 +70,10 @@ EXAMPLES = r""" """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -195,5 +195,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_storage.py b/plugins/modules/appliance_system_storage.py index 4bfdc3734..7f8170f60 100644 --- a/plugins/modules/appliance_system_storage.py +++ b/plugins/modules/appliance_system_storage.py @@ -66,7 +66,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -86,7 +86,6 @@ state: resize register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Resize the first partition and return the state of the partition before and after the operation value: @@ -100,10 +99,11 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "resize": {"query": {}, "body": {}, "path": {}}, "resize_ex": {"query": {}, "body": {}, "path": {}}, + "resize": {"query": {}, "body": {}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -210,6 +210,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -280,5 +281,9 @@ async def _resize_ex(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_storage_info.py b/plugins/modules/appliance_system_storage_info.py index 9133ff372..5e36f5ee3 100644 --- a/plugins/modules/appliance_system_storage_info.py +++ b/plugins/modules/appliance_system_storage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_system_storage_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the appliance storage information value: @@ -83,6 +82,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {}, "body": {}, "path": {}} @@ -201,5 +201,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_time_info.py b/plugins/modules/appliance_system_time_info.py index 75511d136..cd5ce9009 100644 --- a/plugins/modules/appliance_system_time_info.py +++ b/plugins/modules/appliance_system_time_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_system_time_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the current time value: @@ -87,6 +86,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -206,5 +206,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_time_timezone.py b/plugins/modules/appliance_system_time_timezone.py index 361cc68c8..f02ffe091 100644 --- a/plugins/modules/appliance_system_time_timezone.py +++ b/plugins/modules/appliance_system_time_timezone.py @@ -70,11 +70,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -85,7 +87,6 @@ name: UTC register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Use the UTC timezone value: @@ -95,6 +96,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"name": "name"}, "path": {}} @@ -201,6 +203,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -254,5 +257,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_time_timezone_info.py b/plugins/modules/appliance_system_time_timezone_info.py index 59da771f7..1c464e3c7 100644 --- a/plugins/modules/appliance_system_time_timezone_info.py +++ b/plugins/modules/appliance_system_time_timezone_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_system_time_timezone_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the timezone configuration value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_system_version_info.py b/plugins/modules/appliance_system_version_info.py index 5646884ff..559917b81 100644 --- a/plugins/modules/appliance_system_version_info.py +++ b/plugins/modules/appliance_system_version_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_system_version_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the VCSA version value: @@ -90,6 +89,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -211,5 +211,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_timesync.py b/plugins/modules/appliance_timesync.py index b3b04ff80..45565c4b0 100644 --- a/plugins/modules/appliance_timesync.py +++ b/plugins/modules/appliance_timesync.py @@ -75,11 +75,13 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 - aiohttp +seealso: +- module: vmware.vmware.vcsa_settings notes: - Tested on vSphere 7.0.3 """ @@ -89,7 +91,6 @@ vmware.vmware_rest.appliance_timesync: mode: NTP """ - RETURN = r""" # content generated by the update_return_section callback# task: Ensure we use NTP value: @@ -99,6 +100,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"mode": "mode"}, "path": {}} @@ -207,6 +209,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -260,5 +263,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_timesync_info.py b/plugins/modules/appliance_timesync_info.py index 28e7f2445..920093b85 100644 --- a/plugins/modules/appliance_timesync_info.py +++ b/plugins/modules/appliance_timesync_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_timesync_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information regarding the clock synchronization value: @@ -83,6 +82,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -202,5 +202,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_update_info.py b/plugins/modules/appliance_update_info.py index 109b76db0..2af524ec9 100644 --- a/plugins/modules/appliance_update_info.py +++ b/plugins/modules/appliance_update_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.appliance_update_info: register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Check if the system is up to date value: @@ -85,6 +84,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -204,5 +204,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_vmon_service.py b/plugins/modules/appliance_vmon_service.py index 932b8a96f..4bb1e06c6 100644 --- a/plugins/modules/appliance_vmon_service.py +++ b/plugins/modules/appliance_vmon_service.py @@ -84,7 +84,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -100,7 +100,6 @@ startup_type: AUTOMATIC register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Adjust vpxd configuration id: @@ -115,17 +114,18 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "list_details": {"query": {}, "body": {}, "path": {}}, "start": {"query": {}, "body": {}, "path": {"service": "service"}}, + "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, "stop": {"query": {}, "body": {}, "path": {"service": "service"}}, + "list_details": {"query": {}, "body": {}, "path": {}}, "update": { "query": {}, "body": {"startup_type": "spec/startup_type"}, "path": {"service": "service"}, }, - "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -237,6 +237,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -408,5 +409,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/appliance_vmon_service_info.py b/plugins/modules/appliance_vmon_service_info.py index cc73aecf1..dbdbd1836 100644 --- a/plugins/modules/appliance_vmon_service_info.py +++ b/plugins/modules/appliance_vmon_service_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -80,7 +80,6 @@ service: vpxd register: result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information about a VMON service value: @@ -469,6 +468,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"service": "service"}} @@ -592,5 +592,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_configuration.py b/plugins/modules/content_configuration.py index d32e05dd5..23a416fec 100644 --- a/plugins/modules/content_configuration.py +++ b/plugins/modules/content_configuration.py @@ -10,24 +10,32 @@ DOCUMENTATION = r""" module: content_configuration short_description: Updates the configuration -description: Updates the configuration. The update is incremental. Any {@term field} - in the {@link ConfigurationModel} {@term structure} that is {@term unset} will - not be modified. Note that this update {@term operation} doesn't guarantee an - atomic change of all the properties. In the case of a system crash or failure, - some of the properties could be left unchanged while others may be updated. +description: Updates the configuration. The update is incremental. Any field in the + ConfigurationModel structure that is unset will not be modified. Note that this + update operation doesn't guarantee an atomic change of all the properties. In + the case of a system crash or failure, some of the properties could be left unchanged + while others may be updated. options: automatic_sync_enabled: description: - - 'Whether automatic synchronization is enabled. When automatic synchronization - is enabled, the Content Library Service will automatically synchronize - all subscribed libraries on a daily basis. Subscribed libraries with the - C(subscription_info.automaticSyncEnabled) flag turned on will be synchronized - every hour between {@link #automaticSyncStartHour} and {@link #automaticSyncStopHour}.' + - 'Whether automatic synchronization is enabled. ' + - ' When automatic synchronization is enabled, the Content Library Service + will automatically synchronize all subscribed libraries on a daily basis. + Subscribed libraries with the SubscriptionInfo.automatic-sync-enabled + flag turned on will be synchronized every hour between ConfigurationModel.automatic-sync-start-hour + and ConfigurationModel.automatic-sync-stop-hour.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. type: bool automatic_sync_start_hour: description: - The hour at which the automatic synchronization will start. This value is between 0 (midnight) and 23 inclusive. + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. type: int automatic_sync_stop_hour: description: @@ -35,13 +43,21 @@ operation will continue to run, however no new synchronization operations will be triggered after the stop hour. This value is between 0 (midnight) and 23 inclusive. + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. type: int maximum_concurrent_item_syncs: description: - - The maximum allowed number of library items to synchronize concurrently + - 'The maximum allowed number of library items to synchronize concurrently from remote libraries. This must be a positive number. The service may not be able to guarantee the requested concurrency if there is no available - capacity. This setting is global across all subscribed libraries. + capacity. ' + - ' This setting is global across all subscribed libraries.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. type: int session_timeout: description: @@ -96,7 +112,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -110,7 +126,6 @@ vmware.vmware_rest.content_configuration: automatic_sync_enabled: true """ - RETURN = r""" # content generated by the update_return_section callback# task: Turn on the autmatic syncrhronization id: @@ -129,6 +144,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": { @@ -246,6 +262,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -313,5 +330,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_configuration_info.py b/plugins/modules/content_configuration_info.py index 391db4c81..d9fb7e0ef 100644 --- a/plugins/modules/content_configuration_info.py +++ b/plugins/modules/content_configuration_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -73,7 +73,6 @@ vmware.vmware_rest.content_configuration_info: register: current_content_configuration """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the vSphere content syncrhronization configuration value: @@ -87,6 +86,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {}} @@ -206,5 +206,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_library_info.py b/plugins/modules/content_library_info.py new file mode 100644 index 000000000..bb57cfa27 --- /dev/null +++ b/plugins/modules/content_library_info.py @@ -0,0 +1,232 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Copyright: (c) 2021, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +# template: header.j2 +# This module is autogenerated using the ansible.content_builder. +# See: https://github.com/ansible-community/ansible.content_builder + + +DOCUMENTATION = r""" +module: content_library_info +short_description: Returns a given LibraryModel. +description: Returns a given LibraryModel. +options: + library_id: + description: + - Identifier of the library to return. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['get']) + type: str + session_timeout: + description: + - 'Timeout settings for client session. ' + - 'The maximal number of seconds for the whole operation including connection + establishment, request sending and response. ' + - The default value is 300s. + type: float + version_added: 2.1.0 + vcenter_hostname: + description: + - The hostname or IP address of the vSphere vCenter + - If the value is not specified in the task, the value of environment variable + C(VMWARE_HOST) will be used instead. + required: true + type: str + vcenter_password: + description: + - The vSphere vCenter password + - If the value is not specified in the task, the value of environment variable + C(VMWARE_PASSWORD) will be used instead. + required: true + type: str + vcenter_rest_log_file: + description: + - 'You can use this optional parameter to set the location of a log file. ' + - 'This file will be used to record the HTTP REST interaction. ' + - 'The file will be stored on the host that run the module. ' + - 'If the value is not specified in the task, the value of ' + - environment variable C(VMWARE_REST_LOG_FILE) will be used instead. + type: str + vcenter_username: + description: + - The vSphere vCenter username + - If the value is not specified in the task, the value of environment variable + C(VMWARE_USER) will be used instead. + required: true + type: str + vcenter_validate_certs: + default: true + description: + - Allows connection when SSL certificates are not valid. Set to C(false) when + certificates are not trusted. + - If the value is not specified in the task, the value of environment variable + C(VMWARE_VALIDATE_CERTS) will be used instead. + type: bool +author: +- Ansible Cloud Team (@ansible-collections) +version_added: 1.0.0 +requirements: +- vSphere 7.0.3 or greater +- python >= 3.6 +- aiohttp +notes: +- Tested on vSphere 7.0.3 +""" + +EXAMPLES = r""" +""" +RETURN = r""" +""" + + +# This structure describes the format of the data expected by the end-points +PAYLOAD_FORMAT = { + "get": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "list": {"query": {}, "body": {}, "path": {}}, +} # pylint: disable=line-too-long + +from ansible.module_utils.basic import env_fallback + +try: + from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import ( + EmbeddedModuleFailure, + ) + from ansible_collections.cloud.common.plugins.module_utils.turbo.module import ( + AnsibleTurboModule as AnsibleModule, + ) + + AnsibleModule.collection_name = "vmware.vmware_rest" +except ImportError: + from ansible.module_utils.basic import AnsibleModule +from ansible_collections.vmware.vmware_rest.plugins.module_utils.vmware_rest import ( + build_full_device_list, + exists, + gen_args, + open_session, + session_timeout, + update_changed_flag, +) + + +def prepare_argument_spec(): + argument_spec = { + "vcenter_hostname": dict( + type="str", + required=True, + fallback=(env_fallback, ["VMWARE_HOST"]), + ), + "vcenter_username": dict( + type="str", + required=True, + fallback=(env_fallback, ["VMWARE_USER"]), + ), + "vcenter_password": dict( + type="str", + required=True, + no_log=True, + fallback=(env_fallback, ["VMWARE_PASSWORD"]), + ), + "vcenter_validate_certs": dict( + type="bool", + required=False, + default=True, + fallback=(env_fallback, ["VMWARE_VALIDATE_CERTS"]), + ), + "vcenter_rest_log_file": dict( + type="str", + required=False, + fallback=(env_fallback, ["VMWARE_REST_LOG_FILE"]), + ), + "session_timeout": dict( + type="float", + required=False, + fallback=(env_fallback, ["VMWARE_SESSION_TIMEOUT"]), + ), + } + + argument_spec["library_id"] = {"type": "str"} + + return argument_spec + + +async def main(): + required_if = list([]) + + module_args = prepare_argument_spec() + module = AnsibleModule( + argument_spec=module_args, required_if=required_if, supports_check_mode=True + ) + if not module.params["vcenter_hostname"]: + module.fail_json("vcenter_hostname cannot be empty") + if not module.params["vcenter_username"]: + module.fail_json("vcenter_username cannot be empty") + if not module.params["vcenter_password"]: + module.fail_json("vcenter_password cannot be empty") + try: + session = await open_session( + vcenter_hostname=module.params["vcenter_hostname"], + vcenter_username=module.params["vcenter_username"], + vcenter_password=module.params["vcenter_password"], + validate_certs=module.params["vcenter_validate_certs"], + log_file=module.params["vcenter_rest_log_file"], + ) + except EmbeddedModuleFailure as err: + module.fail_json(err.get_message()) + result = await entry_point(module, session) + module.exit_json(**result) + + +# template: info_list_and_get_module.j2 +def build_url(params): + import yarl + + if params.get("library_id"): + _in_query_parameters = PAYLOAD_FORMAT["get"]["query"].keys() + return yarl.URL( + ("https://{vcenter_hostname}" "/api/content/library/").format(**params) + + params["library_id"] + + gen_args(params, _in_query_parameters), + encoded=True, + ) + _in_query_parameters = PAYLOAD_FORMAT["list"]["query"].keys() + return yarl.URL( + ("https://{vcenter_hostname}" "/api/content/library").format(**params) + + gen_args(params, _in_query_parameters), + encoded=True, + ) + + +async def entry_point(module, session): + url = build_url(module.params) + async with session.get(url, **session_timeout(module.params)) as resp: + _json = await resp.json() + + if "value" not in _json: # 7.0.2+ + _json = {"value": _json} + + if module.params.get("library_id"): + _json["id"] = module.params.get("library_id") + elif module.params.get("label"): # TODO extend the list of filter + _json = await exists(module.params, session, str(url)) + elif ( + isinstance(_json["value"], list) + and len(_json["value"]) > 0 + and isinstance(_json["value"][0], str) + ): + # this is a list of id, we fetch the details + full_device_list = await build_full_device_list(session, str(url), _json) + _json = {"value": [i["value"] for i in full_device_list]} + + return await update_changed_flag(_json, resp.status, "get") + + +if __name__ == "__main__": + import asyncio + + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_library_item_info.py b/plugins/modules/content_library_item_info.py index d4556bba8..948ede79b 100644 --- a/plugins/modules/content_library_item_info.py +++ b/plugins/modules/content_library_item_info.py @@ -9,17 +9,20 @@ DOCUMENTATION = r""" module: content_library_item_info -short_description: Returns the {@link ItemModel} with the given identifier. -description: Returns the {@link ItemModel} with the given identifier. +short_description: Returns the ItemModel with the given identifier. +description: Returns the ItemModel with the given identifier. options: library_id: description: - - Identifier of the library whose items should be returned. Required with - I(state=['list']) + - Identifier of the library whose items should be returned. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['list']) type: str library_item_id: description: - - Identifier of the library item to return. Required with I(state=['get']) + - Identifier of the library item to return. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_item_info). + Required with I(state=['get']) type: str session_timeout: description: @@ -68,7 +71,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -150,7 +153,6 @@ state: present register: nfs_lib """ - RETURN = r""" # content generated by the update_return_section callback# task: Ensure the OVF is here value: @@ -175,6 +177,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"library_item_id": "library_item_id"}}, @@ -287,7 +290,9 @@ def build_url(params): ) _in_query_parameters = PAYLOAD_FORMAT["list"]["query"].keys() return yarl.URL( - ("https://{vcenter_hostname}" "/api/content/library/item").format(**params) + ("https://{vcenter_hostname}" "/api/content/library/item?library_id").format( + **params + ) + gen_args(params, _in_query_parameters), encoded=True, ) @@ -320,5 +325,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_library_subscriptions_info.py b/plugins/modules/content_library_subscriptions_info.py new file mode 100644 index 000000000..e9e335268 --- /dev/null +++ b/plugins/modules/content_library_subscriptions_info.py @@ -0,0 +1,251 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Copyright: (c) 2021, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +# template: header.j2 +# This module is autogenerated using the ansible.content_builder. +# See: https://github.com/ansible-community/ansible.content_builder + + +DOCUMENTATION = r""" +module: content_library_subscriptions_info +short_description: Returns information about the specified subscription of the published + library. +description: Returns information about the specified subscription of the published + library. +options: + library: + description: + - Identifier of the published library. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + This parameter is mandatory. + required: true + type: str + session_timeout: + description: + - 'Timeout settings for client session. ' + - 'The maximal number of seconds for the whole operation including connection + establishment, request sending and response. ' + - The default value is 300s. + type: float + version_added: 2.1.0 + subscription: + description: + - Identifier of the subscription. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_subscriptions_info). + Required with I(state=['get']) + type: str + vcenter_hostname: + description: + - The hostname or IP address of the vSphere vCenter + - If the value is not specified in the task, the value of environment variable + C(VMWARE_HOST) will be used instead. + required: true + type: str + vcenter_password: + description: + - The vSphere vCenter password + - If the value is not specified in the task, the value of environment variable + C(VMWARE_PASSWORD) will be used instead. + required: true + type: str + vcenter_rest_log_file: + description: + - 'You can use this optional parameter to set the location of a log file. ' + - 'This file will be used to record the HTTP REST interaction. ' + - 'The file will be stored on the host that run the module. ' + - 'If the value is not specified in the task, the value of ' + - environment variable C(VMWARE_REST_LOG_FILE) will be used instead. + type: str + vcenter_username: + description: + - The vSphere vCenter username + - If the value is not specified in the task, the value of environment variable + C(VMWARE_USER) will be used instead. + required: true + type: str + vcenter_validate_certs: + default: true + description: + - Allows connection when SSL certificates are not valid. Set to C(false) when + certificates are not trusted. + - If the value is not specified in the task, the value of environment variable + C(VMWARE_VALIDATE_CERTS) will be used instead. + type: bool +author: +- Ansible Cloud Team (@ansible-collections) +version_added: 1.0.0 +requirements: +- vSphere 7.0.3 or greater +- python >= 3.6 +- aiohttp +notes: +- Tested on vSphere 7.0.3 +""" + +EXAMPLES = r""" +""" +RETURN = r""" +""" + + +# This structure describes the format of the data expected by the end-points +PAYLOAD_FORMAT = { + "get": { + "query": {}, + "body": {}, + "path": {"library": "library", "subscription": "subscription"}, + }, + "list": {"query": {}, "body": {}, "path": {"library": "library"}}, +} # pylint: disable=line-too-long + +from ansible.module_utils.basic import env_fallback + +try: + from ansible_collections.cloud.common.plugins.module_utils.turbo.exceptions import ( + EmbeddedModuleFailure, + ) + from ansible_collections.cloud.common.plugins.module_utils.turbo.module import ( + AnsibleTurboModule as AnsibleModule, + ) + + AnsibleModule.collection_name = "vmware.vmware_rest" +except ImportError: + from ansible.module_utils.basic import AnsibleModule +from ansible_collections.vmware.vmware_rest.plugins.module_utils.vmware_rest import ( + build_full_device_list, + exists, + gen_args, + open_session, + session_timeout, + update_changed_flag, +) + + +def prepare_argument_spec(): + argument_spec = { + "vcenter_hostname": dict( + type="str", + required=True, + fallback=(env_fallback, ["VMWARE_HOST"]), + ), + "vcenter_username": dict( + type="str", + required=True, + fallback=(env_fallback, ["VMWARE_USER"]), + ), + "vcenter_password": dict( + type="str", + required=True, + no_log=True, + fallback=(env_fallback, ["VMWARE_PASSWORD"]), + ), + "vcenter_validate_certs": dict( + type="bool", + required=False, + default=True, + fallback=(env_fallback, ["VMWARE_VALIDATE_CERTS"]), + ), + "vcenter_rest_log_file": dict( + type="str", + required=False, + fallback=(env_fallback, ["VMWARE_REST_LOG_FILE"]), + ), + "session_timeout": dict( + type="float", + required=False, + fallback=(env_fallback, ["VMWARE_SESSION_TIMEOUT"]), + ), + } + + argument_spec["library"] = {"required": True, "type": "str"} + argument_spec["subscription"] = {"type": "str"} + + return argument_spec + + +async def main(): + required_if = list([]) + + module_args = prepare_argument_spec() + module = AnsibleModule( + argument_spec=module_args, required_if=required_if, supports_check_mode=True + ) + if not module.params["vcenter_hostname"]: + module.fail_json("vcenter_hostname cannot be empty") + if not module.params["vcenter_username"]: + module.fail_json("vcenter_username cannot be empty") + if not module.params["vcenter_password"]: + module.fail_json("vcenter_password cannot be empty") + try: + session = await open_session( + vcenter_hostname=module.params["vcenter_hostname"], + vcenter_username=module.params["vcenter_username"], + vcenter_password=module.params["vcenter_password"], + validate_certs=module.params["vcenter_validate_certs"], + log_file=module.params["vcenter_rest_log_file"], + ) + except EmbeddedModuleFailure as err: + module.fail_json(err.get_message()) + result = await entry_point(module, session) + module.exit_json(**result) + + +# template: info_list_and_get_module.j2 +def build_url(params): + import yarl + + if params.get("subscription"): + _in_query_parameters = PAYLOAD_FORMAT["get"]["query"].keys() + return yarl.URL( + ( + "https://{vcenter_hostname}" + "/api/content/library/{library}/subscriptions/" + ).format(**params) + + params["subscription"] + + gen_args(params, _in_query_parameters), + encoded=True, + ) + _in_query_parameters = PAYLOAD_FORMAT["list"]["query"].keys() + return yarl.URL( + ( + "https://{vcenter_hostname}" "/api/content/library/{library}/subscriptions" + ).format(**params) + + gen_args(params, _in_query_parameters), + encoded=True, + ) + + +async def entry_point(module, session): + url = build_url(module.params) + async with session.get(url, **session_timeout(module.params)) as resp: + _json = await resp.json() + + if "value" not in _json: # 7.0.2+ + _json = {"value": _json} + + if module.params.get("subscription"): + _json["id"] = module.params.get("subscription") + elif module.params.get("label"): # TODO extend the list of filter + _json = await exists(module.params, session, str(url)) + elif ( + isinstance(_json["value"], list) + and len(_json["value"]) > 0 + and isinstance(_json["value"][0], str) + ): + # this is a list of id, we fetch the details + full_device_list = await build_full_device_list(session, str(url), _json) + _json = {"value": [i["value"] for i in full_device_list]} + + return await update_changed_flag(_json, resp.status, "get") + + +if __name__ == "__main__": + import asyncio + + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_locallibrary.py b/plugins/modules/content_locallibrary.py index 4f856b580..643b81b89 100644 --- a/plugins/modules/content_locallibrary.py +++ b/plugins/modules/content_locallibrary.py @@ -15,107 +15,195 @@ client_token: description: - 'A unique token generated on the client for each creation request. The token - should be a universally unique identifier (UUID), for example: C(b8a2a2e3-2314-43cd-a871-6ede0f429751). + should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.' + - If not specified creation is not idempotent. type: str creation_time: description: - The date and time when this library was created. + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. type: str description: description: - A human-readable description for this library. + - This field is optional for the create operation. Leaving it unset during + creation will result in an empty string value. It will always be present + in the result of a get or list operation. It is optional for the update + operation. Leaving it unset during update indicates that the description + should be left unchanged. type: str id: description: - - An identifier which uniquely identifies this C(library_model). + - An identifier which uniquely identifies this LibraryModel. + - This field is not used for the create operation. It will not be present + in the result of the get or list operations. It is not used for the update + operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' type: str last_modified_time: description: - - The date and time when this library was last updated. This field is updated - automatically when the library properties are changed. This field is not - affected by adding, removing, or modifying a library item or its content - within the library. Tagging the library or syncing the subscribed library - does not alter this field. + - 'The date and time when this library was last updated. ' + - ' This field is updated automatically when the library properties are changed. + This field is not affected by adding, removing, or modifying a library + item or its content within the library. Tagging the library or syncing + the subscribed library does not alter this field.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. type: str last_sync_time: description: - - The date and time when this library was last synchronized. This field applies - only to subscribed libraries. It is updated every time a synchronization - is triggered on the library. The value is not set for a local library. + - 'The date and time when this library was last synchronized. ' + - ' This field applies only to subscribed libraries. It is updated every time + a synchronization is triggered on the library. The value is unset for + a local library.' + - '' + - This field is not used for the create operation. It is optional in the result + of the get or list operations. It is not used for the update operation. type: str library_id: description: - - Identifier of the local library to delete. Required with I(state=['absent', - 'present', 'publish']) + - Identifier of the local library to delete. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['absent', 'present', 'publish']) type: str name: description: - - The name of the library. A Library is identified by a human-readable name. - Library names cannot be undefined or an empty string. Names do not have - to be unique. + - 'The name of the library. ' + - ' A Library is identified by a human-readable name. Library names cannot + be undefined or an empty string. Names do not have to be unique.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. type: str optimization_info: description: - Defines various optimizations and optimization parameters applied to this library. + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. - 'Valid attributes are:' - - ' - C(optimize_remote_publishing) (bool): If set to C(True) then library - would be optimized for remote publishing. Turn it on if remote publishing - is dominant use case for this library. Remote publishing means here that - publisher and subscribers are not the part of the same C(vcenter) SSO - domain. Any optimizations could be done as result of turning on this optimization + - ' - C(optimize_remote_publishing) (bool): If set to true then library would + be optimized for remote publishing. ' + - ' Turn it on if remote publishing is dominant use case for this library. + Remote publishing means here that publisher and subscribers are not the + part of the same Vcenter SSO domain. ' + - '' + - ' Any optimizations could be done as result of turning on this optimization during library creation. For example, library content could be stored in different format but optimizations are not limited to just storage - format. Note, that value of this toggle could be set only during creation - of the library and you would need to migrate your library in case you - need to change this value (optimize the library for different use case). - ([''present''])' + format. ' + - '' + - ' Note, that value of this toggle could be set only during creation of the + library and you would need to migrate your library in case you need to + change this value (optimize the library for different use case).' + - '' + - This field is optional for the create operation. If not specified for the + create, the default is for the library to not be optmized for specific + use case. It is not used for the update operation. (['present']) type: dict publish_info: description: - - Defines how this library is published so that it can be subscribed to by - a remote subscribed library. The C(publish_info) defines where and how - the metadata for this local library is accessible. A local library is - only published publically if C(publish_info.published) is C(True). + - 'Defines how this library is published so that it can be subscribed to by + a remote subscribed library. ' + - ' The PublishInfo defines where and how the metadata for this local library + is accessible. A local library is only published publically if PublishInfo.published + is true.' + - '' + - This field is optional for the create and update operations. If not specified + during creation, the default is for the library to not be published. If + not specified during update, the field is left unchanged. - 'Valid attributes are:' - - ' - C(authentication_method) (str): The C(authentication_method) indicates - how a subscribed library should authenticate to the published library - endpoint. ([''present''])' + - ' - C(authentication_method) (str): This option indicates how a subscribed + library should authenticate to the published library endpoint. ([''present''])' - ' - Accepted values:' - ' - BASIC' - ' - NONE' - - ' - C(published) (bool): Whether the local library is published. ([''present''])' + - ' - C(published) (bool): Whether the local library is published.' + - This field is required for the LocalLibrary.create operation. It is optional + for the LocalLibrary.update operation, and if unset the value will not + be changed. When the existing authentication method is BASIC and the local + library is published, the PublishInfo.current-password field is required + before turning off publishing. This field will always be present in the + results of the LocalLibrary.get operation. (['present']) - ' - C(publish_url) (str): The URL to which the library metadata is published - by the Content Library Service. This value can be used to set the C(subscription_info.subscriptionurl) - property when creating a subscribed library. ([''present''])' - - ' - C(user_name) (str): The username to require for authentication. ([''present''])' - - ' - C(password) (str): The new password to require for authentication. ([''present''])' + by the Content Library Service. ' + - ' This value can be used to set the SubscriptionInfo.subscription-url property + when creating a subscribed library.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. (['present']) + - ' - C(user_name) (str): The username to require for authentication.' + - This field is optional for the LocalLibrary.create and LocalLibrary.update + operations. When the authentication method is NONE, the username can be + left unset. When the authentication method is BASIC, the username is ignored + in the current release. It defaults to "vcsp". It is preferable to leave + this unset. If specified, it must be set to "vcsp". (['present']) + - ' - C(password) (str): The new password to require for authentication.' + - This field is optional for the LocalLibrary.create operation. When the authentication + method is NONE, the password can be left unset. When the authentication + method is BASIC, the password should be a non-empty string. This field + is optional for the LocalLibrary.update operation. Leaving it unset during + update indicates that the password is not changed. When the password is + changed, the PublishInfo.current-password field is required. This field + is not used for the LocalLibrary.get operation. (['present']) - ' - C(current_password) (str): The current password to verify. This field - is available starting in vSphere 6.7. ([''present''])' + is available starting in vSphere 6.7.' + - This field is unused for the LocalLibrary.create operation. This field is + optional for the LocalLibrary.update operation. When the existing authentication + method is NONE, the current password can be left unset. When the existing + authentication method is BASIC, the current password is verified before + applying the new PublishInfo.password, turning off authentication, or + unpublishing the library. This field is not used for the LocalLibrary.get + operation. (['present']) - ' - C(persist_json_enabled) (bool): Whether library and library item metadata are persisted in the storage backing as JSON files. This flag only applies - if the local library is published. Enabling JSON persistence allows you - to synchronize a subscribed library manually instead of over HTTP. You - copy the local library content and metadata to another storage backing - manually and then create a subscribed library referencing the location - of the library JSON file in the C(subscription_info.subscriptionurl). + if the local library is published. ' + - ' Enabling JSON persistence allows you to synchronize a subscribed library + manually instead of over HTTP. You copy the local library content and + metadata to another storage backing manually and then create a subscribed + library referencing the location of the library JSON file in the SubscriptionInfo.subscription-url. When the subscribed library''s storage backing matches the subscription - URL, files do not need to be copied to the subscribed library. For a library - backed by a datastore, the library JSON file will be stored at the path - contentlib-{library_id}/lib.json on the datastore. For a library backed - by a remote file system, the library JSON file will be stored at {library_id}/lib.json - in the remote file system path. ([''present''])' + URL, files do not need to be copied to the subscribed library. ' + - '' + - ' For a library backed by a datastore, the library JSON file will be stored + at the path contentlib-{library_id}/lib.json on the datastore. ' + - '' + - ' For a library backed by a remote file system, the library JSON file will + be stored at {library_id}/lib.json in the remote file system path.' + - '' + - This field is optional for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. (['present']) type: dict security_policy_id: description: - - 'Represents the security policy applied to this library. Setting the field - will make the library secure. This field is ignored in C(update)operation - if {@link #unsetSecurityPolicyId} is set to C(True).' + - 'Represents the security policy applied to this library. ' + - ' Setting the field will make the library secure. This field is ignored + in update operation if LibraryModel.unset-security-policy-id is set to + true.' + - '' + - This field is optional for the create and update operations. If not set + in create operation, the library will be insecure. If not specified in + update operation, the field is left unchanged. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' type: str server_guid: description: - The unique identifier of the vCenter server where the library exists. + - This field is optional for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_cluster_info). ' type: str session_timeout: description: @@ -135,50 +223,78 @@ type: str storage_backings: description: - - The list of default storage backings which are available for this library. - A storage backing defines a default storage location which can be used + - 'The list of default storage backings which are available for this library. ' + - ' A StorageBacking defines a default storage location which can be used to store files for library items in this library. Some library items, for instance, virtual machine template items, support files that may be distributed across various storage backings. One or more item files may - or may not be located on the default storage backing. Multiple default - storage locations are not currently supported but may become supported - in future releases. + or may not be located on the default storage backing. ' + - '' + - ' Multiple default storage locations are not currently supported but may + become supported in future releases.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is not used for + the update operation. - 'Valid attributes are:' - - ' - C(type) (str): The C(type) specifies the type of the storage backing. + - ' - C(type) (str): This option specifies the type of the StorageBacking. ([''present''])' - ' - Accepted values:' - ' - DATASTORE' - ' - OTHER' - ' - C(datastore_id) (str): Identifier of the datastore used to store the - content in the library. ([''present''])' + content in the library.' + - This field is optional and it is only relevant when the value of StorageBacking.type + is DATASTORE. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_datastore_info). + (['present']) - ' - C(storage_uri) (str): URI identifying the location used to store the - content in the library. The following URI formats are supported: vSphere - 6.5
  • nfs://server/path?version=4 (for vCenter Server Appliance - only) - Specifies an NFS Version 4 server.
  • nfs://server/path - (for vCenter Server Appliance only) - Specifies an NFS Version 3 server. - The nfs://server:/path format is also supported.
  • smb://server/path - - Specifies an SMB server or Windows share.
vSphere 6.0 Update - 1
  • nfs://server:/path (for vCenter Server Appliance only)
  • -
  • file://unc-server/path (for vCenter Server for Windows only)
  • -
  • file:///mount/point (for vCenter Server Appliance only) - Local file + content in the library. ' + - ' The following URI formats are supported: ' + - '' + - ' vSphere 6.5 ' + - '' + - ' - nfs://server/path?version=4 (for vCenter Server Appliance only) - + Specifies an NFS Version 4 server.' + - ' - nfs://server/path (for vCenter Server Appliance only) - Specifies + an NFS Version 3 server. The nfs://server:/path format is also supported.' + - ' - smb://server/path - Specifies an SMB server or Windows share.' + - ' ' + - ' vSphere 6.0 Update 1 ' + - '' + - ' - nfs://server:/path (for vCenter Server Appliance only)' + - ' - file://unc-server/path (for vCenter Server for Windows only)' + - ' - file:///mount/point (for vCenter Server Appliance only) - Local file URIs are supported only when the path is a local mount point for an NFS file system. Use of file URIs is strongly discouraged. Instead, use an - NFS URI to specify the remote file system.
vSphere 6.0
    -
  • nfs://server:/path (for vCenter Server Appliance only)
  • file://unc-server/path - (for vCenter Server for Windows only)
  • file:///path - Local file - URIs are supported but strongly discouraged because it may interfere with - the performance of vCenter Server.
([''present''])' + NFS URI to specify the remote file system.' + - ' ' + - ' vSphere 6.0 ' + - '' + - ' - nfs://server:/path (for vCenter Server Appliance only)' + - ' - file://unc-server/path (for vCenter Server for Windows only)' + - ' - file:///path - Local file URIs are supported but strongly discouraged + because it may interfere with the performance of vCenter Server.' + - ' ' + - This field is optional and it is only relevant when the value of StorageBacking.type + is OTHER. (['present']) elements: dict type: list subscription_info: description: - - Defines the subscription behavior for this Library. The C(subscription_info) - defines how this subscribed library synchronizes to a remote source. Setting - the value will determine the remote source to which the library synchronizes, - and how. Changing the subscription will result in synchronizing to a new - source. If the new source differs from the old one, the old library items - and data will be lost. Setting C(subscription_info.automaticSyncEnabled) - to false will halt subscription but will not remove existing cached data. + - 'Defines the subscription behavior for this Library. ' + - ' The SubscriptionInfo defines how this subscribed library synchronizes + to a remote source. Setting the value will determine the remote source + to which the library synchronizes, and how. Changing the subscription + will result in synchronizing to a new source. If the new source differs + from the old one, the old library items and data will be lost. Setting + SubscriptionInfo.automatic-sync-enabled to false will halt subscription + but will not remove existing cached data.' + - '' + - This field is optional for the create and update operations. If not specified + during creation, a default will be created without an active subscription. + If not specified during update, the field is left unchanged. - 'Valid attributes are:' - ' - C(authentication_method) (str): Indicate how the subscribed library should authenticate with the published library endpoint. ([''present''])' @@ -187,63 +303,121 @@ - ' - NONE' - ' - C(automatic_sync_enabled) (bool): Whether the library should participate in automatic library synchronization. In order for automatic synchronization - to happen, the global C(configuration_model.automatic_sync_enabled) option + to happen, the global ConfigurationModel.automatic-sync-enabled option must also be true. The subscription is still active even when automatic synchronization is turned off, but synchronization is only activated with - an explicit call to M(vmware.vmware_rest.content_subscribedlibrary) with - C(state=sync). - In other words, manual synchronization is still available even when automatic - synchronization is disabled. ([''present''])' + an explicit call to SubscribedLibrary.sync or SubscribedItem.sync. In + other words, manual synchronization is still available even when automatic + synchronization is disabled.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present']) - ' - C(on_demand) (bool): Indicates whether a library item''s content will - be synchronized only on demand. If this is set to C(True), then the library - item''s metadata will be synchronized but the item''s content (its files) - will not be synchronized. The Content Library Service will synchronize - the content upon request only. This can cause the first use of the content - to have a noticeable delay. If this value is set to C(False), all content - will be synchronized in advance. ([''present''])' - - ' - C(password) (str): The password to use when authenticating. The password - must be set when using a password-based authentication method; empty strings - are not allowed. ([''present''])' + be synchronized only on demand. ' + - ' If this is set to true, then the library item''s metadata will be synchronized + but the item''s content (its files) will not be synchronized. The Content + Library Service will synchronize the content upon request only. This can + cause the first use of the content to have a noticeable delay. ' + - '' + - ' Items without synchronized content can be forcefully synchronized in advance + using the SubscribedItem.sync call with forceSyncContent set to true. + Once content has been synchronized, the content can removed with the SubscribedItem.evict + call. ' + - '' + - ' If this value is set to false, all content will be synchronized in advance.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present']) + - ' - C(password) (str): The password to use when authenticating. ' + - ' The password must be set when using a password-based authentication method; + empty strings are not allowed.' + - '' + - This field is optional for the create operation. It will not be present + in the result of the get or list operations. It is optional for the update + operation. (['present']) - ' - C(ssl_thumbprint) (str): An optional SHA-1 hash of the SSL certificate - for the remote endpoint. If this value is defined the SSL certificate - will be verified by comparing it to the SSL thumbprint. The SSL certificate - must verify against the thumbprint. When specified, the standard certificate - chain validation behavior is not used. The certificate chain is validated - normally if this value is not set. ([''present''])' + for the remote endpoint. ' + - ' If this value is defined the SSL certificate will be verified by comparing + it to the SSL thumbprint. The SSL certificate must verify against the + thumbprint. When specified, the standard certificate chain validation + behavior is not used. The certificate chain is validated normally if this + value is unset. The specified sslThumbprint will not be checked for SSL + certificate validation if {SubscriptionInfo#sslCertificate} is also set.' + - '' + - This field is optional for the create operation. It will not be present + in the result of the get or list operations. It is optional for the update + operation. (['present']) - ' - C(subscription_url) (str): The URL of the endpoint where the metadata - for the remotely published library is being served. This URL can be the - C(publish_info.publish_url) of the published library (for example, https://server/path/lib.json). - If the source content comes from a published library with C(publish_info.persist_json_enabled), + for the remotely published library is being served. ' + - ' This URL can be the PublishInfo.publish-url of the published library (for + example, https://server/path/lib.json). ' + - '' + - ' If the source content comes from a published library with PublishInfo.persist-json-enabled, the subscription URL can be a URL pointing to the library JSON file on - a datastore or remote file system. The supported formats are: vSphere - 6.5
  • ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)
  • -
  • nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter - Server Appliance)
  • nfs://server/path/mylibrary/lib.json?version=4 - (for NFSv4 server on vCenter Server Appliance)
  • smb://server/path/mylibrary/lib.json - (for SMB server)
vSphere 6.0
  • file://server/mylibrary/lib.json - (for UNC server on vCenter Server for Windows)
  • file:///path/mylibrary/lib.json - (for local file system)
When you specify a DS subscription - URL, the datastore must be on the same vCenter Server as the subscribed - library. When you specify an NFS or SMB subscription URL, the C(storage_backings.storage_uri) - of the subscribed library must be on the same remote file server and should - share a common parent path with the subscription URL. ([''present''])' - - ' - C(user_name) (str): The username to use when authenticating. The username - must be set when using a password-based authentication method. Empty strings - are allowed for usernames. ([''present''])' + a datastore or remote file system. The supported formats are: ' + - '' + - ' vSphere 6.5 ' + - '' + - ' - ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)' + - ' - nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter + Server Appliance)' + - ' - nfs://server/path/mylibrary/lib.json?version=4 (for NFSv4 server on + vCenter Server Appliance) ' + - ' - smb://server/path/mylibrary/lib.json (for SMB server)' + - ' ' + - ' vSphere 6.0 ' + - '' + - ' - file://server/mylibrary/lib.json (for UNC server on vCenter Server + for Windows)' + - ' - file:///path/mylibrary/lib.json (for local file system)' + - ' ' + - ' When you specify a DS subscription URL, the datastore must be on the same + vCenter Server as the subscribed library. When you specify an NFS or SMB + subscription URL, the StorageBacking.storage-uri of the subscribed library + must be on the same remote file server and should share a common parent + path with the subscription URL.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present']) + - ' - C(user_name) (str): The username to use when authenticating. ' + - ' The username must be set when using a password-based authentication method. + Empty strings are allowed for usernames.' + - '' + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. + (['present']) - ' - C(source_info) (dict): Information about the source published library. This field will be set for a subscribed library which is associated with - a subscription of the published library. ([''present''])' + a subscription of the published library.' + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. + (['present']) - ' - Accepted keys:' - ' - source_library (string): Identifier of the published library.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' - ' - subscription (string): Identifier of the subscription associated with the subscribed library.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_subscriptions_info). ' type: dict subscriptions: description: - The list of subscriptions to publish this library to. - 'Valid attributes are:' - ' - C(subscription) (str): Identifier of the subscription associated with - the subscribed library. ([''publish''])' + the subscribed library.' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_subscriptions_info). + (['publish']) - ' This key is required with [''publish''].' elements: dict type: list @@ -252,17 +426,22 @@ - LOCAL - SUBSCRIBED description: - - The C(library_type) defines the type of a Library. The type of a library - can be used to determine which additional services can be performed with - a library. + - 'The I(library_type) enumerated type defines the type of a LibraryModel. ' + - ' The type of a library can be used to determine which additional services + can be performed with a library.' type: str unset_security_policy_id: description: - - 'This represents the intent of the change to {@link #securityPolicyId} in - C(update)operation. If this field is set to C(True), any security policy - applied to the library will be removed. If this field is set to C(False), - any security policy applied to library will be changed to the value specified - in {@link #securityPolicyId}, if any.' + - 'This represents the intent of the change to LibraryModel.security-policy-id + in update operation. ' + - ' If this field is set to true, any security policy applied to the library + will be removed. If this field is set to false, any security policy applied + to library will be changed to the value specified in LibraryModel.security-policy-id, + if any.' + - '' + - This field is optional for the update operation. If unset, any existing + security policy will be changed to the value specified in LibraryModel.security-policy-id, + if any. type: bool vcenter_hostname: description: @@ -303,16 +482,22 @@ type: bool version: description: - - A version number which is updated on metadata changes. This value allows + - 'A version number which is updated on metadata changes. This value allows clients to detect concurrent updates and prevent accidental clobbering - of data. This value represents a number which is incremented every time - library properties, such as name or description, are changed. It is not - incremented by changes to a library item within the library, including - adding or removing items. It is also not affected by tagging the library. + of data. ' + - ' This value represents a number which is incremented every time library + properties, such as name or description, are changed. It is not incremented + by changes to a library item within the library, including adding or removing + items. It is also not affected by tagging the library.' + - '' + - This field is not used for the create operation. It will always be present + in the result of a get or list operation. It is optional for the update + operation. Leaving it unset during update indicates that you do not need + to detect concurrent updates. type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -374,7 +559,6 @@ state: present register: nfs_lib """ - RETURN = r""" # content generated by the update_return_section callback# task: Delete all the local libraries msg: @@ -1247,10 +1431,16 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "update": { + "publish": { "query": {}, + "body": {"subscriptions": "subscriptions"}, + "path": {"library_id": "library_id"}, + }, + "create": { + "query": {"client_token": "client_token"}, "body": { "creation_time": "creation_time", "description": "description", @@ -1268,15 +1458,11 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, - "path": {"library_id": "library_id"}, + "path": {}, }, - "publish": { + "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "update": { "query": {}, - "body": {"subscriptions": "subscriptions"}, - "path": {"library_id": "library_id"}, - }, - "create": { - "query": {"client_token": "client_token"}, "body": { "creation_time": "creation_time", "description": "description", @@ -1294,9 +1480,8 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, - "path": {}, + "path": {"library_id": "library_id"}, }, - "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -1420,6 +1605,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -1436,6 +1622,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["name"] comp_func = None @@ -1593,5 +1780,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_locallibrary_info.py b/plugins/modules/content_locallibrary_info.py index a01f6388f..e92a152e2 100644 --- a/plugins/modules/content_locallibrary_info.py +++ b/plugins/modules/content_locallibrary_info.py @@ -14,7 +14,9 @@ options: library_id: description: - - Identifier of the local library to return. Required with I(state=['get']) + - Identifier of the local library to return. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['get']) type: str session_timeout: description: @@ -63,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -100,7 +102,6 @@ register: result check_mode: true """ - RETURN = r""" # content generated by the update_return_section callback# task: List all Local Content Library value: @@ -314,6 +315,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, @@ -460,5 +462,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_subscribedlibrary.py b/plugins/modules/content_subscribedlibrary.py index 023e5b7e7..5d80bfd87 100644 --- a/plugins/modules/content_subscribedlibrary.py +++ b/plugins/modules/content_subscribedlibrary.py @@ -10,116 +10,200 @@ DOCUMENTATION = r""" module: content_subscribedlibrary short_description: Creates a new subscribed library -description: Creates a new subscribed library.

Once created, the subscribed library - will be empty. If the {@link LibraryModel#subscriptionInfo} property is set, the - Content Library Service will attempt to synchronize to the remote source. This - is an asynchronous operation so the content of the published library may not immediately - appear. +description: 'Creates a new subscribed library. ' options: client_token: description: - 'Unique token generated on the client for each creation request. The token - should be a universally unique identifier (UUID), for example: C(b8a2a2e3-2314-43cd-a871-6ede0f429751). + should be a universally unique identifier (UUID), for example: b8a2a2e3-2314-43cd-a871-6ede0f429751. This token can be used to guarantee idempotent creation.' + - If not specified creation is not idempotent. type: str creation_time: description: - The date and time when this library was created. + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. type: str description: description: - A human-readable description for this library. + - This field is optional for the create operation. Leaving it unset during + creation will result in an empty string value. It will always be present + in the result of a get or list operation. It is optional for the update + operation. Leaving it unset during update indicates that the description + should be left unchanged. type: str id: description: - - An identifier which uniquely identifies this C(library_model). + - An identifier which uniquely identifies this LibraryModel. + - This field is not used for the create operation. It will not be present + in the result of the get or list operations. It is not used for the update + operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' type: str last_modified_time: description: - - The date and time when this library was last updated. This field is updated - automatically when the library properties are changed. This field is not - affected by adding, removing, or modifying a library item or its content - within the library. Tagging the library or syncing the subscribed library - does not alter this field. + - 'The date and time when this library was last updated. ' + - ' This field is updated automatically when the library properties are changed. + This field is not affected by adding, removing, or modifying a library + item or its content within the library. Tagging the library or syncing + the subscribed library does not alter this field.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. type: str last_sync_time: description: - - The date and time when this library was last synchronized. This field applies - only to subscribed libraries. It is updated every time a synchronization - is triggered on the library. The value is not set for a local library. + - 'The date and time when this library was last synchronized. ' + - ' This field applies only to subscribed libraries. It is updated every time + a synchronization is triggered on the library. The value is unset for + a local library.' + - '' + - This field is not used for the create operation. It is optional in the result + of the get or list operations. It is not used for the update operation. type: str library_id: description: - - Identifier of the subscribed library whose content should be evicted. Required - with I(state=['absent', 'evict', 'present', 'sync']) + - Identifier of the subscribed library whose content should be evicted. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['absent', 'evict', 'present', 'sync']) type: str name: description: - - The name of the library. A Library is identified by a human-readable name. - Library names cannot be undefined or an empty string. Names do not have - to be unique. + - 'The name of the library. ' + - ' A Library is identified by a human-readable name. Library names cannot + be undefined or an empty string. Names do not have to be unique.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. type: str optimization_info: description: - Defines various optimizations and optimization parameters applied to this library. + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. - 'Valid attributes are:' - - ' - C(optimize_remote_publishing) (bool): If set to C(True) then library - would be optimized for remote publishing. Turn it on if remote publishing - is dominant use case for this library. Remote publishing means here that - publisher and subscribers are not the part of the same C(vcenter) SSO - domain. Any optimizations could be done as result of turning on this optimization + - ' - C(optimize_remote_publishing) (bool): If set to true then library would + be optimized for remote publishing. ' + - ' Turn it on if remote publishing is dominant use case for this library. + Remote publishing means here that publisher and subscribers are not the + part of the same Vcenter SSO domain. ' + - '' + - ' Any optimizations could be done as result of turning on this optimization during library creation. For example, library content could be stored in different format but optimizations are not limited to just storage - format. Note, that value of this toggle could be set only during creation - of the library and you would need to migrate your library in case you - need to change this value (optimize the library for different use case). - ([''present''])' + format. ' + - '' + - ' Note, that value of this toggle could be set only during creation of the + library and you would need to migrate your library in case you need to + change this value (optimize the library for different use case).' + - '' + - This field is optional for the create operation. If not specified for the + create, the default is for the library to not be optmized for specific + use case. It is not used for the update operation. (['present']) type: dict publish_info: description: - - Defines how this library is published so that it can be subscribed to by - a remote subscribed library. The C(publish_info) defines where and how - the metadata for this local library is accessible. A local library is - only published publically if C(publish_info.published) is C(True). + - 'Defines how this library is published so that it can be subscribed to by + a remote subscribed library. ' + - ' The PublishInfo defines where and how the metadata for this local library + is accessible. A local library is only published publically if PublishInfo.published + is true.' + - '' + - This field is optional for the create and update operations. If not specified + during creation, the default is for the library to not be published. If + not specified during update, the field is left unchanged. - 'Valid attributes are:' - - ' - C(authentication_method) (str): The C(authentication_method) indicates - how a subscribed library should authenticate to the published library - endpoint. ([''present''])' + - ' - C(authentication_method) (str): This option indicates how a subscribed + library should authenticate to the published library endpoint. ([''present''])' - ' - Accepted values:' - ' - BASIC' - ' - NONE' - - ' - C(published) (bool): Whether the local library is published. ([''present''])' + - ' - C(published) (bool): Whether the local library is published.' + - This field is required for the LocalLibrary.create operation. It is optional + for the LocalLibrary.update operation, and if unset the value will not + be changed. When the existing authentication method is BASIC and the local + library is published, the PublishInfo.current-password field is required + before turning off publishing. This field will always be present in the + results of the LocalLibrary.get operation. (['present']) - ' - C(publish_url) (str): The URL to which the library metadata is published - by the Content Library Service. This value can be used to set the C(subscription_info.subscriptionurl) - property when creating a subscribed library. ([''present''])' - - ' - C(user_name) (str): The username to require for authentication. ([''present''])' - - ' - C(password) (str): The new password to require for authentication. ([''present''])' + by the Content Library Service. ' + - ' This value can be used to set the SubscriptionInfo.subscription-url property + when creating a subscribed library.' + - '' + - This field is not used for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. (['present']) + - ' - C(user_name) (str): The username to require for authentication.' + - This field is optional for the LocalLibrary.create and LocalLibrary.update + operations. When the authentication method is NONE, the username can be + left unset. When the authentication method is BASIC, the username is ignored + in the current release. It defaults to "vcsp". It is preferable to leave + this unset. If specified, it must be set to "vcsp". (['present']) + - ' - C(password) (str): The new password to require for authentication.' + - This field is optional for the LocalLibrary.create operation. When the authentication + method is NONE, the password can be left unset. When the authentication + method is BASIC, the password should be a non-empty string. This field + is optional for the LocalLibrary.update operation. Leaving it unset during + update indicates that the password is not changed. When the password is + changed, the PublishInfo.current-password field is required. This field + is not used for the LocalLibrary.get operation. (['present']) - ' - C(current_password) (str): The current password to verify. This field - is available starting in vSphere 6.7. ([''present''])' + is available starting in vSphere 6.7.' + - This field is unused for the LocalLibrary.create operation. This field is + optional for the LocalLibrary.update operation. When the existing authentication + method is NONE, the current password can be left unset. When the existing + authentication method is BASIC, the current password is verified before + applying the new PublishInfo.password, turning off authentication, or + unpublishing the library. This field is not used for the LocalLibrary.get + operation. (['present']) - ' - C(persist_json_enabled) (bool): Whether library and library item metadata are persisted in the storage backing as JSON files. This flag only applies - if the local library is published. Enabling JSON persistence allows you - to synchronize a subscribed library manually instead of over HTTP. You - copy the local library content and metadata to another storage backing - manually and then create a subscribed library referencing the location - of the library JSON file in the C(subscription_info.subscriptionurl). + if the local library is published. ' + - ' Enabling JSON persistence allows you to synchronize a subscribed library + manually instead of over HTTP. You copy the local library content and + metadata to another storage backing manually and then create a subscribed + library referencing the location of the library JSON file in the SubscriptionInfo.subscription-url. When the subscribed library''s storage backing matches the subscription - URL, files do not need to be copied to the subscribed library. For a library - backed by a datastore, the library JSON file will be stored at the path - contentlib-{library_id}/lib.json on the datastore. For a library backed - by a remote file system, the library JSON file will be stored at {library_id}/lib.json - in the remote file system path. ([''present''])' + URL, files do not need to be copied to the subscribed library. ' + - '' + - ' For a library backed by a datastore, the library JSON file will be stored + at the path contentlib-{library_id}/lib.json on the datastore. ' + - '' + - ' For a library backed by a remote file system, the library JSON file will + be stored at {library_id}/lib.json in the remote file system path.' + - '' + - This field is optional for the create operation. It will always be present + in the result of the get or list operations. It is optional for the update + operation. (['present']) type: dict security_policy_id: description: - - 'Represents the security policy applied to this library. Setting the field - will make the library secure. This field is ignored in C(update)operation - if {@link #unsetSecurityPolicyId} is set to C(True).' + - 'Represents the security policy applied to this library. ' + - ' Setting the field will make the library secure. This field is ignored + in update operation if LibraryModel.unset-security-policy-id is set to + true.' + - '' + - This field is optional for the create and update operations. If not set + in create operation, the library will be insecure. If not specified in + update operation, the field is left unchanged. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' type: str server_guid: description: - The unique identifier of the vCenter server where the library exists. + - This field is optional for the create operation. It will always be present + in the result of the get or list operations. It is not used for the update + operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_cluster_info). ' type: str session_timeout: description: @@ -141,50 +225,78 @@ type: str storage_backings: description: - - The list of default storage backings which are available for this library. - A storage backing defines a default storage location which can be used + - 'The list of default storage backings which are available for this library. ' + - ' A StorageBacking defines a default storage location which can be used to store files for library items in this library. Some library items, for instance, virtual machine template items, support files that may be distributed across various storage backings. One or more item files may - or may not be located on the default storage backing. Multiple default - storage locations are not currently supported but may become supported - in future releases. + or may not be located on the default storage backing. ' + - '' + - ' Multiple default storage locations are not currently supported but may + become supported in future releases.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is not used for + the update operation. - 'Valid attributes are:' - - ' - C(type) (str): The C(type) specifies the type of the storage backing. + - ' - C(type) (str): This option specifies the type of the StorageBacking. ([''present''])' - ' - Accepted values:' - ' - DATASTORE' - ' - OTHER' - ' - C(datastore_id) (str): Identifier of the datastore used to store the - content in the library. ([''present''])' + content in the library.' + - This field is optional and it is only relevant when the value of StorageBacking.type + is DATASTORE. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_datastore_info). + (['present']) - ' - C(storage_uri) (str): URI identifying the location used to store the - content in the library. The following URI formats are supported: vSphere - 6.5

  • nfs://server/path?version=4 (for vCenter Server Appliance - only) - Specifies an NFS Version 4 server.
  • nfs://server/path - (for vCenter Server Appliance only) - Specifies an NFS Version 3 server. - The nfs://server:/path format is also supported.
  • smb://server/path - - Specifies an SMB server or Windows share.
vSphere 6.0 Update - 1
  • nfs://server:/path (for vCenter Server Appliance only)
  • -
  • file://unc-server/path (for vCenter Server for Windows only)
  • -
  • file:///mount/point (for vCenter Server Appliance only) - Local file + content in the library. ' + - ' The following URI formats are supported: ' + - '' + - ' vSphere 6.5 ' + - '' + - ' - nfs://server/path?version=4 (for vCenter Server Appliance only) - + Specifies an NFS Version 4 server.' + - ' - nfs://server/path (for vCenter Server Appliance only) - Specifies + an NFS Version 3 server. The nfs://server:/path format is also supported.' + - ' - smb://server/path - Specifies an SMB server or Windows share.' + - ' ' + - ' vSphere 6.0 Update 1 ' + - '' + - ' - nfs://server:/path (for vCenter Server Appliance only)' + - ' - file://unc-server/path (for vCenter Server for Windows only)' + - ' - file:///mount/point (for vCenter Server Appliance only) - Local file URIs are supported only when the path is a local mount point for an NFS file system. Use of file URIs is strongly discouraged. Instead, use an - NFS URI to specify the remote file system.
vSphere 6.0
    -
  • nfs://server:/path (for vCenter Server Appliance only)
  • file://unc-server/path - (for vCenter Server for Windows only)
  • file:///path - Local file - URIs are supported but strongly discouraged because it may interfere with - the performance of vCenter Server.
([''present''])' + NFS URI to specify the remote file system.' + - ' ' + - ' vSphere 6.0 ' + - '' + - ' - nfs://server:/path (for vCenter Server Appliance only)' + - ' - file://unc-server/path (for vCenter Server for Windows only)' + - ' - file:///path - Local file URIs are supported but strongly discouraged + because it may interfere with the performance of vCenter Server.' + - ' ' + - This field is optional and it is only relevant when the value of StorageBacking.type + is OTHER. (['present']) elements: dict type: list subscription_info: description: - - Defines the subscription behavior for this Library. The C(subscription_info) - defines how this subscribed library synchronizes to a remote source. Setting - the value will determine the remote source to which the library synchronizes, - and how. Changing the subscription will result in synchronizing to a new - source. If the new source differs from the old one, the old library items - and data will be lost. Setting C(subscription_info.automaticSyncEnabled) - to false will halt subscription but will not remove existing cached data. + - 'Defines the subscription behavior for this Library. ' + - ' The SubscriptionInfo defines how this subscribed library synchronizes + to a remote source. Setting the value will determine the remote source + to which the library synchronizes, and how. Changing the subscription + will result in synchronizing to a new source. If the new source differs + from the old one, the old library items and data will be lost. Setting + SubscriptionInfo.automatic-sync-enabled to false will halt subscription + but will not remove existing cached data.' + - '' + - This field is optional for the create and update operations. If not specified + during creation, a default will be created without an active subscription. + If not specified during update, the field is left unchanged. - 'Valid attributes are:' - ' - C(authentication_method) (str): Indicate how the subscribed library should authenticate with the published library endpoint. ([''present'', @@ -194,73 +306,133 @@ - ' - NONE' - ' - C(automatic_sync_enabled) (bool): Whether the library should participate in automatic library synchronization. In order for automatic synchronization - to happen, the global C(configuration_model.automatic_sync_enabled) option + to happen, the global ConfigurationModel.automatic-sync-enabled option must also be true. The subscription is still active even when automatic synchronization is turned off, but synchronization is only activated with - an explicit call to M(vmware.vmware_rest.content_subscribedlibrary) with - C(state=sync). - In other words, manual synchronization is still available even when automatic - synchronization is disabled. ([''present'', ''probe''])' + an explicit call to SubscribedLibrary.sync or SubscribedItem.sync. In + other words, manual synchronization is still available even when automatic + synchronization is disabled.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present', 'probe']) - ' - C(on_demand) (bool): Indicates whether a library item''s content will - be synchronized only on demand. If this is set to C(True), then the library - item''s metadata will be synchronized but the item''s content (its files) - will not be synchronized. The Content Library Service will synchronize - the content upon request only. This can cause the first use of the content - to have a noticeable delay. If this value is set to C(False), all content - will be synchronized in advance. ([''present'', ''probe''])' - - ' - C(password) (str): The password to use when authenticating. The password - must be set when using a password-based authentication method; empty strings - are not allowed. ([''present'', ''probe''])' + be synchronized only on demand. ' + - ' If this is set to true, then the library item''s metadata will be synchronized + but the item''s content (its files) will not be synchronized. The Content + Library Service will synchronize the content upon request only. This can + cause the first use of the content to have a noticeable delay. ' + - '' + - ' Items without synchronized content can be forcefully synchronized in advance + using the SubscribedItem.sync call with forceSyncContent set to true. + Once content has been synchronized, the content can removed with the SubscribedItem.evict + call. ' + - '' + - ' If this value is set to false, all content will be synchronized in advance.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present', 'probe']) + - ' - C(password) (str): The password to use when authenticating. ' + - ' The password must be set when using a password-based authentication method; + empty strings are not allowed.' + - '' + - This field is optional for the create operation. It will not be present + in the result of the get or list operations. It is optional for the update + operation. (['present', 'probe']) - ' - C(ssl_thumbprint) (str): An optional SHA-1 hash of the SSL certificate - for the remote endpoint. If this value is defined the SSL certificate - will be verified by comparing it to the SSL thumbprint. The SSL certificate - must verify against the thumbprint. When specified, the standard certificate - chain validation behavior is not used. The certificate chain is validated - normally if this value is not set. ([''present'', ''probe''])' + for the remote endpoint. ' + - ' If this value is defined the SSL certificate will be verified by comparing + it to the SSL thumbprint. The SSL certificate must verify against the + thumbprint. When specified, the standard certificate chain validation + behavior is not used. The certificate chain is validated normally if this + value is unset. The specified sslThumbprint will not be checked for SSL + certificate validation if {SubscriptionInfo#sslCertificate} is also set.' + - '' + - This field is optional for the create operation. It will not be present + in the result of the get or list operations. It is optional for the update + operation. (['present', 'probe']) - ' - C(subscription_url) (str): The URL of the endpoint where the metadata - for the remotely published library is being served. This URL can be the - C(publish_info.publish_url) of the published library (for example, https://server/path/lib.json). - If the source content comes from a published library with C(publish_info.persist_json_enabled), + for the remotely published library is being served. ' + - ' This URL can be the PublishInfo.publish-url of the published library (for + example, https://server/path/lib.json). ' + - '' + - ' If the source content comes from a published library with PublishInfo.persist-json-enabled, the subscription URL can be a URL pointing to the library JSON file on - a datastore or remote file system. The supported formats are: vSphere - 6.5
  • ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)
  • -
  • nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter - Server Appliance)
  • nfs://server/path/mylibrary/lib.json?version=4 - (for NFSv4 server on vCenter Server Appliance)
  • smb://server/path/mylibrary/lib.json - (for SMB server)
vSphere 6.0
  • file://server/mylibrary/lib.json - (for UNC server on vCenter Server for Windows)
  • file:///path/mylibrary/lib.json - (for local file system)
When you specify a DS subscription - URL, the datastore must be on the same vCenter Server as the subscribed - library. When you specify an NFS or SMB subscription URL, the C(storage_backings.storage_uri) - of the subscribed library must be on the same remote file server and should - share a common parent path with the subscription URL. ([''present'', ''probe''])' - - ' - C(user_name) (str): The username to use when authenticating. The username - must be set when using a password-based authentication method. Empty strings - are allowed for usernames. ([''present'', ''probe''])' + a datastore or remote file system. The supported formats are: ' + - '' + - ' vSphere 6.5 ' + - '' + - ' - ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore)' + - ' - nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter + Server Appliance)' + - ' - nfs://server/path/mylibrary/lib.json?version=4 (for NFSv4 server on + vCenter Server Appliance) ' + - ' - smb://server/path/mylibrary/lib.json (for SMB server)' + - ' ' + - ' vSphere 6.0 ' + - '' + - ' - file://server/mylibrary/lib.json (for UNC server on vCenter Server + for Windows)' + - ' - file:///path/mylibrary/lib.json (for local file system)' + - ' ' + - ' When you specify a DS subscription URL, the datastore must be on the same + vCenter Server as the subscribed library. When you specify an NFS or SMB + subscription URL, the StorageBacking.storage-uri of the subscribed library + must be on the same remote file server and should share a common parent + path with the subscription URL.' + - '' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. (['present', 'probe']) + - ' - C(user_name) (str): The username to use when authenticating. ' + - ' The username must be set when using a password-based authentication method. + Empty strings are allowed for usernames.' + - '' + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. + (['present', 'probe']) - ' - C(source_info) (dict): Information about the source published library. This field will be set for a subscribed library which is associated with - a subscription of the published library. ([''present'', ''probe''])' + a subscription of the published library.' + - This field is optional for the create operation. It is optional in the result + of the get or list operations. It is optional for the update operation. + (['present', 'probe']) - ' - Accepted keys:' - ' - source_library (string): Identifier of the published library.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). ' - ' - subscription (string): Identifier of the subscription associated with the subscribed library.' + - This field must be provided for the create operation. It will always be + present in the result of the get or list operations. It is optional for + the update operation. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_subscriptions_info). ' type: dict type: choices: - LOCAL - SUBSCRIBED description: - - The C(library_type) defines the type of a Library. The type of a library - can be used to determine which additional services can be performed with - a library. + - 'The I(library_type) enumerated type defines the type of a LibraryModel. ' + - ' The type of a library can be used to determine which additional services + can be performed with a library.' type: str unset_security_policy_id: description: - - 'This represents the intent of the change to {@link #securityPolicyId} in - C(update)operation. If this field is set to C(True), any security policy - applied to the library will be removed. If this field is set to C(False), - any security policy applied to library will be changed to the value specified - in {@link #securityPolicyId}, if any.' + - 'This represents the intent of the change to LibraryModel.security-policy-id + in update operation. ' + - ' If this field is set to true, any security policy applied to the library + will be removed. If this field is set to false, any security policy applied + to library will be changed to the value specified in LibraryModel.security-policy-id, + if any.' + - '' + - This field is optional for the update operation. If unset, any existing + security policy will be changed to the value specified in LibraryModel.security-policy-id, + if any. type: bool vcenter_hostname: description: @@ -301,16 +473,22 @@ type: bool version: description: - - A version number which is updated on metadata changes. This value allows + - 'A version number which is updated on metadata changes. This value allows clients to detect concurrent updates and prevent accidental clobbering - of data. This value represents a number which is incremented every time - library properties, such as name or description, are changed. It is not - incremented by changes to a library item within the library, including - adding or removing items. It is also not affected by tagging the library. + of data. ' + - ' This value represents a number which is incremented every time library + properties, such as name or description, are changed. It is not incremented + by changes to a library item within the library, including adding or removing + items. It is also not affected by tagging the library.' + - '' + - This field is not used for the create operation. It will always be present + in the result of a get or list operation. It is optional for the update + operation. Leaving it unset during update indicates that you do not need + to detect concurrent updates. type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -371,7 +549,6 @@ library_id: '{{ sub_lib.id }}' state: sync """ - RETURN = r""" # content generated by the update_return_section callback# task: Delete all the subscribed libraries msg: @@ -451,11 +628,16 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "evict": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, - "update": { + "probe": { "query": {}, + "body": {"subscription_info": "subscription_info"}, + "path": {}, + }, + "create": { + "query": {"client_token": "client_token"}, "body": { "creation_time": "creation_time", "description": "description", @@ -473,15 +655,13 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, - "path": {"library_id": "library_id"}, - }, - "probe": { - "query": {}, - "body": {"subscription_info": "subscription_info"}, "path": {}, }, - "create": { - "query": {"client_token": "client_token"}, + "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "evict": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "sync": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "update": { + "query": {}, "body": { "creation_time": "creation_time", "description": "description", @@ -499,10 +679,8 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, - "path": {}, + "path": {"library_id": "library_id"}, }, - "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, - "sync": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -627,6 +805,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -643,6 +822,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["name"] comp_func = None @@ -854,5 +1034,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/content_subscribedlibrary_info.py b/plugins/modules/content_subscribedlibrary_info.py index c80607f02..f7bb42513 100644 --- a/plugins/modules/content_subscribedlibrary_info.py +++ b/plugins/modules/content_subscribedlibrary_info.py @@ -14,7 +14,9 @@ options: library_id: description: - - Identifier of the subscribed library to return. Required with I(state=['get']) + - Identifier of the subscribed library to return. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + Required with I(state=['get']) type: str session_timeout: description: @@ -63,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -77,7 +79,6 @@ vmware.vmware_rest.content_subscribedlibrary_info: register: my_content_library """ - RETURN = r""" # content generated by the update_return_section callback# task: List Subscribed Content Library value: @@ -104,6 +105,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, @@ -252,5 +254,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_cluster_info.py b/plugins/modules/vcenter_cluster_info.py index d2b8a0ef7..6fedba644 100644 --- a/plugins/modules/vcenter_cluster_info.py +++ b/plugins/modules/vcenter_cluster_info.py @@ -101,7 +101,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -120,7 +120,6 @@ cluster: '{{ all_the_clusters.value[0].cluster }}' register: my_cluster_info """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve details about the first cluster id: @@ -137,6 +136,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"cluster": "cluster"}}, @@ -306,5 +306,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_datacenter.py b/plugins/modules/vcenter_datacenter.py index dd153a1f3..a3c2d84ba 100644 --- a/plugins/modules/vcenter_datacenter.py +++ b/plugins/modules/vcenter_datacenter.py @@ -91,7 +91,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -118,7 +118,6 @@ name: my_dc folder: '{{ my_datacenter_folder.folder }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Force delete the existing DC msg: @@ -158,6 +157,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "create": {"query": {}, "body": {"folder": "folder", "name": "name"}, "path": {}}, @@ -275,6 +275,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -291,6 +292,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["datacenter"] comp_func = None @@ -387,5 +389,9 @@ async def _delete(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_datacenter_info.py b/plugins/modules/vcenter_datacenter_info.py index 1e7d03e16..96b282436 100644 --- a/plugins/modules/vcenter_datacenter_info.py +++ b/plugins/modules/vcenter_datacenter_info.py @@ -94,7 +94,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -112,7 +112,6 @@ vmware.vmware_rest.vcenter_datacenter_info: register: my_datacenters """ - RETURN = r""" # content generated by the update_return_section callback# task: collect a list of the datacenters value: @@ -124,6 +123,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"datacenter": "datacenter"}}, @@ -287,5 +287,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_datastore_info.py b/plugins/modules/vcenter_datastore_info.py index aab450b0f..7e89d7241 100644 --- a/plugins/modules/vcenter_datastore_info.py +++ b/plugins/modules/vcenter_datastore_info.py @@ -110,7 +110,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -124,7 +124,6 @@ vmware.vmware_rest.vcenter_datastore_info: register: all_the_datastores """ - RETURN = r""" # content generated by the update_return_section callback# task: Build a list of all the datastores value: @@ -149,6 +148,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"datastore": "datastore"}}, @@ -324,5 +324,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_folder_info.py b/plugins/modules/vcenter_folder_info.py index e17bab127..3bfcc65ff 100644 --- a/plugins/modules/vcenter_folder_info.py +++ b/plugins/modules/vcenter_folder_info.py @@ -111,7 +111,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -132,7 +132,6 @@ - vm register: my_folders """ - RETURN = r""" # content generated by the update_return_section callback# task: Build a list of all the folders with the type VIRTUAL_MACHINE and called vm value: @@ -146,6 +145,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": { @@ -296,5 +296,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_host.py b/plugins/modules/vcenter_host.py index 73f6e98ac..5883cba12 100644 --- a/plugins/modules/vcenter_host.py +++ b/plugins/modules/vcenter_host.py @@ -129,7 +129,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -147,7 +147,6 @@ thumbprint_verification: NONE folder: '{{ my_host_folder.folder }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Connect the host(s) value: @@ -157,6 +156,7 @@ type: str """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "connect": {"query": {}, "body": {}, "path": {"host": "host"}}, @@ -293,6 +293,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -334,6 +335,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["host"] comp_func = None @@ -455,5 +457,9 @@ async def _disconnect(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_host_info.py b/plugins/modules/vcenter_host_info.py index febdf6a49..f1aa7d7fe 100644 --- a/plugins/modules/vcenter_host_info.py +++ b/plugins/modules/vcenter_host_info.py @@ -122,7 +122,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -136,7 +136,6 @@ vmware.vmware_rest.vcenter_host_info: register: my_hosts """ - RETURN = r""" # content generated by the update_return_section callback# task: Get a list of the hosts value: @@ -150,6 +149,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": { @@ -323,5 +323,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_network_info.py b/plugins/modules/vcenter_network_info.py index 66b24cc1c..f3887a910 100644 --- a/plugins/modules/vcenter_network_info.py +++ b/plugins/modules/vcenter_network_info.py @@ -105,7 +105,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -121,7 +121,6 @@ filter_names: my portrgoup register: my_portgroup """ - RETURN = r""" # content generated by the update_return_section callback# task: Get a list of the networks value: @@ -143,6 +142,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": { @@ -293,5 +293,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_ovf_libraryitem.py b/plugins/modules/vcenter_ovf_libraryitem.py index 06c4b8722..c66bc0bcd 100644 --- a/plugins/modules/vcenter_ovf_libraryitem.py +++ b/plugins/modules/vcenter_ovf_libraryitem.py @@ -11,20 +11,15 @@ module: vcenter_ovf_libraryitem short_description: Creates a library item in content library from a virtual machine or virtual appliance -description: Creates a library item in content library from a virtual machine or virtual - appliance.

This {@term operation} creates a library item in content library - whose content is an OVF package derived from a source virtual machine or virtual - appliance, using the supplied create specification. The OVF package may be stored - as in a newly created library item or in an in an existing library item. For an - existing library item whose content is updated by this {@term operation}, the - original content is overwritten. Meta data such as name and description is not - updated for the exisitng library item.

+description: 'Creates a library item in content library from a virtual machine or + virtual appliance. ' options: client_token: description: - Client-generated token used to retry a request if the client fails to get a response from the server. If the original request succeeded, the result of that request will be returned, otherwise the operation will be retried. + - If unset, the server will create a token. type: str create_spec: description: @@ -32,11 +27,14 @@ or virtual appliance. Required with I(state=['present']) - 'Valid attributes are:' - ' - C(name) (str): Name to use in the OVF descriptor stored in the library - item. ([''present''])' + item.' + - If unset, the server will use source's current name. (['present']) - ' - C(description) (str): Description to use in the OVF descriptor stored - in the library item. ([''present''])' + in the library item.' + - If unset, the server will use source's current annotation. (['present']) - ' - C(flags) (list): Flags to use for OVF package creation. The supported - flags can be obtained using {@link ExportFlag#list}. ([''present''])' + flags can be obtained using ExportFlag.list.' + - If unset, no flags will be used. (['present']) type: dict deployment_spec: description: @@ -44,49 +42,99 @@ with I(state=['deploy']) - 'Valid attributes are:' - ' - C(name) (str): Name assigned to the deployed target virtual machine - or virtual appliance. ([''deploy''])' + or virtual appliance.' + - If unset, the server will use the name from the OVF package. (['deploy']) - ' - C(annotation) (str): Annotation assigned to the deployed target virtual - machine or virtual appliance. ([''deploy''])' + machine or virtual appliance.' + - If unset, the server will use the annotation from the OVF package. (['deploy']) - ' - C(accept_all_EULA) (bool): Whether to accept all End User License Agreements. - ([''deploy''])' + See I() ([''deploy''])' - ' This key is required with [''deploy''].' - ' - C(network_mappings) (dict): Specification of the target network to use for sections of type ovf:NetworkSection in the OVF descriptor. The key - in the {@term map} is the section identifier of the ovf:NetworkSection - section in the OVF descriptor and the value is the target network to be - used for deployment. ([''deploy''])' + in the map is the section identifier of the ovf:NetworkSection section + in the OVF descriptor and the value is the target network to be used for + deployment.' + - If unset, the server will choose a network mapping. + - When clients pass a value of this structure as a parameter, the value in + the field map must be the id of a resource returned by M(vmware.vmware_rest.vcenter_network_info). + (['deploy']) - ' - C(storage_mappings) (dict): Specification of the target storage to use for sections of type vmw:StorageGroupSection in the OVF descriptor. The - key in the {@term map} is the section identifier of the ovf:StorageGroupSection + key in the map is the section identifier of the ovf:StorageGroupSection section in the OVF descriptor and the value is the target storage specification - to be used for deployment. ([''deploy''])' - - ' - C(storage_provisioning) (str): The C(disk_provisioning_type) defines - the virtual disk provisioning types that can be set for a disk on the - target platform. ([''deploy''])' + to be used for deployment. See I()' + - If unset, the server will choose a storage mapping. (['deploy']) + - ' - C(storage_provisioning) (str): This option defines the virtual disk + provisioning types that can be set for a disk on the target platform. + ([''deploy''])' - ' - Accepted values:' - ' - eagerZeroedThick' - ' - thick' - ' - thin' - ' - C(storage_profile_id) (str): Default storage profile to use for all - sections of type vmw:StorageSection in the OVF descriptor. ([''deploy''])' - - ' - C(locale) (str): The locale to use for parsing the OVF descriptor. ([''deploy''])' + sections of type vmw:StorageSection in the OVF descriptor.' + - If unset, the server will choose the default profile. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). + (['deploy']) + - ' - C(locale) (str): The locale to use for parsing the OVF descriptor.' + - If unset, the server locale will be used. (['deploy']) - ' - C(flags) (list): Flags to be use for deployment. The supported flag - values can be obtained using {@link ImportFlag#list}. ([''deploy''])' + values can be obtained using ImportFlag.list.' + - If unset, no flags will be used. (['deploy']) - ' - C(additional_parameters) (list): Additional OVF parameters that may be needed for the deployment. Additional OVF parameters may be required by the OVF descriptor of the OVF package in the library item. Examples of OVF parameters that can be specified through this field include, but - are not limited to:
  • {@link DeploymentOptionParams}
  • {@link - ExtraConfigParams}
  • {@link IpAllocationParams}
  • {@link - PropertyParams}
  • {@link ScaleOutParams}
  • {@link VcenterExtensionParams}
  • -
([''deploy''])' + are not limited to: ' + - ' - DeploymentOptionParams' + - ' - ExtraConfigParams' + - ' - IpAllocationParams' + - ' - PropertyParams' + - ' - ScaleOutParams' + - ' - VcenterExtensionParams' + - ' ' + - If unset, the server will choose default settings for all parameters necessary + for the LibraryItem.deploy operation. See LibraryItem.deploy. + - When clients pass a value of this structure as a parameter, the field must + contain all the attributes defined in OvfParams. (['deploy']) - ' - C(default_datastore_id) (str): Default datastore to use for all sections - of type vmw:StorageSection in the OVF descriptor. ([''deploy''])' + of type vmw:StorageSection in the OVF descriptor.' + - If unset, the server will choose the default datastore. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_datastore_info). + (['deploy']) + - ' - C(vm_config_spec) (dict): The I(resource_pool_deployment_spec).vm-config-spec + is used for virtual machine configuration settings including hardware + specifications to use in place of the OVF descriptor. If set, the OVF + descriptor acts as a disk descriptor. Fields in the I(resource_pool_deployment_spec) + parameters such as I(resource_pool_deployment_spec).name that overlap + with settings in the I(resource_pool_deployment_spec).vm-config-spec are + not overridden and will continue to be used. Similarly, storage settings + in the I(resource_pool_deployment_spec) that affect the disks on the virtual + machine namely I(resource_pool_deployment_spec).storage-mappings, I(resource_pool_deployment_spec).storage-profile-id, + I(resource_pool_deployment_spec).storage-provisioning and I(resource_pool_deployment_spec).default-datastore-id + will also be honored.' + - If unset, the relevant virtual machine specifications in the OVF descriptor + of the OVF template will be used. (['deploy']) + - ' - Accepted keys:' + - ' - provider (string): The I(vm_config_spec_provider) is used to provide + the optional I(vm_config_spec) used when deploying an OVF template.' + - 'Accepted value for this field:' + - ' - C(XML)' + - ' - xml (string): The I(xml) is a conditional configuration made available + upon selecting the XML. It is used to pass in a vim.vm.ConfigSpec for + a virtual machine that has been serialized to XML and base64 encoded.' + - This field is optional and it is only relevant when the value of I(provider) + is XML. type: dict ovf_library_item_id: description: - Identifier of the content library item containing the OVF package to be - deployed. Required with I(state=['deploy', 'filter']) + deployed. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_item_info). + Required with I(state=['deploy', 'filter']) type: str session_timeout: description: @@ -101,9 +149,14 @@ - Identifier of the virtual machine or virtual appliance to use as the source. Required with I(state=['present']) - 'Valid attributes are:' - - ' - C(type) (str): Type of the deployable resource. ([''present''])' + - ' - C(type) (str): Type of the deployable resource.' + - When clients pass a value of this structure as a parameter, the field must + be one of VirtualMachine or VirtualApp. (['present']) - ' This key is required with [''present''].' - - ' - C(id) (str): Identifier of the deployable resource. ([''present''])' + - ' - C(id) (str): Identifier of the deployable resource.' + - 'When clients pass a value of this structure as a parameter, the field must + be an identifier for one of these resource types: VirtualMachine or VirtualApp. + ([''present''])' - ' This key is required with [''present''].' type: dict state: @@ -120,21 +173,43 @@ is mandatory. - 'Valid attributes are:' - ' - C(library_id) (str): Identifier of the library in which a new library - item should be created. This field is not used if the C(#library_item_id) - field is specified. ([''present''])' + item should be created. This field is not used if the I(library_item_id) + field is specified.' + - 'This field is currently required. ' + - ' In the future, if unset, the I(library_item_id) field must be specified. ' + - '' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). + (['present']) - ' - C(library_item_id) (str): Identifier of the library item that should - be should be updated. ([''present''])' + be should be updated.' + - If unset, a new library item will be created. The I(library_id) field must + be specified if this field is set. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_item_info). + (['present']) - ' - C(resource_pool_id) (str): Identifier of the resource pool to which - the virtual machine or virtual appliance should be attached. ([''deploy'', - ''filter''])' + the virtual machine or virtual appliance should be attached.' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_resourcepool_info). + (['deploy', 'filter']) - ' This key is required with [''deploy'', ''filter''].' - ' - C(host_id) (str): Identifier of the target host on which the virtual machine or virtual appliance will run. The target host must be a member - of the cluster that contains the resource pool identified by {@link #resourcePoolId}. - ([''deploy'', ''filter''])' + of the cluster that contains the resource pool identified by I()' + - If unset, the server will automatically select a target host from the resource + pool if I(resource_pool_id) is a stand-alone host or a cluster with Distributed + Resource Scheduling (DRS) enabled. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_host_info). + (['deploy', 'filter']) - ' - C(folder_id) (str): Identifier of the vCenter folder that should contain the virtual machine or virtual appliance. The folder must be virtual machine - folder. ([''deploy'', ''filter''])' + folder.' + - If unset, the server will choose the deployment folder. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_folder_info). + (['deploy', 'filter']) required: true type: dict vcenter_hostname: @@ -176,7 +251,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -258,7 +333,6 @@ accept_all_EULA: true storage_provisioning: thin """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a new VM from the OVF and specify the host and folder value: @@ -276,8 +350,14 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "create": { + "query": {"client_token": "client_token"}, + "body": {"create_spec": "create_spec", "source": "source", "target": "target"}, + "path": {}, + }, "deploy": { "query": {"client_token": "client_token"}, "body": {"deployment_spec": "deployment_spec", "target": "target"}, @@ -288,11 +368,6 @@ "body": {"target": "target"}, "path": {"ovf_library_item_id": "ovf_library_item_id"}, }, - "create": { - "query": {"client_token": "client_token"}, - "body": {"create_spec": "create_spec", "source": "source", "target": "target"}, - "path": {}, - }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -406,6 +481,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -422,6 +498,7 @@ async def entry_point(module, session): async def _create(params, session): + library_id = ( params["target"]["library_id"] if "library_id" in params["target"] else None ) @@ -540,5 +617,9 @@ async def _filter(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_resourcepool.py b/plugins/modules/vcenter_resourcepool.py index 5e5d77d68..e2c59320b 100644 --- a/plugins/modules/vcenter_resourcepool.py +++ b/plugins/modules/vcenter_resourcepool.py @@ -165,7 +165,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.3.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -220,7 +220,6 @@ shares: level: NORMAL """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a generic resource pool id: @@ -249,28 +248,29 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "update": { + "create": { "query": {}, "body": { "cpu_allocation": "cpu_allocation", "memory_allocation": "memory_allocation", "name": "name", + "parent": "parent", }, - "path": {"resource_pool": "resource_pool"}, + "path": {}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"resource_pool": "resource_pool"}}, + "update": { "query": {}, "body": { "cpu_allocation": "cpu_allocation", "memory_allocation": "memory_allocation", "name": "name", - "parent": "parent", }, - "path": {}, + "path": {"resource_pool": "resource_pool"}, }, - "delete": {"query": {}, "body": {}, "path": {"resource_pool": "resource_pool"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -381,6 +381,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -397,6 +398,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["resource_pool"] comp_func = None @@ -542,5 +544,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_resourcepool_info.py b/plugins/modules/vcenter_resourcepool_info.py index a4047e151..0b80bb7ee 100644 --- a/plugins/modules/vcenter_resourcepool_info.py +++ b/plugins/modules/vcenter_resourcepool_info.py @@ -119,7 +119,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.3.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -146,7 +146,6 @@ resource_pool: '{{ my_resource_pool.id }}' register: my_resource_pool """ - RETURN = r""" # content generated by the update_return_section callback# task: Read details from a specific resource pool id: @@ -175,6 +174,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"resource_pool": "resource_pool"}}, @@ -346,5 +346,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_storage_policies_info.py b/plugins/modules/vcenter_storage_policies_info.py index 95056e5c2..b8b24092c 100644 --- a/plugins/modules/vcenter_storage_policies_info.py +++ b/plugins/modules/vcenter_storage_policies_info.py @@ -20,7 +20,7 @@ - Identifiers of storage policies that can match the filter. - If unset or empty, storage policies with any identifiers match the filter. - When clients pass a value of this structure as a parameter, the field must - contain the id of storage policy resources. + contain the id of resources returned by M(vmware.vmware_rest.vcenter_storage_policies_info). elements: str type: list session_timeout: @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.3.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -84,7 +84,6 @@ vmware.vmware_rest.vcenter_storage_policies_info: register: storage_policies """ - RETURN = r""" # content generated by the update_return_section callback# task: List existing storage policies value: @@ -130,6 +129,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {"policies": "policies"}, "body": {}, "path": {}} @@ -250,5 +250,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm.py b/plugins/modules/vcenter_vm.py index 64d62797d..1aed4bc59 100644 --- a/plugins/modules/vcenter_vm.py +++ b/plugins/modules/vcenter_vm.py @@ -325,6 +325,7 @@ type: list guest_OS: choices: + - ALMALINUX_64 - AMAZONLINUX2_64 - AMAZONLINUX3_64 - ASIANUX_3 @@ -360,11 +361,15 @@ - DARWIN_19_64 - DARWIN_20_64 - DARWIN_21_64 + - DARWIN_22_64 + - DARWIN_23_64 - DARWIN_64 - DEBIAN_10 - DEBIAN_10_64 - DEBIAN_11 - DEBIAN_11_64 + - DEBIAN_12 + - DEBIAN_12_64 - DEBIAN_4 - DEBIAN_4_64 - DEBIAN_5 @@ -389,6 +394,8 @@ - FREEBSD_12_64 - FREEBSD_13 - FREEBSD_13_64 + - FREEBSD_14 + - FREEBSD_14_64 - FREEBSD_64 - GENERIC_LINUX - MANDRAKE @@ -424,6 +431,8 @@ - OTHER_5X_LINUX - OTHER_5X_LINUX_64 - OTHER_64 + - OTHER_6X_LINUX + - OTHER_6X_LINUX_64 - OTHER_LINUX - OTHER_LINUX_64 - REDHAT @@ -440,6 +449,7 @@ - RHEL_7_64 - RHEL_8_64 - RHEL_9_64 + - ROCKYLINUX_64 - SJDS - SLES - SLES_10 @@ -470,7 +480,10 @@ - VMKERNEL_6 - VMKERNEL_65 - VMKERNEL_7 + - VMKERNEL_8 - VMWARE_PHOTON_64 + - WINDOWS_11_64 + - WINDOWS_12_64 - WINDOWS_7 - WINDOWS_7_64 - WINDOWS_7_SERVER_64 @@ -483,6 +496,7 @@ - WINDOWS_HYPERV - WINDOWS_SERVER_2019 - WINDOWS_SERVER_2021 + - WINDOWS_SERVER_2025 - WIN_2000_ADV_SERV - WIN_2000_PRO - WIN_2000_SERV @@ -537,6 +551,8 @@ - VMX_17 - VMX_18 - VMX_19 + - VMX_20 + - VMX_21 description: - The I(version) enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual @@ -589,7 +605,8 @@ - ' - VMXNET3' - ' - C(upt_compatibility_enabled) (bool): Flag indicating whether Universal Pass-Through (UPT) compatibility is enabled on this virtual Ethernet adapter.' - - If unset, defaults to false. (['present']) + - If unset, UPT will not be enabled on the newly-created virtual Ethernet + adapter. (['present']) - ' - C(mac_type) (str): This option defines the valid MAC address origins for a virtual Ethernet adapter. ([''present''])' - ' - Accepted values:' @@ -939,7 +956,7 @@ - ' - C(policy) (str): Identifier of the storage policy which should be associated with the virtual machine.' - When clients pass a value of this structure as a parameter, the field must - be the id of a storage policy resource. + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). (['present']) - ' This key is required with [''present''].' type: dict @@ -988,7 +1005,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -1142,7 +1159,6 @@ size_MiB: 1024 register: my_vm """ - RETURN = r""" # content generated by the update_return_section callback# task: Create an instant clone of a VM id: @@ -1248,37 +1264,14 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "clone": { - "query": {}, - "body": { - "disks_to_remove": "disks_to_remove", - "disks_to_update": "disks_to_update", - "guest_customization_spec": "guest_customization_spec", - "name": "name", - "placement": "placement", - "power_on": "power_on", - "source": "source", - }, - "path": {}, - }, "relocate": { "query": {}, "body": {"disks": "disks", "placement": "placement"}, "path": {"vm": "vm"}, }, - "register": { - "query": {}, - "body": { - "datastore": "datastore", - "datastore_path": "datastore_path", - "name": "name", - "path": "path", - "placement": "placement", - }, - "path": {}, - }, "unregister": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "create": { "query": {}, @@ -1305,6 +1298,30 @@ "path": {}, }, "delete": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "clone": { + "query": {}, + "body": { + "disks_to_remove": "disks_to_remove", + "disks_to_update": "disks_to_update", + "guest_customization_spec": "guest_customization_spec", + "name": "name", + "placement": "placement", + "power_on": "power_on", + "source": "source", + }, + "path": {}, + }, + "register": { + "query": {}, + "body": { + "datastore": "datastore", + "datastore_path": "datastore_path", + "name": "name", + "path": "path", + "placement": "placement", + }, + "path": {}, + }, "instant_clone": { "query": {}, "body": { @@ -1397,6 +1414,7 @@ def prepare_argument_spec(): argument_spec["guest_OS"] = { "type": "str", "choices": [ + "ALMALINUX_64", "AMAZONLINUX2_64", "AMAZONLINUX3_64", "ASIANUX_3", @@ -1432,11 +1450,15 @@ def prepare_argument_spec(): "DARWIN_19_64", "DARWIN_20_64", "DARWIN_21_64", + "DARWIN_22_64", + "DARWIN_23_64", "DARWIN_64", "DEBIAN_10", "DEBIAN_10_64", "DEBIAN_11", "DEBIAN_11_64", + "DEBIAN_12", + "DEBIAN_12_64", "DEBIAN_4", "DEBIAN_4_64", "DEBIAN_5", @@ -1461,6 +1483,8 @@ def prepare_argument_spec(): "FREEBSD_12_64", "FREEBSD_13", "FREEBSD_13_64", + "FREEBSD_14", + "FREEBSD_14_64", "FREEBSD_64", "GENERIC_LINUX", "MANDRAKE", @@ -1496,6 +1520,8 @@ def prepare_argument_spec(): "OTHER_5X_LINUX", "OTHER_5X_LINUX_64", "OTHER_64", + "OTHER_6X_LINUX", + "OTHER_6X_LINUX_64", "OTHER_LINUX", "OTHER_LINUX_64", "REDHAT", @@ -1512,6 +1538,7 @@ def prepare_argument_spec(): "RHEL_7_64", "RHEL_8_64", "RHEL_9_64", + "ROCKYLINUX_64", "SJDS", "SLES", "SLES_10", @@ -1542,7 +1569,10 @@ def prepare_argument_spec(): "VMKERNEL_6", "VMKERNEL_65", "VMKERNEL_7", + "VMKERNEL_8", "VMWARE_PHOTON_64", + "WINDOWS_11_64", + "WINDOWS_12_64", "WINDOWS_7", "WINDOWS_7_64", "WINDOWS_7_SERVER_64", @@ -1555,6 +1585,7 @@ def prepare_argument_spec(): "WINDOWS_HYPERV", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2021", + "WINDOWS_SERVER_2025", "WIN_2000_ADV_SERV", "WIN_2000_PRO", "WIN_2000_SERV", @@ -1600,6 +1631,8 @@ def prepare_argument_spec(): "VMX_17", "VMX_18", "VMX_19", + "VMX_20", + "VMX_21", ], } argument_spec["memory"] = {"type": "dict"} @@ -1669,6 +1702,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -1685,6 +1719,7 @@ async def entry_point(module, session): async def _clone(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["vm"] comp_func = None @@ -1757,6 +1792,7 @@ async def lookup_with_filters(params, session, url): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["vm"] comp_func = None @@ -1847,6 +1883,7 @@ async def _delete(params, session): async def _instant_clone(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["vm"] comp_func = None @@ -1996,5 +2033,9 @@ async def _unregister(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_customization.py b/plugins/modules/vcenter_vm_guest_customization.py index 66a139f2f..539f1ec5d 100644 --- a/plugins/modules/vcenter_vm_guest_customization.py +++ b/plugins/modules/vcenter_vm_guest_customization.py @@ -67,7 +67,7 @@ - If unset, time zone is not modified inside guest operating system. - ' - script_text (string): The script to run before and after Linux guest customization.' - - ' The max size of the script is 1500 bytes. As long as the script (shell, + - ' The max size of the script is 65536 bytes. As long as the script (shell, perl, python...) has the right "#!" in the header, it is supported. The caller should not assume any environment variables when the script is run. ' @@ -129,7 +129,13 @@ May be empty if there are no network adapters, else should match number of network adapters configured for the VM. This parameter is mandatory. - 'Valid attributes are:' - - ' - C(mac_address) (str): The MAC address of a network adapter being customized.' + - ' - C(mac_address) (str): The MAC address of a network adapter being customized. ' + - ' In vSphere 7.0 series, the MAC addresses must be specified in the ascending + order of pciSlotNumber, otherwise a MAC address mismatch error will be + reported. For further details, see the https://kb.vmware.com/s/article/87648 ' + - '' + - '' + - '' - If unset, the customization process maps the the settings from the list of I(i_p_settings) in the CustomizationSpec.interfaces to the virtual machine's network adapters, in PCI slot order. The first virtual network @@ -212,7 +218,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -244,7 +250,6 @@ dns_servers: - 1.1.1.1 """ - RETURN = r""" # content generated by the update_return_section callback# task: Customize the VM value: @@ -254,6 +259,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": { @@ -371,6 +377,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -424,5 +431,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_filesystem_directories.py b/plugins/modules/vcenter_vm_guest_filesystem_directories.py index 9fb6ee330..683fe23d2 100644 --- a/plugins/modules/vcenter_vm_guest_filesystem_directories.py +++ b/plugins/modules/vcenter_vm_guest_filesystem_directories.py @@ -143,7 +143,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -197,10 +197,10 @@ user_name: root password: root """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "move": { @@ -353,6 +353,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -369,6 +370,7 @@ async def entry_point(module, session): async def _create(params, session): + uniquity_keys = [] payload = prepare_payload(params, PAYLOAD_FORMAT["create"]) @@ -482,5 +484,9 @@ async def _move(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_identity_info.py b/plugins/modules/vcenter_vm_guest_identity_info.py index 2fd8b2141..00fe5a24f 100644 --- a/plugins/modules/vcenter_vm_guest_identity_info.py +++ b/plugins/modules/vcenter_vm_guest_identity_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -91,7 +91,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest identity information value: @@ -108,6 +107,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -231,5 +231,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_localfilesystem_info.py b/plugins/modules/vcenter_vm_guest_localfilesystem_info.py index a95254c33..6bea9c5f2 100644 --- a/plugins/modules/vcenter_vm_guest_localfilesystem_info.py +++ b/plugins/modules/vcenter_vm_guest_localfilesystem_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -96,7 +96,6 @@ retries: 60 delay: 5 """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest filesystem information value: @@ -110,6 +109,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -233,5 +233,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_networking_info.py b/plugins/modules/vcenter_vm_guest_networking_info.py index 320629306..9205b1a5a 100644 --- a/plugins/modules/vcenter_vm_guest_networking_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -93,7 +93,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest networking information value: @@ -111,6 +110,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -234,5 +234,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py b/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py index 7f7c56eb7..918ecd099 100644 --- a/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -93,7 +93,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest network interfaces information value: @@ -107,6 +106,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -230,5 +230,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_networking_routes_info.py b/plugins/modules/vcenter_vm_guest_networking_routes_info.py index 2133a89b4..497cf3802 100644 --- a/plugins/modules/vcenter_vm_guest_networking_routes_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_routes_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -92,7 +92,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest network routes information value: @@ -102,6 +101,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "list": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -224,5 +224,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_operations_info.py b/plugins/modules/vcenter_vm_guest_operations_info.py index 75651456b..c185737ad 100644 --- a/plugins/modules/vcenter_vm_guest_operations_info.py +++ b/plugins/modules/vcenter_vm_guest_operations_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.0.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -76,10 +76,10 @@ EXAMPLES = r""" """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -203,5 +203,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_power.py b/plugins/modules/vcenter_vm_guest_power.py index 9487a2004..6b1711c30 100644 --- a/plugins/modules/vcenter_vm_guest_power.py +++ b/plugins/modules/vcenter_vm_guest_power.py @@ -77,7 +77,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -128,7 +128,6 @@ state: shutdown vm: '{{ my_vm.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Shut down the VM value: @@ -138,11 +137,12 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "reboot": {"query": {}, "body": {}, "path": {"vm": "vm"}}, - "shutdown": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "standby": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "shutdown": {"query": {}, "body": {}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -250,6 +250,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -349,5 +350,9 @@ async def _standby(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_guest_power_info.py b/plugins/modules/vcenter_vm_guest_power_info.py index e6e1a8352..6093fdbef 100644 --- a/plugins/modules/vcenter_vm_guest_power_info.py +++ b/plugins/modules/vcenter_vm_guest_power_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -112,7 +112,6 @@ vmware.vmware_rest.vcenter_vm_guest_power_info: vm: '{{ my_vm.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Read the power status of the VM value: @@ -124,6 +123,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -247,5 +247,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware.py b/plugins/modules/vcenter_vm_hardware.py index 81ace5eba..3741dcc00 100644 --- a/plugins/modules/vcenter_vm_hardware.py +++ b/plugins/modules/vcenter_vm_hardware.py @@ -54,6 +54,8 @@ - VMX_17 - VMX_18 - VMX_19 + - VMX_20 + - VMX_21 description: - The I(version) enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual @@ -114,6 +116,8 @@ - VMX_17 - VMX_18 - VMX_19 + - VMX_20 + - VMX_21 description: - The I(version) enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual @@ -128,7 +132,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -145,7 +149,6 @@ vm: "{{ lookup('vmware.vmware_rest.vm_moid', '/my_dc/vm/test_vm1') }}" register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Upgrade the VM hardware version id: @@ -160,8 +163,10 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "upgrade": {"query": {}, "body": {"version": "version"}, "path": {"vm": "vm"}}, "update": { "query": {}, "body": { @@ -170,7 +175,6 @@ }, "path": {"vm": "vm"}, }, - "upgrade": {"query": {}, "body": {"version": "version"}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -261,6 +265,8 @@ def prepare_argument_spec(): "VMX_17", "VMX_18", "VMX_19", + "VMX_20", + "VMX_21", ], } argument_spec["version"] = { @@ -282,6 +288,8 @@ def prepare_argument_spec(): "VMX_17", "VMX_18", "VMX_19", + "VMX_20", + "VMX_21", ], } argument_spec["vm"] = {"required": True, "type": "str"} @@ -324,6 +332,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -418,5 +427,9 @@ async def _upgrade(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_adapter_sata.py b/plugins/modules/vcenter_vm_hardware_adapter_sata.py index 854ab20b5..35b926be7 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_sata.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_sata.py @@ -103,7 +103,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -136,7 +136,6 @@ pci_slot_number: 34 state: absent """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a SATA adapter at PCI slot 34 id: @@ -155,6 +154,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "create": { @@ -276,6 +276,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -292,6 +293,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["adapter"] comp_func = None @@ -389,5 +391,9 @@ async def _delete(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py b/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py index 5836cfa0f..dfd9b48a0 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -106,7 +106,6 @@ vmware.vmware_rest.vcenter_vm_hardware_adapter_sata_info: vm: '{{ test_vm1_info.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information about a specific controller id: @@ -125,6 +124,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, @@ -276,5 +276,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py index 25521695c..f53ea572d 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py @@ -117,7 +117,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -151,7 +151,6 @@ state: absent register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a SCSI adapter at PCI slot 35 id: @@ -173,13 +172,9 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "update": { - "query": {}, - "body": {"sharing": "sharing"}, - "path": {"adapter": "adapter", "vm": "vm"}, - }, "create": { "query": {}, "body": { @@ -191,6 +186,11 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, + "update": { + "query": {}, + "body": {"sharing": "sharing"}, + "path": {"adapter": "adapter", "vm": "vm"}, + }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -311,6 +311,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -327,6 +328,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["adapter"] comp_func = None @@ -476,5 +478,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py b/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py index ddb324276..19328cefd 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,7 +102,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: List the SCSI adapter of a given VM value: @@ -113,6 +112,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, @@ -264,5 +264,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_boot.py b/plugins/modules/vcenter_vm_hardware_boot.py index afc4d62e1..26e25147f 100644 --- a/plugins/modules/vcenter_vm_hardware_boot.py +++ b/plugins/modules/vcenter_vm_hardware_boot.py @@ -121,7 +121,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -149,7 +149,6 @@ type: EFI register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Change a VM boot parameters id: @@ -164,6 +163,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": { @@ -290,6 +290,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -359,5 +360,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_boot_device.py b/plugins/modules/vcenter_vm_hardware_boot_device.py index fd2ea75b6..827addc17 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_device.py +++ b/plugins/modules/vcenter_vm_hardware_boot_device.py @@ -106,7 +106,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -134,7 +134,6 @@ - type: CDROM register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Set a boot device value: @@ -144,6 +143,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "set": {"query": {}, "body": {"devices": "devices"}, "path": {"vm": "vm"}} @@ -251,6 +251,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -304,5 +305,9 @@ async def _set(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_boot_device_info.py b/plugins/modules/vcenter_vm_hardware_boot_device_info.py index d01e67850..bfd62de57 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_device_info.py +++ b/plugins/modules/vcenter_vm_hardware_boot_device_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -97,7 +97,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information about the boot device value: @@ -108,6 +107,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -231,5 +231,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_boot_info.py b/plugins/modules/vcenter_vm_hardware_boot_info.py index d719b8a7b..e4f5882e5 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_info.py +++ b/plugins/modules/vcenter_vm_hardware_boot_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -90,7 +90,6 @@ vmware.vmware_rest.vcenter_vm_hardware_boot_info: vm: '{{ test_vm1_info.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve the boot information from the VM value: @@ -105,6 +104,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -228,5 +228,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_cdrom.py b/plugins/modules/vcenter_vm_hardware_cdrom.py index b3185f1c1..7cbbcbe44 100644 --- a/plugins/modules/vcenter_vm_hardware_cdrom.py +++ b/plugins/modules/vcenter_vm_hardware_cdrom.py @@ -162,7 +162,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -196,7 +196,6 @@ type: ISO_FILE register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Attach an ISO image to a guest VM id: @@ -222,32 +221,33 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "connect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, "disconnect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, - "update": { + "connect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, + "create": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", + "ide": "ide", + "sata": "sata", "start_connected": "start_connected", + "type": "type", }, - "path": {"cdrom": "cdrom", "vm": "vm"}, + "path": {"vm": "vm"}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, + "update": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", - "ide": "ide", - "sata": "sata", "start_connected": "start_connected", - "type": "type", }, - "path": {"vm": "vm"}, + "path": {"cdrom": "cdrom", "vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -364,6 +364,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -407,6 +408,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["cdrom"] comp_func = None @@ -579,5 +581,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_cdrom_info.py b/plugins/modules/vcenter_vm_hardware_cdrom_info.py index b76fd9afa..bb50e8c4e 100644 --- a/plugins/modules/vcenter_vm_hardware_cdrom_info.py +++ b/plugins/modules/vcenter_vm_hardware_cdrom_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,7 +102,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: List the cdrom devices on the guest value: @@ -112,6 +111,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, @@ -262,5 +262,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_cpu.py b/plugins/modules/vcenter_vm_hardware_cpu.py index 3d3a56b4a..7bc303fa8 100644 --- a/plugins/modules/vcenter_vm_hardware_cpu.py +++ b/plugins/modules/vcenter_vm_hardware_cpu.py @@ -107,7 +107,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -134,7 +134,6 @@ count: 1 register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Dedicate one core to the VM id: @@ -153,6 +152,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": { @@ -273,6 +273,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -342,5 +343,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_cpu_info.py b/plugins/modules/vcenter_vm_hardware_cpu_info.py index 01786eecd..0fd277351 100644 --- a/plugins/modules/vcenter_vm_hardware_cpu_info.py +++ b/plugins/modules/vcenter_vm_hardware_cpu_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -91,7 +91,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve the CPU information from the VM value: @@ -105,6 +104,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -228,5 +228,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_disk.py b/plugins/modules/vcenter_vm_hardware_disk.py index f9389925b..50a05d610 100644 --- a/plugins/modules/vcenter_vm_hardware_disk.py +++ b/plugins/modules/vcenter_vm_hardware_disk.py @@ -78,7 +78,7 @@ - ' - policy (string): Identifier of the storage policy which should be associated with the VMDK file.' - 'When clients pass a value of this structure as a parameter, the field must - be the id of a storage policy resource. ' + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). ' type: dict nvme: description: @@ -194,7 +194,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -230,7 +230,6 @@ state: absent register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a new disk id: @@ -254,13 +253,9 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "update": { - "query": {}, - "body": {"backing": "backing"}, - "path": {"disk": "disk", "vm": "vm"}, - }, "create": { "query": {}, "body": { @@ -275,6 +270,11 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"disk": "disk", "vm": "vm"}}, + "update": { + "query": {}, + "body": {"backing": "backing"}, + "path": {"disk": "disk", "vm": "vm"}, + }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -392,6 +392,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -408,6 +409,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["disk"] comp_func = None @@ -553,5 +555,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_disk_info.py b/plugins/modules/vcenter_vm_hardware_disk_info.py index dbfe3ba9b..50915235c 100644 --- a/plugins/modules/vcenter_vm_hardware_disk_info.py +++ b/plugins/modules/vcenter_vm_hardware_disk_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -108,7 +108,6 @@ label: Hard disk 1 register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve disk information using the label id: @@ -132,6 +131,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"disk": "disk", "vm": "vm"}}, @@ -282,5 +282,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_ethernet.py b/plugins/modules/vcenter_vm_hardware_ethernet.py index 758e406fc..6197d3710 100644 --- a/plugins/modules/vcenter_vm_hardware_ethernet.py +++ b/plugins/modules/vcenter_vm_hardware_ethernet.py @@ -188,7 +188,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -272,7 +272,6 @@ network: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/network/second_vswitch') }}" register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Attach a VM to a dvswitch id: @@ -303,39 +302,40 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "connect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, "disconnect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, - "update": { + "connect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, + "create": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "mac_address": "mac_address", "mac_type": "mac_type", + "pci_slot_number": "pci_slot_number", "start_connected": "start_connected", + "type": "type", "upt_compatibility_enabled": "upt_compatibility_enabled", "wake_on_lan_enabled": "wake_on_lan_enabled", }, - "path": {"nic": "nic", "vm": "vm"}, + "path": {"vm": "vm"}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, + "update": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "mac_address": "mac_address", "mac_type": "mac_type", - "pci_slot_number": "pci_slot_number", "start_connected": "start_connected", - "type": "type", "upt_compatibility_enabled": "upt_compatibility_enabled", "wake_on_lan_enabled": "wake_on_lan_enabled", }, - "path": {"vm": "vm"}, + "path": {"nic": "nic", "vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -461,6 +461,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -504,6 +505,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["nic"] comp_func = None @@ -676,5 +678,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_ethernet_info.py b/plugins/modules/vcenter_vm_hardware_ethernet_info.py index c474552f8..9621c27b2 100644 --- a/plugins/modules/vcenter_vm_hardware_ethernet_info.py +++ b/plugins/modules/vcenter_vm_hardware_ethernet_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -107,7 +107,6 @@ vm: '{{ test_vm1_info.id }}' register: vm_nic """ - RETURN = r""" # content generated by the update_return_section callback# task: Collect a list of the NIC for a given VM value: @@ -117,6 +116,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, @@ -267,5 +267,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_floppy.py b/plugins/modules/vcenter_vm_hardware_floppy.py index 41d9f6177..e99981428 100644 --- a/plugins/modules/vcenter_vm_hardware_floppy.py +++ b/plugins/modules/vcenter_vm_hardware_floppy.py @@ -118,7 +118,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -152,7 +152,6 @@ state: absent register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Add a floppy disk drive id: @@ -175,29 +174,30 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "connect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, "disconnect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, - "update": { + "connect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, + "create": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "start_connected": "start_connected", }, - "path": {"floppy": "floppy", "vm": "vm"}, + "path": {"vm": "vm"}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, + "update": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "start_connected": "start_connected", }, - "path": {"vm": "vm"}, + "path": {"floppy": "floppy", "vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -311,6 +311,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -354,6 +355,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["floppy"] comp_func = None @@ -526,5 +528,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_floppy_info.py b/plugins/modules/vcenter_vm_hardware_floppy_info.py index b5833071a..f87b93090 100644 --- a/plugins/modules/vcenter_vm_hardware_floppy_info.py +++ b/plugins/modules/vcenter_vm_hardware_floppy_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,7 +102,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: List the floppy disk drives value: @@ -112,6 +111,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, @@ -262,5 +262,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_info.py b/plugins/modules/vcenter_vm_hardware_info.py index 54fb4e5b6..1a0872c52 100644 --- a/plugins/modules/vcenter_vm_hardware_info.py +++ b/plugins/modules/vcenter_vm_hardware_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -86,7 +86,6 @@ vm: '{{ search_result.value[0].vm }}' register: my_vm1_hardware_info """ - RETURN = r""" # content generated by the update_return_section callback# task: Collect the hardware information value: @@ -99,6 +98,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -222,5 +222,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_memory.py b/plugins/modules/vcenter_vm_hardware_memory.py index ce91b03db..a519aa2ca 100644 --- a/plugins/modules/vcenter_vm_hardware_memory.py +++ b/plugins/modules/vcenter_vm_hardware_memory.py @@ -97,7 +97,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -124,7 +124,6 @@ size_MiB: 1080 register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Increase the memory of a VM id: @@ -139,6 +138,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": { @@ -252,6 +252,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -321,5 +322,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_memory_info.py b/plugins/modules/vcenter_vm_hardware_memory_info.py index 0087744db..95459ab6d 100644 --- a/plugins/modules/vcenter_vm_hardware_memory_info.py +++ b/plugins/modules/vcenter_vm_hardware_memory_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -91,7 +91,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve the memory information from the VM value: @@ -103,6 +102,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -226,5 +226,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_parallel.py b/plugins/modules/vcenter_vm_hardware_parallel.py index ec7076e2c..91207349c 100644 --- a/plugins/modules/vcenter_vm_hardware_parallel.py +++ b/plugins/modules/vcenter_vm_hardware_parallel.py @@ -117,7 +117,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -144,7 +144,6 @@ allow_guest_control: true register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Turn on guest control on the parallel port id: @@ -167,29 +166,30 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, - "update": { + "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "create": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "start_connected": "start_connected", }, - "path": {"port": "port", "vm": "vm"}, + "path": {"vm": "vm"}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "update": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", "backing": "backing", "start_connected": "start_connected", }, - "path": {"vm": "vm"}, + "path": {"port": "port", "vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -303,6 +303,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -346,6 +347,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["port"] comp_func = None @@ -518,5 +520,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_parallel_info.py b/plugins/modules/vcenter_vm_hardware_parallel_info.py index d2d2f7f37..204a8e8a1 100644 --- a/plugins/modules/vcenter_vm_hardware_parallel_info.py +++ b/plugins/modules/vcenter_vm_hardware_parallel_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,7 +102,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrieve the parallel port information from the VM value: @@ -112,6 +111,7 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, @@ -262,5 +262,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_serial.py b/plugins/modules/vcenter_vm_hardware_serial.py index 3da5807bd..6e8b44c16 100644 --- a/plugins/modules/vcenter_vm_hardware_serial.py +++ b/plugins/modules/vcenter_vm_hardware_serial.py @@ -156,7 +156,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -218,7 +218,6 @@ state: absent register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Create an existing serial port (label) id: @@ -242,11 +241,12 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, - "update": { + "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "create": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", @@ -254,9 +254,10 @@ "start_connected": "start_connected", "yield_on_poll": "yield_on_poll", }, - "path": {"port": "port", "vm": "vm"}, + "path": {"vm": "vm"}, }, - "create": { + "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "update": { "query": {}, "body": { "allow_guest_control": "allow_guest_control", @@ -264,9 +265,8 @@ "start_connected": "start_connected", "yield_on_poll": "yield_on_poll", }, - "path": {"vm": "vm"}, + "path": {"port": "port", "vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -381,6 +381,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -424,6 +425,7 @@ async def _connect(params, session): async def _create(params, session): + lookup_url = per_id_url = build_url(params) uniquity_keys = ["port"] comp_func = None @@ -596,5 +598,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_hardware_serial_info.py b/plugins/modules/vcenter_vm_hardware_serial_info.py index 1f7357f6d..1587b135f 100644 --- a/plugins/modules/vcenter_vm_hardware_serial_info.py +++ b/plugins/modules/vcenter_vm_hardware_serial_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -108,7 +108,6 @@ label: Serial port 1 register: serial_port_1 """ - RETURN = r""" # content generated by the update_return_section callback# task: Get an existing serial port (label) id: @@ -132,6 +131,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, @@ -282,5 +282,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_info.py b/plugins/modules/vcenter_vm_info.py index 145e169f2..0e12c5969 100644 --- a/plugins/modules/vcenter_vm_info.py +++ b/plugins/modules/vcenter_vm_info.py @@ -137,7 +137,7 @@ type: list author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -206,7 +206,6 @@ vm: '{{ search_result.value[0].vm }}' register: test_vm1_info """ - RETURN = r""" # content generated by the update_return_section callback# task: Wait until my VM is off id: @@ -310,6 +309,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}}, @@ -487,5 +487,9 @@ async def entry_point(module, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_libraryitem_info.py b/plugins/modules/vcenter_vm_libraryitem_info.py index 2b3f20537..bd8943625 100644 --- a/plugins/modules/vcenter_vm_libraryitem_info.py +++ b/plugins/modules/vcenter_vm_libraryitem_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -93,7 +93,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get the information from the library value: @@ -103,6 +102,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -226,5 +226,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_power.py b/plugins/modules/vcenter_vm_power.py index 20a095b94..04a7d4ec3 100644 --- a/plugins/modules/vcenter_vm_power.py +++ b/plugins/modules/vcenter_vm_power.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -149,7 +149,6 @@ state: start vm: '{{ test_vm1_info.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Turn off the VM msg: @@ -227,12 +226,13 @@ type: list """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "reset": {"query": {}, "body": {}, "path": {"vm": "vm"}}, - "start": {"query": {}, "body": {}, "path": {"vm": "vm"}}, - "stop": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "suspend": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "stop": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "start": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "reset": {"query": {}, "body": {}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback @@ -338,6 +338,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -456,5 +457,9 @@ async def _suspend(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_power_info.py b/plugins/modules/vcenter_vm_power_info.py index 2e05118f9..9586bb36e 100644 --- a/plugins/modules/vcenter_vm_power_info.py +++ b/plugins/modules/vcenter_vm_power_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -91,7 +91,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get guest power information value: @@ -102,6 +101,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -223,5 +223,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_storage_policy.py b/plugins/modules/vcenter_vm_storage_policy.py index 97c129c48..058e3bd8b 100644 --- a/plugins/modules/vcenter_vm_storage_policy.py +++ b/plugins/modules/vcenter_vm_storage_policy.py @@ -95,13 +95,13 @@ - This field is optional and it is only relevant when the value of I(type) is USE_SPECIFIED_POLICY. - When clients pass a value of this structure as a parameter, the field must - be the id of a storage policy resource. + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). (['present']) required: true type: dict author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -134,7 +134,6 @@ disks: '{{ vm_disk_policy }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Adjust VM storage policy id: @@ -149,6 +148,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "update": { @@ -262,6 +262,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -331,5 +332,9 @@ async def _update(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_storage_policy_compliance.py b/plugins/modules/vcenter_vm_storage_policy_compliance.py index 9ef117d64..76883b435 100644 --- a/plugins/modules/vcenter_vm_storage_policy_compliance.py +++ b/plugins/modules/vcenter_vm_storage_policy_compliance.py @@ -89,7 +89,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -100,10 +100,10 @@ EXAMPLES = r""" """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "check": { @@ -216,6 +216,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -261,5 +262,9 @@ async def _check(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_storage_policy_compliance_info.py b/plugins/modules/vcenter_vm_storage_policy_compliance_info.py index 70d371fcd..f2978cb31 100644 --- a/plugins/modules/vcenter_vm_storage_policy_compliance_info.py +++ b/plugins/modules/vcenter_vm_storage_policy_compliance_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -93,7 +93,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get VM storage policy compliance information value: @@ -110,6 +109,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -233,5 +233,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_storage_policy_info.py b/plugins/modules/vcenter_vm_storage_policy_info.py index 131fa709d..3bbebd983 100644 --- a/plugins/modules/vcenter_vm_storage_policy_info.py +++ b/plugins/modules/vcenter_vm_storage_policy_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -93,7 +93,6 @@ vm: '{{ test_vm1_info.id }}' register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Get VM storage policy value: @@ -104,6 +103,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -227,5 +227,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_tools.py b/plugins/modules/vcenter_vm_tools.py index cc7b59b25..ef0e034d3 100644 --- a/plugins/modules/vcenter_vm_tools.py +++ b/plugins/modules/vcenter_vm_tools.py @@ -87,7 +87,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -125,7 +125,6 @@ upgrade_policy: MANUAL register: _result """ - RETURN = r""" # content generated by the update_return_section callback# task: Retrive vm-tools information id: @@ -148,16 +147,17 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "update": { + "upgrade": { "query": {}, - "body": {"upgrade_policy": "upgrade_policy"}, + "body": {"command_line_options": "command_line_options"}, "path": {"vm": "vm"}, }, - "upgrade": { + "update": { "query": {}, - "body": {"command_line_options": "command_line_options"}, + "body": {"upgrade_policy": "upgrade_policy"}, "path": {"vm": "vm"}, }, } # pylint: disable=line-too-long @@ -270,6 +270,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -362,5 +363,9 @@ async def _upgrade(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_tools_info.py b/plugins/modules/vcenter_vm_tools_info.py index f1a2f202b..1da146e94 100644 --- a/plugins/modules/vcenter_vm_tools_info.py +++ b/plugins/modules/vcenter_vm_tools_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -149,7 +149,6 @@ retries: 60 delay: 5 """ - RETURN = r""" # content generated by the update_return_section callback# task: Wait until my VM is ready value: @@ -167,6 +166,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -288,5 +288,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_tools_installer.py b/plugins/modules/vcenter_vm_tools_installer.py index 376ce6e31..3e47a26ab 100644 --- a/plugins/modules/vcenter_vm_tools_installer.py +++ b/plugins/modules/vcenter_vm_tools_installer.py @@ -81,7 +81,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -129,7 +129,6 @@ vm: '{{ my_vm.id }}' state: connect """ - RETURN = r""" # content generated by the update_return_section callback# task: Update the vm-tools value: @@ -139,6 +138,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "connect": {"query": {}, "body": {}, "path": {"vm": "vm"}}, @@ -250,6 +250,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -322,5 +323,9 @@ async def _disconnect(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vm_tools_installer_info.py b/plugins/modules/vcenter_vm_tools_installer_info.py index c88b22c95..d3cd7b664 100644 --- a/plugins/modules/vcenter_vm_tools_installer_info.py +++ b/plugins/modules/vcenter_vm_tools_installer_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 0.1.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -112,7 +112,6 @@ vmware.vmware_rest.vcenter_vm_tools_installer_info: vm: '{{ my_vm.id }}' """ - RETURN = r""" # content generated by the update_return_section callback# task: Get information about the vm-tools value: @@ -123,6 +122,7 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"vm": "vm"}} @@ -246,5 +246,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vmtemplate_libraryitems.py b/plugins/modules/vcenter_vmtemplate_libraryitems.py index 0eb18f625..59b09697d 100644 --- a/plugins/modules/vcenter_vmtemplate_libraryitems.py +++ b/plugins/modules/vcenter_vmtemplate_libraryitems.py @@ -11,28 +11,61 @@ module: vcenter_vmtemplate_libraryitems short_description: Creates a library item in content library from a virtual machine description: Creates a library item in content library from a virtual machine. This - {@term operation} creates a library item in content library whose content is a - virtual machine template created from the source virtual machine, using the supplied - create specification. The virtual machine template is stored in a newly created - library item. + operation creates a library item in content library whose content is a virtual + machine template created from the source virtual machine, using the supplied create + specification. The virtual machine template is stored in a newly created library + item. options: description: description: - Description of the deployed virtual machine. + - If unset, the deployed virtual machine has the same description as the source + library item. type: str disk_storage: description: - - Storage specification for the virtual machine template's disks. + - Storage specification for the deployed virtual machine's disks. + - 'If both I(disk_storage_overrides) and I(disk_storage) are unset, the deployed + virtual machine''s disks are created with the same storage spec as the + corresponding disks in the source virtual machine template contained in + the library item. ' + - ' If I(disk_storage_overrides) is unset and I(disk_storage) is specified, + all of the deployed virtual machine''s disks are created with the storage + spec specified by I(disk_storage). ' + - '' + - ' If I(disk_storage_overrides) is specified and I(disk_storage) is unset, + disks with identifiers that are not in I(disk_storage_overrides) are created + with the same storage spec as the corresponding disks in the source virtual + machine template contained in the library item. ' + - '' + - ' If both I(disk_storage_overrides) and I(disk_storage) are specified, disks + with identifiers that are not in I(disk_storage_overrides) are created + with the storage spec specified by I(disk_storage).' - 'Valid attributes are:' - ' - C(datastore) (str): Identifier for the datastore associated the deployed - virtual machine''s disk. ([''deploy'', ''present''])' + virtual machine''s disk.' + - 'This field is currently required. ' + - ' If I(storage_policy) is also specified and is incompatible with the I(datastore), + then the disk will be flagged as being out of compliance with the specified + storage policy.' + - '' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_datastore_info). + (['deploy', 'present']) - ' - C(storage_policy) (dict): Storage policy for the deployed virtual machine''s - disk. ([''deploy'', ''present''])' + disk.' + - If unset, I(datastore) must be specified and the deployed virtual machine's + disk is created with the default storage policy associated with the I(datastore). + (['deploy', 'present']) - ' - Accepted keys:' - ' - type (string): Policy type for a virtual machine template''s disk.' - 'Accepted value for this field:' - ' - C(USE_SPECIFIED_POLICY)' - ' - policy (string): Identifier for the storage policy to use.' + - This field is optional and it is only relevant when the value of I(type) + is USE_SPECIFIED_POLICY. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). ' type: dict disk_storage_overrides: description: @@ -40,38 +73,93 @@ This is specified as a mapping between disk identifiers in the source virtual machine template contained in the library item and their storage specifications. + - 'If both I(disk_storage_overrides) and I(disk_storage) are unset, the deployed + virtual machine''s disks are created with the same storage spec as the + corresponding disks in the source virtual machine template contained in + the library item. ' + - ' If I(disk_storage_overrides) is unset and I(disk_storage) is specified, + all of the deployed virtual machine''s disks are created with the storage + spec specified by I(disk_storage). ' + - '' + - ' If I(disk_storage_overrides) is specified and I(disk_storage) is unset, + disks with identifiers that are not in I(disk_storage_overrides) are created + with the same storage spec as the corresponding disks in the source virtual + machine template contained in the library item. ' + - '' + - ' If both I(disk_storage_overrides) and I(disk_storage) are specified, disks + with identifiers that are not in I(disk_storage_overrides) are created + with the storage spec specified by I(disk_storage). ' + - '' + - 'When clients pass a value of this structure as a parameter, the key in + the field map must be the id of a resource returned by M(vmware.vmware_rest.vcenter_vm_hardware_disk). ' type: dict guest_customization: description: - Guest customization spec to apply to the deployed virtual machine. + - If unset, the guest operating system is not customized after deployment. - 'Valid attributes are:' - - ' - C(name) (str): Name of the customization specification. ([''deploy''])' + - ' - C(name) (str): Name of the customization specification.' + - If unset, no guest customization is performed. (['deploy']) type: dict hardware_customization: description: - Hardware customization spec which specifies updates to the deployed virtual machine. + - If unset, the deployed virtual machine has the same hardware configuration + as the source virtual machine template contained in the library item. - 'Valid attributes are:' - - ' - C(nics) (dict): Map of Ethernet network adapters to update. ([''deploy''])' + - ' - C(nics) (dict): Map of Ethernet network adapters to update.' + - If unset, all Ethernet adapters will remain connected to the same network + as they were in the source virtual machine template. An Ethernet adapter + with a MacAddressType of MANUAL will not change. An Ethernet adapter with + a MacAddressType of GENERATED or ASSIGNED will receive a new address. + - When clients pass a value of this structure as a parameter, the key in the + field map must be the id of a resource returned by M(vmware.vmware_rest.vcenter_vm_hardware_ethernet). + (['deploy']) - ' - C(disks_to_remove) (list): Idenfiers of disks to remove from the deployed - virtual machine. ([''deploy''])' + virtual machine.' + - If unset, all disks will be copied. + - When clients pass a value of this structure as a parameter, the field must + contain the id of resources returned by M(vmware.vmware_rest.vcenter_vm_hardware_disk). + (['deploy']) - ' - C(disks_to_update) (dict): Disk update specification for individual - disks in the deployed virtual machine. ([''deploy''])' + disks in the deployed virtual machine.' + - If unset, disks in the deployed virtual machine will have the same settings + as the corresponding disks in the source virtual machine template contained + in the library item. + - When clients pass a value of this structure as a parameter, the key in the + field map must be the id of a resource returned by M(vmware.vmware_rest.vcenter_vm_hardware_disk). + (['deploy']) - ' - C(cpu_update) (dict): CPU update specification for the deployed virtual - machine. ([''deploy''])' + machine.' + - If {@term.unset}, the deployed virtual machine has the same CPU settings + as the source virtual machine template contained in the library item. + (['deploy']) - ' - Accepted keys:' - ' - num_cpus (integer): Number of virtual processors in the deployed virtual machine.' + - If {@term.unset}, the deployed virtual machine has the same CPU count as + the source virtual machine template contained in the library item. - ' - num_cores_per_socket (integer): Number of cores among which to distribute CPUs in the deployed virtual machine.' + - If {@term.unset}, the deployed virtual machine has the same number of cores + per socket as the source virtual machine template contained in the library + item. - ' - C(memory_update) (dict): Memory update specification for the deployed - virtual machine. ([''deploy''])' + virtual machine.' + - If {@term.unset}, the deployed virtual machine has the same memory settings + as the source virtual machine template contained in the library item. + (['deploy']) - ' - Accepted keys:' - ' - memory (integer): Size of a virtual machine''s memory in MB.' + - If {@term.unset}, the deployed virtual machine has the same memory size + as the source virtual machine template. type: dict library: description: - Identifier of the library in which the new library item should be created. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.content_library_info). Required with I(state=['present']) type: str name: @@ -81,25 +169,59 @@ type: str placement: description: - - Information used to place the virtual machine template. + - Information used to place the deployed virtual machine. + - 'This field is currently required. In the future, if this field is unset, + the system will use the values from the source virtual machine template + contained in the library item. ' + - ' If specified, each field will be used for placement. If the fields result + in disjoint placement, the operation will fail. If the fields along with + the placement values of the source virtual machine template result in + disjoint placement, the operation will fail.' - 'Valid attributes are:' - ' - C(folder) (str): Virtual machine folder into which the deployed virtual - machine should be placed. ([''deploy'', ''present''])' + machine should be placed.' + - 'This field is currently required. ' + - ' If unset, the system will attempt to choose a suitable folder for the + virtual machine; if a folder cannot be chosen, the virtual machine deployment + operation will fail. ' + - '' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_folder_info). + (['deploy', 'present']) - ' - C(resource_pool) (str): Resource pool into which the deployed virtual - machine should be placed. ([''deploy'', ''present''])' + machine should be placed.' + - If unset, the system will attempt to choose a suitable resource pool for + the virtual machine; if a resource pool cannot be chosen, the virtual + machine deployment operation will fail. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_resourcepool_info). + (['deploy', 'present']) - ' - C(host) (str): Host onto which the virtual machine should be placed. - If C(#host) and C(#resource_pool) are both specified, C(#resource_pool) - must belong to C(#host). If C(#host) and C(#cluster) are both specified, - C(#host) must be a member of C(#cluster). ([''deploy'', ''present''])' + If I(host) and I(resource_pool) are both specified, I(resource_pool) must + belong to I(host). If I(host) and I(cluster) are both specified, I(host) + must be a member of I(cluster).' + - This field may be unset if I(resource_pool) or I(cluster) is specified. + If unset, the system will attempt to choose a suitable host for the virtual + machine; if a host cannot be chosen, the virtual machine deployment operation + will fail. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_host_info). + (['deploy', 'present']) - ' - C(cluster) (str): Cluster onto which the deployed virtual machine should - be placed. If C(#cluster) and C(#resource_pool) are both specified, C(#resource_pool) - must belong to C(#cluster). If C(#cluster) and C(#host) are both specified, - C(#host) must be a member of C(#cluster). ([''deploy'', ''present''])' + be placed. If I(cluster) and I(resource_pool) are both specified, I(resource_pool) + must belong to I(cluster). If I(cluster) and I(host) are both specified, + I(host) must be a member of I(cluster).' + - If I(resource_pool) or I(host) is specified, it is recommended that this + field be unset. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_cluster_info). + (['deploy', 'present']) type: dict powered_on: description: - Specifies whether the deployed virtual machine should be powered on after deployment. + - If unset, the virtual machine will not be powered on after deployment. type: bool session_timeout: description: @@ -112,6 +234,8 @@ source_vm: description: - Identifier of the source virtual machine to create the library item from. + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_vm_info). Required with I(state=['present']) type: str state: @@ -124,7 +248,9 @@ template_library_item: description: - identifier of the content library item containing the source virtual machine - template to be deployed. Required with I(state=['deploy']) + template to be deployed. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_item_info). + Required with I(state=['deploy']) type: str vcenter_hostname: description: @@ -167,21 +293,39 @@ description: - Storage location for the virtual machine template's configuration and log files. + - If unset, the virtual machine template's configuration and log files are + placed on the default storage backing associated with the library specified + by I() - 'Valid attributes are:' - ' - C(datastore) (str): Identifier of the datastore for the deployed virtual - machine''s configuration and log files. ([''deploy'', ''present''])' + machine''s configuration and log files.' + - 'This field is currently required. ' + - ' When I(storage_policy) is also specified and is incompatible with the + I(datastore), then the deployed virtual machine will be flagged as being + out of compliance with the specified storage policy.' + - '' + - When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_datastore_info). + (['deploy', 'present']) - ' - C(storage_policy) (dict): Storage policy for the deployed virtual machine''s - configuration and log files. ([''deploy'', ''present''])' + configuration and log files.' + - If unset, I(datastore) must be specified and the deployed virtual machine's + configuration and log files are created with the default storage policy + associated with the I(datastore). (['deploy', 'present']) - ' - Accepted keys:' - ' - type (string): Policy type for the virtual machine template''s configuration and log files.' - 'Accepted value for this field:' - ' - C(USE_SPECIFIED_POLICY)' - ' - policy (string): Identifier for the storage policy to use.' + - This field is optional and it is only relevant when the value of I(type) + is USE_SPECIFIED_POLICY. + - 'When clients pass a value of this structure as a parameter, the field must + be the id of a resource returned by M(vmware.vmware_rest.vcenter_storage_policies_info). ' type: dict author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.2.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -269,7 +413,6 @@ state: deploy register: my_new_vm """ - RETURN = r""" # content generated by the update_return_section callback# task: Create a VM template on the library id: @@ -307,36 +450,37 @@ type: dict """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "deploy": { + "create": { "query": {}, "body": { "description": "description", "disk_storage": "disk_storage", "disk_storage_overrides": "disk_storage_overrides", - "guest_customization": "guest_customization", - "hardware_customization": "hardware_customization", + "library": "library", "name": "name", "placement": "placement", - "powered_on": "powered_on", + "source_vm": "source_vm", "vm_home_storage": "vm_home_storage", }, - "path": {"template_library_item": "template_library_item"}, + "path": {}, }, - "create": { + "deploy": { "query": {}, "body": { "description": "description", "disk_storage": "disk_storage", "disk_storage_overrides": "disk_storage_overrides", - "library": "library", + "guest_customization": "guest_customization", + "hardware_customization": "hardware_customization", "name": "name", "placement": "placement", - "source_vm": "source_vm", + "powered_on": "powered_on", "vm_home_storage": "vm_home_storage", }, - "path": {}, + "path": {"template_library_item": "template_library_item"}, }, } # pylint: disable=line-too-long @@ -457,6 +601,7 @@ def build_url(params): async def entry_point(module, session): + if module.params["state"] == "present": if "_create" in globals(): operation = "create" @@ -473,6 +618,7 @@ async def entry_point(module, session): async def _create(params, session): + lookup_url = "https://{vcenter_hostname}/api/content/library/item?library_id={library}".format( **params ) @@ -575,5 +721,9 @@ async def _deploy(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/plugins/modules/vcenter_vmtemplate_libraryitems_info.py b/plugins/modules/vcenter_vmtemplate_libraryitems_info.py index b5f78c3d1..4f93875e2 100644 --- a/plugins/modules/vcenter_vmtemplate_libraryitems_info.py +++ b/plugins/modules/vcenter_vmtemplate_libraryitems_info.py @@ -10,9 +10,9 @@ DOCUMENTATION = r""" module: vcenter_vmtemplate_libraryitems_info short_description: Returns information about a virtual machine template contained - in the library item specified by {@param.name templateLibraryItem} + in the library item specified by templateLibraryItem description: Returns information about a virtual machine template contained in the - library item specified by {@param.name templateLibraryItem} + library item specified by templateLibraryItem options: session_timeout: description: @@ -25,6 +25,7 @@ template_library_item: description: - identifier of the library item containing the virtual machine template. + - The parameter must be the id of a resource returned by M(vmware.vmware_rest.content_library_item_info). Required with I(state=['get']) type: str vcenter_hostname: @@ -66,7 +67,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 2.2.0 +version_added: 1.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -77,10 +78,10 @@ EXAMPLES = r""" """ - RETURN = r""" """ + # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": { @@ -208,5 +209,9 @@ async def _info(params, session): if __name__ == "__main__": import asyncio - current_loop = asyncio.get_event_loop_policy().get_event_loop() - current_loop.run_until_complete(main()) + current_loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(current_loop) + current_loop.run_until_complete(main()) + finally: + current_loop.close() diff --git a/tests/sanity/ignore-2.16.txt b/tests/sanity/ignore-2.16.txt index 9c3aa0c5c..f55cc3e59 100644 --- a/tests/sanity/ignore-2.16.txt +++ b/tests/sanity/ignore-2.16.txt @@ -1,134 +1,2 @@ plugins/modules/vcenter_vm_guest_customization.py pep8!skip plugins/modules/appliance_infraprofile_configs.py pep8!skip -plugins/modules/appliance_access_consolecli_info.py import-3.12!skip -plugins/modules/appliance_access_dcui.py import-3.12!skip -plugins/modules/appliance_access_dcui_info.py import-3.12!skip -plugins/modules/appliance_access_shell.py import-3.12!skip -plugins/modules/appliance_access_shell_info.py import-3.12!skip -plugins/modules/appliance_access_ssh.py import-3.12!skip -plugins/modules/appliance_access_ssh_info.py import-3.12!skip -plugins/modules/appliance_health_applmgmt_info.py import-3.12!skip -plugins/modules/appliance_health_database_info.py import-3.12!skip -plugins/modules/appliance_health_databasestorage_info.py import-3.12!skip -plugins/modules/appliance_health_load_info.py import-3.12!skip -plugins/modules/appliance_health_mem_info.py import-3.12!skip -plugins/modules/appliance_health_softwarepackages_info.py import-3.12!skip -plugins/modules/appliance_health_storage_info.py import-3.12!skip -plugins/modules/appliance_health_swap_info.py import-3.12!skip -plugins/modules/appliance_health_system_info.py import-3.12!skip -plugins/modules/appliance_infraprofile_configs.py import-3.12!skip -plugins/modules/appliance_infraprofile_configs_info.py import-3.12!skip -plugins/modules/appliance_localaccounts_globalpolicy.py import-3.12!skip -plugins/modules/appliance_localaccounts_globalpolicy_info.py import-3.12!skip -plugins/modules/appliance_localaccounts_info.py import-3.12!skip -plugins/modules/appliance_monitoring_info.py import-3.12!skip -plugins/modules/appliance_monitoring_query.py import-3.12!skip -plugins/modules/appliance_networking.py import-3.12!skip -plugins/modules/appliance_networking_dns_domains.py import-3.12!skip -plugins/modules/appliance_networking_dns_domains_info.py import-3.12!skip -plugins/modules/appliance_networking_dns_hostname.py import-3.12!skip -plugins/modules/appliance_networking_dns_hostname_info.py import-3.12!skip -plugins/modules/appliance_networking_dns_servers.py import-3.12!skip -plugins/modules/appliance_networking_dns_servers_info.py import-3.12!skip -plugins/modules/appliance_networking_firewall_inbound.py import-3.12!skip -plugins/modules/appliance_networking_firewall_inbound_info.py import-3.12!skip -plugins/modules/appliance_networking_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv4.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv4_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv6.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv6_info.py import-3.12!skip -plugins/modules/appliance_networking_noproxy.py import-3.12!skip -plugins/modules/appliance_networking_noproxy_info.py import-3.12!skip -plugins/modules/appliance_networking_proxy.py import-3.12!skip -plugins/modules/appliance_networking_proxy_info.py import-3.12!skip -plugins/modules/appliance_ntp.py import-3.12!skip -plugins/modules/appliance_ntp_info.py import-3.12!skip -plugins/modules/appliance_services.py import-3.12!skip -plugins/modules/appliance_services_info.py import-3.12!skip -plugins/modules/appliance_shutdown.py import-3.12!skip -plugins/modules/appliance_shutdown_info.py import-3.12!skip -plugins/modules/appliance_system_globalfips.py import-3.12!skip -plugins/modules/appliance_system_globalfips_info.py import-3.12!skip -plugins/modules/appliance_system_storage.py import-3.12!skip -plugins/modules/appliance_system_storage_info.py import-3.12!skip -plugins/modules/appliance_system_time_info.py import-3.12!skip -plugins/modules/appliance_system_time_timezone.py import-3.12!skip -plugins/modules/appliance_system_time_timezone_info.py import-3.12!skip -plugins/modules/appliance_system_version_info.py import-3.12!skip -plugins/modules/appliance_timesync.py import-3.12!skip -plugins/modules/appliance_timesync_info.py import-3.12!skip -plugins/modules/appliance_update_info.py import-3.12!skip -plugins/modules/appliance_vmon_service.py import-3.12!skip -plugins/modules/appliance_vmon_service_info.py import-3.12!skip -plugins/modules/content_configuration.py import-3.12!skip -plugins/modules/content_configuration_info.py import-3.12!skip -plugins/modules/content_library_item_info.py import-3.12!skip -plugins/modules/content_locallibrary.py import-3.12!skip -plugins/modules/content_locallibrary_info.py import-3.12!skip -plugins/modules/content_subscribedlibrary.py import-3.12!skip -plugins/modules/content_subscribedlibrary_info.py import-3.12!skip -plugins/modules/vcenter_cluster_info.py import-3.12!skip -plugins/modules/vcenter_datacenter.py import-3.12!skip -plugins/modules/vcenter_datacenter_info.py import-3.12!skip -plugins/modules/vcenter_datastore_info.py import-3.12!skip -plugins/modules/vcenter_folder_info.py import-3.12!skip -plugins/modules/vcenter_host.py import-3.12!skip -plugins/modules/vcenter_host_info.py import-3.12!skip -plugins/modules/vcenter_network_info.py import-3.12!skip -plugins/modules/vcenter_ovf_libraryitem.py import-3.12!skip -plugins/modules/vcenter_resourcepool.py import-3.12!skip -plugins/modules/vcenter_resourcepool_info.py import-3.12!skip -plugins/modules/vcenter_storage_policies_info.py import-3.12!skip -plugins/modules/vcenter_vm.py import-3.12!skip -plugins/modules/vcenter_vm_guest_customization.py import-3.12!skip -plugins/modules/vcenter_vm_guest_filesystem_directories.py import-3.12!skip -plugins/modules/vcenter_vm_guest_identity_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_localfilesystem_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_interfaces_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_routes_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_operations_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_power.py import-3.12!skip -plugins/modules/vcenter_vm_guest_power_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_sata.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_sata_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_scsi.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_device.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_device_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cdrom.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cdrom_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cpu.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cpu_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_disk.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_disk_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_ethernet.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_ethernet_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_floppy.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_floppy_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_memory.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_memory_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_parallel.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_parallel_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_serial.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_serial_info.py import-3.12!skip -plugins/modules/vcenter_vm_info.py import-3.12!skip -plugins/modules/vcenter_vm_libraryitem_info.py import-3.12!skip -plugins/modules/vcenter_vm_power.py import-3.12!skip -plugins/modules/vcenter_vm_power_info.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_compliance.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_compliance_info.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_info.py import-3.12!skip -plugins/modules/vcenter_vm_tools.py import-3.12!skip -plugins/modules/vcenter_vm_tools_info.py import-3.12!skip -plugins/modules/vcenter_vm_tools_installer.py import-3.12!skip -plugins/modules/vcenter_vm_tools_installer_info.py import-3.12!skip -plugins/modules/vcenter_vmtemplate_libraryitems_info.py import-3.12!skip -plugins/modules/vcenter_vmtemplate_libraryitems.py import-3.12!skip -plugins/modules/appliance_access_consolecli.py import-3.12!skip diff --git a/tests/sanity/ignore-2.17.txt b/tests/sanity/ignore-2.17.txt index 9c3aa0c5c..f55cc3e59 100644 --- a/tests/sanity/ignore-2.17.txt +++ b/tests/sanity/ignore-2.17.txt @@ -1,134 +1,2 @@ plugins/modules/vcenter_vm_guest_customization.py pep8!skip plugins/modules/appliance_infraprofile_configs.py pep8!skip -plugins/modules/appliance_access_consolecli_info.py import-3.12!skip -plugins/modules/appliance_access_dcui.py import-3.12!skip -plugins/modules/appliance_access_dcui_info.py import-3.12!skip -plugins/modules/appliance_access_shell.py import-3.12!skip -plugins/modules/appliance_access_shell_info.py import-3.12!skip -plugins/modules/appliance_access_ssh.py import-3.12!skip -plugins/modules/appliance_access_ssh_info.py import-3.12!skip -plugins/modules/appliance_health_applmgmt_info.py import-3.12!skip -plugins/modules/appliance_health_database_info.py import-3.12!skip -plugins/modules/appliance_health_databasestorage_info.py import-3.12!skip -plugins/modules/appliance_health_load_info.py import-3.12!skip -plugins/modules/appliance_health_mem_info.py import-3.12!skip -plugins/modules/appliance_health_softwarepackages_info.py import-3.12!skip -plugins/modules/appliance_health_storage_info.py import-3.12!skip -plugins/modules/appliance_health_swap_info.py import-3.12!skip -plugins/modules/appliance_health_system_info.py import-3.12!skip -plugins/modules/appliance_infraprofile_configs.py import-3.12!skip -plugins/modules/appliance_infraprofile_configs_info.py import-3.12!skip -plugins/modules/appliance_localaccounts_globalpolicy.py import-3.12!skip -plugins/modules/appliance_localaccounts_globalpolicy_info.py import-3.12!skip -plugins/modules/appliance_localaccounts_info.py import-3.12!skip -plugins/modules/appliance_monitoring_info.py import-3.12!skip -plugins/modules/appliance_monitoring_query.py import-3.12!skip -plugins/modules/appliance_networking.py import-3.12!skip -plugins/modules/appliance_networking_dns_domains.py import-3.12!skip -plugins/modules/appliance_networking_dns_domains_info.py import-3.12!skip -plugins/modules/appliance_networking_dns_hostname.py import-3.12!skip -plugins/modules/appliance_networking_dns_hostname_info.py import-3.12!skip -plugins/modules/appliance_networking_dns_servers.py import-3.12!skip -plugins/modules/appliance_networking_dns_servers_info.py import-3.12!skip -plugins/modules/appliance_networking_firewall_inbound.py import-3.12!skip -plugins/modules/appliance_networking_firewall_inbound_info.py import-3.12!skip -plugins/modules/appliance_networking_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv4.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv4_info.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv6.py import-3.12!skip -plugins/modules/appliance_networking_interfaces_ipv6_info.py import-3.12!skip -plugins/modules/appliance_networking_noproxy.py import-3.12!skip -plugins/modules/appliance_networking_noproxy_info.py import-3.12!skip -plugins/modules/appliance_networking_proxy.py import-3.12!skip -plugins/modules/appliance_networking_proxy_info.py import-3.12!skip -plugins/modules/appliance_ntp.py import-3.12!skip -plugins/modules/appliance_ntp_info.py import-3.12!skip -plugins/modules/appliance_services.py import-3.12!skip -plugins/modules/appliance_services_info.py import-3.12!skip -plugins/modules/appliance_shutdown.py import-3.12!skip -plugins/modules/appliance_shutdown_info.py import-3.12!skip -plugins/modules/appliance_system_globalfips.py import-3.12!skip -plugins/modules/appliance_system_globalfips_info.py import-3.12!skip -plugins/modules/appliance_system_storage.py import-3.12!skip -plugins/modules/appliance_system_storage_info.py import-3.12!skip -plugins/modules/appliance_system_time_info.py import-3.12!skip -plugins/modules/appliance_system_time_timezone.py import-3.12!skip -plugins/modules/appliance_system_time_timezone_info.py import-3.12!skip -plugins/modules/appliance_system_version_info.py import-3.12!skip -plugins/modules/appliance_timesync.py import-3.12!skip -plugins/modules/appliance_timesync_info.py import-3.12!skip -plugins/modules/appliance_update_info.py import-3.12!skip -plugins/modules/appliance_vmon_service.py import-3.12!skip -plugins/modules/appliance_vmon_service_info.py import-3.12!skip -plugins/modules/content_configuration.py import-3.12!skip -plugins/modules/content_configuration_info.py import-3.12!skip -plugins/modules/content_library_item_info.py import-3.12!skip -plugins/modules/content_locallibrary.py import-3.12!skip -plugins/modules/content_locallibrary_info.py import-3.12!skip -plugins/modules/content_subscribedlibrary.py import-3.12!skip -plugins/modules/content_subscribedlibrary_info.py import-3.12!skip -plugins/modules/vcenter_cluster_info.py import-3.12!skip -plugins/modules/vcenter_datacenter.py import-3.12!skip -plugins/modules/vcenter_datacenter_info.py import-3.12!skip -plugins/modules/vcenter_datastore_info.py import-3.12!skip -plugins/modules/vcenter_folder_info.py import-3.12!skip -plugins/modules/vcenter_host.py import-3.12!skip -plugins/modules/vcenter_host_info.py import-3.12!skip -plugins/modules/vcenter_network_info.py import-3.12!skip -plugins/modules/vcenter_ovf_libraryitem.py import-3.12!skip -plugins/modules/vcenter_resourcepool.py import-3.12!skip -plugins/modules/vcenter_resourcepool_info.py import-3.12!skip -plugins/modules/vcenter_storage_policies_info.py import-3.12!skip -plugins/modules/vcenter_vm.py import-3.12!skip -plugins/modules/vcenter_vm_guest_customization.py import-3.12!skip -plugins/modules/vcenter_vm_guest_filesystem_directories.py import-3.12!skip -plugins/modules/vcenter_vm_guest_identity_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_localfilesystem_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_interfaces_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_networking_routes_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_operations_info.py import-3.12!skip -plugins/modules/vcenter_vm_guest_power.py import-3.12!skip -plugins/modules/vcenter_vm_guest_power_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_sata.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_sata_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_scsi.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_device.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_device_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_boot_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cdrom.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cdrom_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cpu.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_cpu_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_disk.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_disk_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_ethernet.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_ethernet_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_floppy.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_floppy_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_memory.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_memory_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_parallel.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_parallel_info.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_serial.py import-3.12!skip -plugins/modules/vcenter_vm_hardware_serial_info.py import-3.12!skip -plugins/modules/vcenter_vm_info.py import-3.12!skip -plugins/modules/vcenter_vm_libraryitem_info.py import-3.12!skip -plugins/modules/vcenter_vm_power.py import-3.12!skip -plugins/modules/vcenter_vm_power_info.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_compliance.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_compliance_info.py import-3.12!skip -plugins/modules/vcenter_vm_storage_policy_info.py import-3.12!skip -plugins/modules/vcenter_vm_tools.py import-3.12!skip -plugins/modules/vcenter_vm_tools_info.py import-3.12!skip -plugins/modules/vcenter_vm_tools_installer.py import-3.12!skip -plugins/modules/vcenter_vm_tools_installer_info.py import-3.12!skip -plugins/modules/vcenter_vmtemplate_libraryitems_info.py import-3.12!skip -plugins/modules/vcenter_vmtemplate_libraryitems.py import-3.12!skip -plugins/modules/appliance_access_consolecli.py import-3.12!skip From 8e5dabc75ff71d20d9b08de7660a2d9aef9c69ed Mon Sep 17 00:00:00 2001 From: Mike Morency Date: Wed, 14 Aug 2024 16:48:21 -0400 Subject: [PATCH 2/4] generate changelog --- CHANGELOG.rst | 32 ++++++++++++------- changelogs/changelog.yaml | 20 ++++++++++++ .../492-remove-support-ansible-2-14.yml | 2 -- .../503_mm-feature_update_lookup_docs.yml | 10 ------ ...06-mention_vmware.vmware.vcsa_settings.yml | 11 ------- .../510-fix-broken-doc-generation.yml | 9 ------ .../513-add-vmware.vmware-for-docs-ci.yaml | 3 -- 7 files changed, 41 insertions(+), 46 deletions(-) delete mode 100644 changelogs/fragments/492-remove-support-ansible-2-14.yml delete mode 100644 changelogs/fragments/503_mm-feature_update_lookup_docs.yml delete mode 100644 changelogs/fragments/506-mention_vmware.vmware.vcsa_settings.yml delete mode 100644 changelogs/fragments/510-fix-broken-doc-generation.yml delete mode 100644 changelogs/fragments/513-add-vmware.vmware-for-docs-ci.yaml diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 01532c8e9..634ac7564 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,16 +1,31 @@ -================================ +================================= vmware.vmware_rest Release Notes -================================ +================================= .. contents:: Topics -v3.0.1 +v4.0.0 ====== -Release Summary ----------------- +Minor Changes +------------- + +- cluster_moid - updated documentation around lookup plugin usage +- datacenter_moid - updated documentation around lookup plugin usage +- datastore_moid - updated documentation around lookup plugin usage +- folder_moid - updated documentation around lookup plugin usage +- host_moid - updated documentation around lookup plugin usage +- network_moid - updated documentation around lookup plugin usage +- resource_pool_moid - updated documentation around lookup plugin usage +- vm_moid - updated documentation around lookup plugin usage + +Breaking Changes / Porting Guide +-------------------------------- -This release brings some minor changes and bugfixes. +- Removing any support for ansible-core <=2.14 + +v3.0.1 +====== Minor Changes ------------- @@ -46,11 +61,6 @@ Breaking Changes / Porting Guide v2.3.1 ====== -Release Summary ---------------- - -This release brings some minor changes and bugfixes. - Minor Changes ------------- diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index f9cc57c8d..eff5d3e86 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -688,3 +688,23 @@ releases: - 75-vmware_rest-action_groups.yaml - 76-vmware_rest-dont_use_folder.yaml release_date: '2024-03-21' + 4.0.0: + changes: + breaking_changes: + - Removing any support for ansible-core <=2.14 + minor_changes: + - cluster_moid - updated documentation around lookup plugin usage + - datacenter_moid - updated documentation around lookup plugin usage + - datastore_moid - updated documentation around lookup plugin usage + - folder_moid - updated documentation around lookup plugin usage + - host_moid - updated documentation around lookup plugin usage + - network_moid - updated documentation around lookup plugin usage + - resource_pool_moid - updated documentation around lookup plugin usage + - vm_moid - updated documentation around lookup plugin usage + fragments: + - 492-remove-support-ansible-2-14.yml + - 503_mm-feature_update_lookup_docs.yml + - 506-mention_vmware.vmware.vcsa_settings.yml + - 510-fix-broken-doc-generation.yml + - 513-add-vmware.vmware-for-docs-ci.yaml + release_date: '2024-08-14' diff --git a/changelogs/fragments/492-remove-support-ansible-2-14.yml b/changelogs/fragments/492-remove-support-ansible-2-14.yml deleted file mode 100644 index f2df8d063..000000000 --- a/changelogs/fragments/492-remove-support-ansible-2-14.yml +++ /dev/null @@ -1,2 +0,0 @@ -breaking_changes: - - Removing any support for ansible-core <=2.14 diff --git a/changelogs/fragments/503_mm-feature_update_lookup_docs.yml b/changelogs/fragments/503_mm-feature_update_lookup_docs.yml deleted file mode 100644 index 8ca79834d..000000000 --- a/changelogs/fragments/503_mm-feature_update_lookup_docs.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -minor_changes: - - cluster_moid - updated documentation around lookup plugin usage - - datacenter_moid - updated documentation around lookup plugin usage - - datastore_moid - updated documentation around lookup plugin usage - - folder_moid - updated documentation around lookup plugin usage - - host_moid - updated documentation around lookup plugin usage - - network_moid - updated documentation around lookup plugin usage - - resource_pool_moid - updated documentation around lookup plugin usage - - vm_moid - updated documentation around lookup plugin usage diff --git a/changelogs/fragments/506-mention_vmware.vmware.vcsa_settings.yml b/changelogs/fragments/506-mention_vmware.vmware.vcsa_settings.yml deleted file mode 100644 index 4e02811c6..000000000 --- a/changelogs/fragments/506-mention_vmware.vmware.vcsa_settings.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -trivial: - - appliance_access_consolecli - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_access_dcui - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_access_shell - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_access_ssh - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_networking_dns_domains - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_networking_dns_servers - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_ntp - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_system_time_timezone - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). - - appliance_timesync - Mention new module `vmware.vmware.vcsa_settings` (https://github.com/ansible-collections/vmware.vmware_rest/pull/506). diff --git a/changelogs/fragments/510-fix-broken-doc-generation.yml b/changelogs/fragments/510-fix-broken-doc-generation.yml deleted file mode 100644 index 0d02fbdb4..000000000 --- a/changelogs/fragments/510-fix-broken-doc-generation.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -trivial: - - content_locallibrary - Removed doc reference to missing module `content_library_item` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - content_subscribedlibrary - Removed doc reference to missing module `content_library_item` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - vcenter_storage_policies_info - Removed doc reference to missing module `vcenter_storage_policies` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - vcenter_vm - Removed doc reference to missing module `vcenter_storage_policies` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - vcenter_vm_hardware_disk - Removed doc reference to missing module `vcenter_storage_policies` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - vcenter_vm_power - Removed doc reference to missing module `vcenter_vm_guest_power` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). - - vcenter_vm_storage_policy - Removed doc reference to missing module `vcenter_storage_policies` (https://github.com/ansible-collections/vmware.vmware_rest/pull/510). diff --git a/changelogs/fragments/513-add-vmware.vmware-for-docs-ci.yaml b/changelogs/fragments/513-add-vmware.vmware-for-docs-ci.yaml deleted file mode 100644 index bb2047410..000000000 --- a/changelogs/fragments/513-add-vmware.vmware-for-docs-ci.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -trivial: - - Add vmware.vmware for docs CI (https://github.com/ansible-collections/vmware.vmware_rest/pull/513). From 37c49a6251de26152ffedac8d26f83a5f6b6936a Mon Sep 17 00:00:00 2001 From: Mike Morency Date: Thu, 15 Aug 2024 10:59:58 -0400 Subject: [PATCH 3/4] fixing version numbers in modules --- config/copy_old_return_blocks.py | 47 +++++++++++++++---- .../modules/appliance_access_consolecli.py | 2 +- .../appliance_access_consolecli_info.py | 2 +- plugins/modules/appliance_access_dcui.py | 2 +- plugins/modules/appliance_access_dcui_info.py | 2 +- plugins/modules/appliance_access_shell.py | 2 +- .../modules/appliance_access_shell_info.py | 2 +- plugins/modules/appliance_access_ssh.py | 2 +- plugins/modules/appliance_access_ssh_info.py | 2 +- .../modules/appliance_health_applmgmt_info.py | 2 +- .../modules/appliance_health_database_info.py | 2 +- .../appliance_health_databasestorage_info.py | 2 +- plugins/modules/appliance_health_load_info.py | 2 +- plugins/modules/appliance_health_mem_info.py | 2 +- .../appliance_health_softwarepackages_info.py | 2 +- .../modules/appliance_health_storage_info.py | 2 +- plugins/modules/appliance_health_swap_info.py | 2 +- .../modules/appliance_health_system_info.py | 2 +- .../modules/appliance_infraprofile_configs.py | 2 +- .../appliance_infraprofile_configs_info.py | 2 +- .../appliance_localaccounts_globalpolicy.py | 2 +- ...pliance_localaccounts_globalpolicy_info.py | 2 +- .../modules/appliance_localaccounts_info.py | 2 +- plugins/modules/appliance_monitoring_info.py | 2 +- plugins/modules/appliance_monitoring_query.py | 2 +- plugins/modules/appliance_networking.py | 2 +- .../appliance_networking_dns_domains.py | 4 +- .../appliance_networking_dns_domains_info.py | 2 +- .../appliance_networking_dns_hostname.py | 4 +- .../appliance_networking_dns_hostname_info.py | 2 +- .../appliance_networking_dns_servers.py | 6 +-- .../appliance_networking_dns_servers_info.py | 2 +- .../appliance_networking_firewall_inbound.py | 2 +- ...liance_networking_firewall_inbound_info.py | 2 +- plugins/modules/appliance_networking_info.py | 2 +- .../appliance_networking_interfaces_info.py | 2 +- .../appliance_networking_interfaces_ipv4.py | 2 +- ...pliance_networking_interfaces_ipv4_info.py | 2 +- .../appliance_networking_interfaces_ipv6.py | 2 +- ...pliance_networking_interfaces_ipv6_info.py | 2 +- .../modules/appliance_networking_noproxy.py | 2 +- .../appliance_networking_noproxy_info.py | 2 +- plugins/modules/appliance_networking_proxy.py | 12 ++--- .../appliance_networking_proxy_info.py | 2 +- plugins/modules/appliance_ntp.py | 4 +- plugins/modules/appliance_ntp_info.py | 2 +- plugins/modules/appliance_services.py | 4 +- plugins/modules/appliance_services_info.py | 2 +- plugins/modules/appliance_shutdown.py | 4 +- plugins/modules/appliance_shutdown_info.py | 2 +- .../modules/appliance_system_globalfips.py | 2 +- .../appliance_system_globalfips_info.py | 2 +- plugins/modules/appliance_system_storage.py | 4 +- .../modules/appliance_system_storage_info.py | 2 +- plugins/modules/appliance_system_time_info.py | 2 +- .../modules/appliance_system_time_timezone.py | 2 +- .../appliance_system_time_timezone_info.py | 2 +- .../modules/appliance_system_version_info.py | 2 +- plugins/modules/appliance_timesync.py | 2 +- plugins/modules/appliance_timesync_info.py | 2 +- plugins/modules/appliance_update_info.py | 2 +- plugins/modules/appliance_vmon_service.py | 6 +-- .../modules/appliance_vmon_service_info.py | 2 +- plugins/modules/content_configuration.py | 2 +- plugins/modules/content_configuration_info.py | 2 +- plugins/modules/content_library_info.py | 4 +- plugins/modules/content_library_item_info.py | 2 +- .../content_library_subscriptions_info.py | 4 +- plugins/modules/content_locallibrary.py | 22 ++++----- plugins/modules/content_locallibrary_info.py | 2 +- plugins/modules/content_subscribedlibrary.py | 14 +++--- .../modules/content_subscribedlibrary_info.py | 2 +- plugins/modules/vcenter_cluster_info.py | 2 +- plugins/modules/vcenter_datacenter.py | 4 +- plugins/modules/vcenter_datacenter_info.py | 2 +- plugins/modules/vcenter_datastore_info.py | 2 +- plugins/modules/vcenter_folder_info.py | 2 +- plugins/modules/vcenter_host.py | 2 +- plugins/modules/vcenter_host_info.py | 2 +- plugins/modules/vcenter_network_info.py | 2 +- plugins/modules/vcenter_ovf_libraryitem.py | 12 ++--- plugins/modules/vcenter_resourcepool.py | 14 +++--- plugins/modules/vcenter_resourcepool_info.py | 2 +- .../modules/vcenter_storage_policies_info.py | 2 +- plugins/modules/vcenter_vm.py | 34 +++++++------- .../modules/vcenter_vm_guest_customization.py | 2 +- ...vcenter_vm_guest_filesystem_directories.py | 26 +++++----- .../modules/vcenter_vm_guest_identity_info.py | 2 +- .../vcenter_vm_guest_localfilesystem_info.py | 2 +- .../vcenter_vm_guest_networking_info.py | 2 +- ...ter_vm_guest_networking_interfaces_info.py | 2 +- ...vcenter_vm_guest_networking_routes_info.py | 2 +- .../vcenter_vm_guest_operations_info.py | 2 +- plugins/modules/vcenter_vm_guest_power.py | 4 +- .../modules/vcenter_vm_guest_power_info.py | 2 +- plugins/modules/vcenter_vm_hardware.py | 4 +- .../vcenter_vm_hardware_adapter_sata.py | 5 +- .../vcenter_vm_hardware_adapter_sata_info.py | 2 +- .../vcenter_vm_hardware_adapter_scsi.py | 15 +++--- .../vcenter_vm_hardware_adapter_scsi_info.py | 2 +- plugins/modules/vcenter_vm_hardware_boot.py | 2 +- .../vcenter_vm_hardware_boot_device.py | 2 +- .../vcenter_vm_hardware_boot_device_info.py | 2 +- .../modules/vcenter_vm_hardware_boot_info.py | 2 +- plugins/modules/vcenter_vm_hardware_cdrom.py | 4 +- .../modules/vcenter_vm_hardware_cdrom_info.py | 2 +- plugins/modules/vcenter_vm_hardware_cpu.py | 2 +- .../modules/vcenter_vm_hardware_cpu_info.py | 2 +- plugins/modules/vcenter_vm_hardware_disk.py | 14 +++--- .../modules/vcenter_vm_hardware_disk_info.py | 2 +- .../modules/vcenter_vm_hardware_ethernet.py | 4 +- .../vcenter_vm_hardware_ethernet_info.py | 2 +- plugins/modules/vcenter_vm_hardware_floppy.py | 4 +- .../vcenter_vm_hardware_floppy_info.py | 2 +- plugins/modules/vcenter_vm_hardware_info.py | 2 +- plugins/modules/vcenter_vm_hardware_memory.py | 2 +- .../vcenter_vm_hardware_memory_info.py | 2 +- .../modules/vcenter_vm_hardware_parallel.py | 4 +- .../vcenter_vm_hardware_parallel_info.py | 2 +- plugins/modules/vcenter_vm_hardware_serial.py | 4 +- .../vcenter_vm_hardware_serial_info.py | 2 +- plugins/modules/vcenter_vm_info.py | 2 +- .../modules/vcenter_vm_libraryitem_info.py | 2 +- plugins/modules/vcenter_vm_power.py | 6 +-- plugins/modules/vcenter_vm_power_info.py | 2 +- plugins/modules/vcenter_vm_storage_policy.py | 2 +- .../vcenter_vm_storage_policy_compliance.py | 2 +- ...enter_vm_storage_policy_compliance_info.py | 2 +- .../modules/vcenter_vm_storage_policy_info.py | 2 +- plugins/modules/vcenter_vm_tools.py | 10 ++-- plugins/modules/vcenter_vm_tools_info.py | 2 +- plugins/modules/vcenter_vm_tools_installer.py | 2 +- .../vcenter_vm_tools_installer_info.py | 2 +- .../vcenter_vmtemplate_libraryitems.py | 2 +- .../vcenter_vmtemplate_libraryitems_info.py | 2 +- 135 files changed, 270 insertions(+), 245 deletions(-) diff --git a/config/copy_old_return_blocks.py b/config/copy_old_return_blocks.py index ff140a242..fcd736315 100755 --- a/config/copy_old_return_blocks.py +++ b/config/copy_old_return_blocks.py @@ -1,10 +1,12 @@ #!/usr/bin/env python import os +import yaml SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) -OLD_MODULE_PATH = f"{SCRIPT_DIR}/../plugins/modules" +OLD_MODULE_PATH = f"{SCRIPT_DIR}/../../temp/vmware.vmware_rest/plugins/modules" NEW_MODULE_PATH = f"{SCRIPT_DIR}/output/plugins/modules" +GALAXY_PATH = f"{SCRIPT_DIR}/../galaxy.yml" def read_examples_and_return_blocks(module_file_path): @@ -26,18 +28,33 @@ def read_examples_and_return_blocks(module_file_path): return content -def inject_examples_and_return_blocks(module_file_path, inject_lines): +def read_version_added(old_module_file_path): + with open(old_module_file_path, "r") as f: + lines = f.readlines() + + for line in lines: + if line.startswith('version_added:'): + return line + + return None + + +def format_new_content(module_file_path, example_and_return_blocks, version_added): with open(module_file_path, "r") as f: lines = f.readlines() + with open(GALAXY_PATH, "r") as f: + _galaxy_contents = yaml.safe_load(f) + default_version = _galaxy_contents['version'] + new_content = [] added_content = False open_block = False for line in lines: - if line.startswith('EXAMPLES = r"""') or line.startswith('RETURN = r"""'): + if example_and_return_blocks and (line.startswith('EXAMPLES = r"""') or line.startswith('RETURN = r"""')): open_block = True if not added_content: - new_content += inject_lines + new_content += example_and_return_blocks added_content = True continue @@ -45,19 +62,29 @@ def inject_examples_and_return_blocks(module_file_path, inject_lines): open_block = False continue + if line.startswith('version_added'): + if version_added: + new_content += [version_added] + else: + new_content += [f'version_added: {default_version}\n'] + continue + new_content += [line] return new_content if __name__ == "__main__": - for module in os.listdir(OLD_MODULE_PATH): + for module in os.listdir(NEW_MODULE_PATH): old_module = os.path.join(OLD_MODULE_PATH, module) - new_module = old_module.replace(OLD_MODULE_PATH, NEW_MODULE_PATH) + new_module = os.path.join(NEW_MODULE_PATH, module) + blocks = [] + version_added = None if os.path.isfile(old_module): blocks = read_examples_and_return_blocks(old_module) - new_content = inject_examples_and_return_blocks(new_module, blocks) + version_added = read_version_added(old_module) - with open(new_module, "w") as f: - for line in new_content: - f.write(f"{line}") + new_content = format_new_content(new_module, blocks, version_added) + with open(new_module, "w") as f: + for line in new_content: + f.write(f"{line}") diff --git a/plugins/modules/appliance_access_consolecli.py b/plugins/modules/appliance_access_consolecli.py index 80084fdbc..2a4b45dc7 100644 --- a/plugins/modules/appliance_access_consolecli.py +++ b/plugins/modules/appliance_access_consolecli.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_consolecli_info.py b/plugins/modules/appliance_access_consolecli_info.py index 136f4f4a4..55eadab6d 100644 --- a/plugins/modules/appliance_access_consolecli_info.py +++ b/plugins/modules/appliance_access_consolecli_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_dcui.py b/plugins/modules/appliance_access_dcui.py index 04098e2ac..466f20142 100644 --- a/plugins/modules/appliance_access_dcui.py +++ b/plugins/modules/appliance_access_dcui.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_dcui_info.py b/plugins/modules/appliance_access_dcui_info.py index ed326efa2..dd612f3c8 100644 --- a/plugins/modules/appliance_access_dcui_info.py +++ b/plugins/modules/appliance_access_dcui_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_shell.py b/plugins/modules/appliance_access_shell.py index 520140b0a..9b00508fd 100644 --- a/plugins/modules/appliance_access_shell.py +++ b/plugins/modules/appliance_access_shell.py @@ -78,7 +78,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_shell_info.py b/plugins/modules/appliance_access_shell_info.py index 11aee2055..fc6cf372d 100644 --- a/plugins/modules/appliance_access_shell_info.py +++ b/plugins/modules/appliance_access_shell_info.py @@ -61,7 +61,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_ssh.py b/plugins/modules/appliance_access_ssh.py index 6bb1bdbdd..183b3f9d5 100644 --- a/plugins/modules/appliance_access_ssh.py +++ b/plugins/modules/appliance_access_ssh.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_access_ssh_info.py b/plugins/modules/appliance_access_ssh_info.py index a82015636..496bcc23d 100644 --- a/plugins/modules/appliance_access_ssh_info.py +++ b/plugins/modules/appliance_access_ssh_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_applmgmt_info.py b/plugins/modules/appliance_health_applmgmt_info.py index 6d29d32e5..b26a9bbef 100644 --- a/plugins/modules/appliance_health_applmgmt_info.py +++ b/plugins/modules/appliance_health_applmgmt_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_database_info.py b/plugins/modules/appliance_health_database_info.py index 8d71b1f1a..40caf862b 100644 --- a/plugins/modules/appliance_health_database_info.py +++ b/plugins/modules/appliance_health_database_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_databasestorage_info.py b/plugins/modules/appliance_health_databasestorage_info.py index a12940030..7cf51ab8c 100644 --- a/plugins/modules/appliance_health_databasestorage_info.py +++ b/plugins/modules/appliance_health_databasestorage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_load_info.py b/plugins/modules/appliance_health_load_info.py index 1d0bdbd48..830d47209 100644 --- a/plugins/modules/appliance_health_load_info.py +++ b/plugins/modules/appliance_health_load_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_mem_info.py b/plugins/modules/appliance_health_mem_info.py index 5d80131ca..20150d6ab 100644 --- a/plugins/modules/appliance_health_mem_info.py +++ b/plugins/modules/appliance_health_mem_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_softwarepackages_info.py b/plugins/modules/appliance_health_softwarepackages_info.py index d45f25f69..2ec870e84 100644 --- a/plugins/modules/appliance_health_softwarepackages_info.py +++ b/plugins/modules/appliance_health_softwarepackages_info.py @@ -64,7 +64,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_storage_info.py b/plugins/modules/appliance_health_storage_info.py index 50cdf65a1..07a6f85b3 100644 --- a/plugins/modules/appliance_health_storage_info.py +++ b/plugins/modules/appliance_health_storage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_swap_info.py b/plugins/modules/appliance_health_swap_info.py index 57f5c2bdd..1df7e7da3 100644 --- a/plugins/modules/appliance_health_swap_info.py +++ b/plugins/modules/appliance_health_swap_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_health_system_info.py b/plugins/modules/appliance_health_system_info.py index 78cc2f4b9..ea0a3f94f 100644 --- a/plugins/modules/appliance_health_system_info.py +++ b/plugins/modules/appliance_health_system_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_infraprofile_configs.py b/plugins/modules/appliance_infraprofile_configs.py index 78579024f..41789278c 100644 --- a/plugins/modules/appliance_infraprofile_configs.py +++ b/plugins/modules/appliance_infraprofile_configs.py @@ -83,7 +83,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_infraprofile_configs_info.py b/plugins/modules/appliance_infraprofile_configs_info.py index 41e913d05..1afd2b3d4 100644 --- a/plugins/modules/appliance_infraprofile_configs_info.py +++ b/plugins/modules/appliance_infraprofile_configs_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_localaccounts_globalpolicy.py b/plugins/modules/appliance_localaccounts_globalpolicy.py index ccab3bf9f..1ec874bba 100644 --- a/plugins/modules/appliance_localaccounts_globalpolicy.py +++ b/plugins/modules/appliance_localaccounts_globalpolicy.py @@ -83,7 +83,7 @@ type: int author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_localaccounts_globalpolicy_info.py b/plugins/modules/appliance_localaccounts_globalpolicy_info.py index 487be5d60..7db1ef2db 100644 --- a/plugins/modules/appliance_localaccounts_globalpolicy_info.py +++ b/plugins/modules/appliance_localaccounts_globalpolicy_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_localaccounts_info.py b/plugins/modules/appliance_localaccounts_info.py index 5a7196433..a1920f37e 100644 --- a/plugins/modules/appliance_localaccounts_info.py +++ b/plugins/modules/appliance_localaccounts_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_monitoring_info.py b/plugins/modules/appliance_monitoring_info.py index 9eda89715..bc0d6c7f2 100644 --- a/plugins/modules/appliance_monitoring_info.py +++ b/plugins/modules/appliance_monitoring_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_monitoring_query.py b/plugins/modules/appliance_monitoring_query.py index 5989ec100..25a52193e 100644 --- a/plugins/modules/appliance_monitoring_query.py +++ b/plugins/modules/appliance_monitoring_query.py @@ -100,7 +100,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking.py b/plugins/modules/appliance_networking.py index fa0a50c79..133fa9ca0 100644 --- a/plugins/modules/appliance_networking.py +++ b/plugins/modules/appliance_networking.py @@ -73,7 +73,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_dns_domains.py b/plugins/modules/appliance_networking_dns_domains.py index dc7b089e5..161668b63 100644 --- a/plugins/modules/appliance_networking_dns_domains.py +++ b/plugins/modules/appliance_networking_dns_domains.py @@ -75,7 +75,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -111,8 +111,8 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "add": {"query": {}, "body": {"domain": "domain"}, "path": {}}, "set": {"query": {}, "body": {"domains": "domains"}, "path": {}}, + "add": {"query": {}, "body": {"domain": "domain"}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_networking_dns_domains_info.py b/plugins/modules/appliance_networking_dns_domains_info.py index e3090b2d2..dbe5c2a50 100644 --- a/plugins/modules/appliance_networking_dns_domains_info.py +++ b/plugins/modules/appliance_networking_dns_domains_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_dns_hostname.py b/plugins/modules/appliance_networking_dns_hostname.py index 1dd77cfd6..07eec378a 100644 --- a/plugins/modules/appliance_networking_dns_hostname.py +++ b/plugins/modules/appliance_networking_dns_hostname.py @@ -71,7 +71,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -103,8 +103,8 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "test": {"query": {}, "body": {"name": "name"}, "path": {}}, "set": {"query": {}, "body": {"name": "name"}, "path": {}}, + "test": {"query": {}, "body": {"name": "name"}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_networking_dns_hostname_info.py b/plugins/modules/appliance_networking_dns_hostname_info.py index 0e993edf7..433ee0cc4 100644 --- a/plugins/modules/appliance_networking_dns_hostname_info.py +++ b/plugins/modules/appliance_networking_dns_hostname_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_dns_servers.py b/plugins/modules/appliance_networking_dns_servers.py index c72493b3e..ab1514547 100644 --- a/plugins/modules/appliance_networking_dns_servers.py +++ b/plugins/modules/appliance_networking_dns_servers.py @@ -85,7 +85,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -142,9 +142,9 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, - "add": {"query": {}, "body": {"server": "server"}, "path": {}}, "set": {"query": {}, "body": {"mode": "mode", "servers": "servers"}, "path": {}}, + "add": {"query": {}, "body": {"server": "server"}, "path": {}}, + "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_networking_dns_servers_info.py b/plugins/modules/appliance_networking_dns_servers_info.py index 475d2a115..7115bc6c1 100644 --- a/plugins/modules/appliance_networking_dns_servers_info.py +++ b/plugins/modules/appliance_networking_dns_servers_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_firewall_inbound.py b/plugins/modules/appliance_networking_firewall_inbound.py index a13c66ab1..125cad045 100644 --- a/plugins/modules/appliance_networking_firewall_inbound.py +++ b/plugins/modules/appliance_networking_firewall_inbound.py @@ -94,7 +94,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_firewall_inbound_info.py b/plugins/modules/appliance_networking_firewall_inbound_info.py index 80d45a868..032d88cbf 100644 --- a/plugins/modules/appliance_networking_firewall_inbound_info.py +++ b/plugins/modules/appliance_networking_firewall_inbound_info.py @@ -62,7 +62,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_info.py b/plugins/modules/appliance_networking_info.py index ccba85465..60030af35 100644 --- a/plugins/modules/appliance_networking_info.py +++ b/plugins/modules/appliance_networking_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_interfaces_info.py b/plugins/modules/appliance_networking_interfaces_info.py index f28e826fe..3b47b647a 100644 --- a/plugins/modules/appliance_networking_interfaces_info.py +++ b/plugins/modules/appliance_networking_interfaces_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_interfaces_ipv4.py b/plugins/modules/appliance_networking_interfaces_ipv4.py index 41f184139..93dc199cd 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv4.py +++ b/plugins/modules/appliance_networking_interfaces_ipv4.py @@ -105,7 +105,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_interfaces_ipv4_info.py b/plugins/modules/appliance_networking_interfaces_ipv4_info.py index 3f18631c7..95dc0612b 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv4_info.py +++ b/plugins/modules/appliance_networking_interfaces_ipv4_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_interfaces_ipv6.py b/plugins/modules/appliance_networking_interfaces_ipv6.py index 276214473..4f7c83e28 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv6.py +++ b/plugins/modules/appliance_networking_interfaces_ipv6.py @@ -106,7 +106,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_interfaces_ipv6_info.py b/plugins/modules/appliance_networking_interfaces_ipv6_info.py index b31fb8cb7..a919e6c4e 100644 --- a/plugins/modules/appliance_networking_interfaces_ipv6_info.py +++ b/plugins/modules/appliance_networking_interfaces_ipv6_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_noproxy.py b/plugins/modules/appliance_networking_noproxy.py index 079594e6f..847b8c0ce 100644 --- a/plugins/modules/appliance_networking_noproxy.py +++ b/plugins/modules/appliance_networking_noproxy.py @@ -77,7 +77,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_noproxy_info.py b/plugins/modules/appliance_networking_noproxy_info.py index 37cdc46bd..659c675ba 100644 --- a/plugins/modules/appliance_networking_noproxy_info.py +++ b/plugins/modules/appliance_networking_noproxy_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_networking_proxy.py b/plugins/modules/appliance_networking_proxy.py index bfeef8a44..00e7b206b 100644 --- a/plugins/modules/appliance_networking_proxy.py +++ b/plugins/modules/appliance_networking_proxy.py @@ -127,7 +127,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -163,11 +163,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "test": { - "query": {}, - "body": {"config": "config", "host": "host"}, - "path": {"protocol": "protocol"}, - }, "delete": {"query": {}, "body": {}, "path": {"protocol": "protocol"}}, "set": { "query": {}, @@ -180,6 +175,11 @@ }, "path": {"protocol": "protocol"}, }, + "test": { + "query": {}, + "body": {"config": "config", "host": "host"}, + "path": {"protocol": "protocol"}, + }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_networking_proxy_info.py b/plugins/modules/appliance_networking_proxy_info.py index 9422b42d1..ada9d3382 100644 --- a/plugins/modules/appliance_networking_proxy_info.py +++ b/plugins/modules/appliance_networking_proxy_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_ntp.py b/plugins/modules/appliance_ntp.py index 9b7ca9fa2..ed4208222 100644 --- a/plugins/modules/appliance_ntp.py +++ b/plugins/modules/appliance_ntp.py @@ -76,7 +76,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -118,8 +118,8 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, "set": {"query": {}, "body": {"servers": "servers"}, "path": {}}, + "test": {"query": {}, "body": {"servers": "servers"}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_ntp_info.py b/plugins/modules/appliance_ntp_info.py index 63344a86b..62b2626d6 100644 --- a/plugins/modules/appliance_ntp_info.py +++ b/plugins/modules/appliance_ntp_info.py @@ -63,7 +63,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_services.py b/plugins/modules/appliance_services.py index 618770f42..14905dbf1 100644 --- a/plugins/modules/appliance_services.py +++ b/plugins/modules/appliance_services.py @@ -74,7 +74,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -114,9 +114,9 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, "stop": {"query": {}, "body": {}, "path": {"service": "service"}}, "start": {"query": {}, "body": {}, "path": {"service": "service"}}, + "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_services_info.py b/plugins/modules/appliance_services_info.py index f2bfbf42c..645c4b3ec 100644 --- a/plugins/modules/appliance_services_info.py +++ b/plugins/modules/appliance_services_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_shutdown.py b/plugins/modules/appliance_shutdown.py index e69d28417..18a9053c7 100644 --- a/plugins/modules/appliance_shutdown.py +++ b/plugins/modules/appliance_shutdown.py @@ -76,7 +76,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -123,12 +123,12 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "reboot": {"query": {}, "body": {"delay": "delay", "reason": "reason"}, "path": {}}, + "cancel": {"query": {}, "body": {}, "path": {}}, "poweroff": { "query": {}, "body": {"delay": "delay", "reason": "reason"}, "path": {}, }, - "cancel": {"query": {}, "body": {}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_shutdown_info.py b/plugins/modules/appliance_shutdown_info.py index 1e485de80..1744dfc47 100644 --- a/plugins/modules/appliance_shutdown_info.py +++ b/plugins/modules/appliance_shutdown_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_globalfips.py b/plugins/modules/appliance_system_globalfips.py index c8edb87bf..919cfd04d 100644 --- a/plugins/modules/appliance_system_globalfips.py +++ b/plugins/modules/appliance_system_globalfips.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_globalfips_info.py b/plugins/modules/appliance_system_globalfips_info.py index f52d5db96..6b1974447 100644 --- a/plugins/modules/appliance_system_globalfips_info.py +++ b/plugins/modules/appliance_system_globalfips_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_storage.py b/plugins/modules/appliance_system_storage.py index 7f8170f60..d811e4f02 100644 --- a/plugins/modules/appliance_system_storage.py +++ b/plugins/modules/appliance_system_storage.py @@ -66,7 +66,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -102,8 +102,8 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "resize_ex": {"query": {}, "body": {}, "path": {}}, "resize": {"query": {}, "body": {}, "path": {}}, + "resize_ex": {"query": {}, "body": {}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_system_storage_info.py b/plugins/modules/appliance_system_storage_info.py index 5e36f5ee3..9395a2c96 100644 --- a/plugins/modules/appliance_system_storage_info.py +++ b/plugins/modules/appliance_system_storage_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_time_info.py b/plugins/modules/appliance_system_time_info.py index cd5ce9009..d7b1b5ed5 100644 --- a/plugins/modules/appliance_system_time_info.py +++ b/plugins/modules/appliance_system_time_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_time_timezone.py b/plugins/modules/appliance_system_time_timezone.py index f02ffe091..5f8734905 100644 --- a/plugins/modules/appliance_system_time_timezone.py +++ b/plugins/modules/appliance_system_time_timezone.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_time_timezone_info.py b/plugins/modules/appliance_system_time_timezone_info.py index 1c464e3c7..95241c511 100644 --- a/plugins/modules/appliance_system_time_timezone_info.py +++ b/plugins/modules/appliance_system_time_timezone_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_system_version_info.py b/plugins/modules/appliance_system_version_info.py index 559917b81..a20dbf947 100644 --- a/plugins/modules/appliance_system_version_info.py +++ b/plugins/modules/appliance_system_version_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_timesync.py b/plugins/modules/appliance_timesync.py index 45565c4b0..f1a0abe8a 100644 --- a/plugins/modules/appliance_timesync.py +++ b/plugins/modules/appliance_timesync.py @@ -75,7 +75,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_timesync_info.py b/plugins/modules/appliance_timesync_info.py index 920093b85..51db43200 100644 --- a/plugins/modules/appliance_timesync_info.py +++ b/plugins/modules/appliance_timesync_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_update_info.py b/plugins/modules/appliance_update_info.py index 2af524ec9..567f1dd2b 100644 --- a/plugins/modules/appliance_update_info.py +++ b/plugins/modules/appliance_update_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/appliance_vmon_service.py b/plugins/modules/appliance_vmon_service.py index 4bb1e06c6..a92daa4fe 100644 --- a/plugins/modules/appliance_vmon_service.py +++ b/plugins/modules/appliance_vmon_service.py @@ -84,7 +84,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -117,15 +117,15 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "start": {"query": {}, "body": {}, "path": {"service": "service"}}, - "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, "stop": {"query": {}, "body": {}, "path": {"service": "service"}}, "list_details": {"query": {}, "body": {}, "path": {}}, + "restart": {"query": {}, "body": {}, "path": {"service": "service"}}, "update": { "query": {}, "body": {"startup_type": "spec/startup_type"}, "path": {"service": "service"}, }, + "start": {"query": {}, "body": {}, "path": {"service": "service"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/appliance_vmon_service_info.py b/plugins/modules/appliance_vmon_service_info.py index dbdbd1836..3db6eb3ef 100644 --- a/plugins/modules/appliance_vmon_service_info.py +++ b/plugins/modules/appliance_vmon_service_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/content_configuration.py b/plugins/modules/content_configuration.py index 23a416fec..e07099fe1 100644 --- a/plugins/modules/content_configuration.py +++ b/plugins/modules/content_configuration.py @@ -112,7 +112,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/content_configuration_info.py b/plugins/modules/content_configuration_info.py index d9fb7e0ef..79887e215 100644 --- a/plugins/modules/content_configuration_info.py +++ b/plugins/modules/content_configuration_info.py @@ -59,7 +59,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/content_library_info.py b/plugins/modules/content_library_info.py index bb57cfa27..9f38aaee4 100644 --- a/plugins/modules/content_library_info.py +++ b/plugins/modules/content_library_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 4.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -76,10 +76,10 @@ EXAMPLES = r""" """ + RETURN = r""" """ - # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, diff --git a/plugins/modules/content_library_item_info.py b/plugins/modules/content_library_item_info.py index 948ede79b..1499484e7 100644 --- a/plugins/modules/content_library_item_info.py +++ b/plugins/modules/content_library_item_info.py @@ -71,7 +71,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/content_library_subscriptions_info.py b/plugins/modules/content_library_subscriptions_info.py index e9e335268..097ba0678 100644 --- a/plugins/modules/content_library_subscriptions_info.py +++ b/plugins/modules/content_library_subscriptions_info.py @@ -74,7 +74,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 4.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -85,10 +85,10 @@ EXAMPLES = r""" """ + RETURN = r""" """ - # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "get": { diff --git a/plugins/modules/content_locallibrary.py b/plugins/modules/content_locallibrary.py index 643b81b89..ed9e19eff 100644 --- a/plugins/modules/content_locallibrary.py +++ b/plugins/modules/content_locallibrary.py @@ -497,7 +497,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -1434,13 +1434,9 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "publish": { + "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, + "update": { "query": {}, - "body": {"subscriptions": "subscriptions"}, - "path": {"library_id": "library_id"}, - }, - "create": { - "query": {"client_token": "client_token"}, "body": { "creation_time": "creation_time", "description": "description", @@ -1458,11 +1454,10 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, - "path": {}, + "path": {"library_id": "library_id"}, }, - "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, - "update": { - "query": {}, + "create": { + "query": {"client_token": "client_token"}, "body": { "creation_time": "creation_time", "description": "description", @@ -1480,6 +1475,11 @@ "unset_security_policy_id": "unset_security_policy_id", "version": "version", }, + "path": {}, + }, + "publish": { + "query": {}, + "body": {"subscriptions": "subscriptions"}, "path": {"library_id": "library_id"}, }, } # pylint: disable=line-too-long diff --git a/plugins/modules/content_locallibrary_info.py b/plugins/modules/content_locallibrary_info.py index e92a152e2..e502d3bfb 100644 --- a/plugins/modules/content_locallibrary_info.py +++ b/plugins/modules/content_locallibrary_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/content_subscribedlibrary.py b/plugins/modules/content_subscribedlibrary.py index 5d80bfd87..9517ff1d8 100644 --- a/plugins/modules/content_subscribedlibrary.py +++ b/plugins/modules/content_subscribedlibrary.py @@ -488,7 +488,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -631,11 +631,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "probe": { - "query": {}, - "body": {"subscription_info": "subscription_info"}, - "path": {}, - }, "create": { "query": {"client_token": "client_token"}, "body": { @@ -658,7 +653,6 @@ "path": {}, }, "delete": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, - "evict": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, "sync": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, "update": { "query": {}, @@ -681,6 +675,12 @@ }, "path": {"library_id": "library_id"}, }, + "probe": { + "query": {}, + "body": {"subscription_info": "subscription_info"}, + "path": {}, + }, + "evict": {"query": {}, "body": {}, "path": {"library_id": "library_id"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/content_subscribedlibrary_info.py b/plugins/modules/content_subscribedlibrary_info.py index f7bb42513..9b518d429 100644 --- a/plugins/modules/content_subscribedlibrary_info.py +++ b/plugins/modules/content_subscribedlibrary_info.py @@ -65,7 +65,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_cluster_info.py b/plugins/modules/vcenter_cluster_info.py index 6fedba644..7a78043a1 100644 --- a/plugins/modules/vcenter_cluster_info.py +++ b/plugins/modules/vcenter_cluster_info.py @@ -101,7 +101,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_datacenter.py b/plugins/modules/vcenter_datacenter.py index a3c2d84ba..89b478595 100644 --- a/plugins/modules/vcenter_datacenter.py +++ b/plugins/modules/vcenter_datacenter.py @@ -91,7 +91,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -160,12 +160,12 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "create": {"query": {}, "body": {"folder": "folder", "name": "name"}, "path": {}}, "delete": { "query": {"force": "force"}, "body": {}, "path": {"datacenter": "datacenter"}, }, + "create": {"query": {}, "body": {"folder": "folder", "name": "name"}, "path": {}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_datacenter_info.py b/plugins/modules/vcenter_datacenter_info.py index 96b282436..409e3d930 100644 --- a/plugins/modules/vcenter_datacenter_info.py +++ b/plugins/modules/vcenter_datacenter_info.py @@ -94,7 +94,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_datastore_info.py b/plugins/modules/vcenter_datastore_info.py index 7e89d7241..accf1112b 100644 --- a/plugins/modules/vcenter_datastore_info.py +++ b/plugins/modules/vcenter_datastore_info.py @@ -110,7 +110,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_folder_info.py b/plugins/modules/vcenter_folder_info.py index 3bfcc65ff..e8d88c4df 100644 --- a/plugins/modules/vcenter_folder_info.py +++ b/plugins/modules/vcenter_folder_info.py @@ -111,7 +111,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_host.py b/plugins/modules/vcenter_host.py index 5883cba12..bfcd51bac 100644 --- a/plugins/modules/vcenter_host.py +++ b/plugins/modules/vcenter_host.py @@ -129,7 +129,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_host_info.py b/plugins/modules/vcenter_host_info.py index f1aa7d7fe..93fb0d32b 100644 --- a/plugins/modules/vcenter_host_info.py +++ b/plugins/modules/vcenter_host_info.py @@ -122,7 +122,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_network_info.py b/plugins/modules/vcenter_network_info.py index f3887a910..eef58f5fb 100644 --- a/plugins/modules/vcenter_network_info.py +++ b/plugins/modules/vcenter_network_info.py @@ -105,7 +105,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_ovf_libraryitem.py b/plugins/modules/vcenter_ovf_libraryitem.py index c66bc0bcd..349005d9c 100644 --- a/plugins/modules/vcenter_ovf_libraryitem.py +++ b/plugins/modules/vcenter_ovf_libraryitem.py @@ -251,7 +251,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -353,6 +353,11 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "filter": { + "query": {}, + "body": {"target": "target"}, + "path": {"ovf_library_item_id": "ovf_library_item_id"}, + }, "create": { "query": {"client_token": "client_token"}, "body": {"create_spec": "create_spec", "source": "source", "target": "target"}, @@ -363,11 +368,6 @@ "body": {"deployment_spec": "deployment_spec", "target": "target"}, "path": {"ovf_library_item_id": "ovf_library_item_id"}, }, - "filter": { - "query": {}, - "body": {"target": "target"}, - "path": {"ovf_library_item_id": "ovf_library_item_id"}, - }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_resourcepool.py b/plugins/modules/vcenter_resourcepool.py index e2c59320b..a550a8f3b 100644 --- a/plugins/modules/vcenter_resourcepool.py +++ b/plugins/modules/vcenter_resourcepool.py @@ -165,7 +165,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.3.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -251,25 +251,25 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "create": { + "delete": {"query": {}, "body": {}, "path": {"resource_pool": "resource_pool"}}, + "update": { "query": {}, "body": { "cpu_allocation": "cpu_allocation", "memory_allocation": "memory_allocation", "name": "name", - "parent": "parent", }, - "path": {}, + "path": {"resource_pool": "resource_pool"}, }, - "delete": {"query": {}, "body": {}, "path": {"resource_pool": "resource_pool"}}, - "update": { + "create": { "query": {}, "body": { "cpu_allocation": "cpu_allocation", "memory_allocation": "memory_allocation", "name": "name", + "parent": "parent", }, - "path": {"resource_pool": "resource_pool"}, + "path": {}, }, } # pylint: disable=line-too-long diff --git a/plugins/modules/vcenter_resourcepool_info.py b/plugins/modules/vcenter_resourcepool_info.py index 0b80bb7ee..7dd4bd1e0 100644 --- a/plugins/modules/vcenter_resourcepool_info.py +++ b/plugins/modules/vcenter_resourcepool_info.py @@ -119,7 +119,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.3.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_storage_policies_info.py b/plugins/modules/vcenter_storage_policies_info.py index b8b24092c..3a7138964 100644 --- a/plugins/modules/vcenter_storage_policies_info.py +++ b/plugins/modules/vcenter_storage_policies_info.py @@ -70,7 +70,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.3.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm.py b/plugins/modules/vcenter_vm.py index 1aed4bc59..a88f44afb 100644 --- a/plugins/modules/vcenter_vm.py +++ b/plugins/modules/vcenter_vm.py @@ -1005,7 +1005,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -1267,12 +1267,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "relocate": { - "query": {}, - "body": {"disks": "disks", "placement": "placement"}, - "path": {"vm": "vm"}, - }, - "unregister": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "create": { "query": {}, "body": { @@ -1297,7 +1291,6 @@ }, "path": {}, }, - "delete": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "clone": { "query": {}, "body": { @@ -1311,17 +1304,13 @@ }, "path": {}, }, - "register": { + "delete": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "relocate": { "query": {}, - "body": { - "datastore": "datastore", - "datastore_path": "datastore_path", - "name": "name", - "path": "path", - "placement": "placement", - }, - "path": {}, + "body": {"disks": "disks", "placement": "placement"}, + "path": {"vm": "vm"}, }, + "unregister": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "instant_clone": { "query": {}, "body": { @@ -1336,6 +1325,17 @@ }, "path": {}, }, + "register": { + "query": {}, + "body": { + "datastore": "datastore", + "datastore_path": "datastore_path", + "name": "name", + "path": "path", + "placement": "placement", + }, + "path": {}, + }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_guest_customization.py b/plugins/modules/vcenter_vm_guest_customization.py index 539f1ec5d..e243e4eba 100644 --- a/plugins/modules/vcenter_vm_guest_customization.py +++ b/plugins/modules/vcenter_vm_guest_customization.py @@ -218,7 +218,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_filesystem_directories.py b/plugins/modules/vcenter_vm_guest_filesystem_directories.py index 683fe23d2..620033a75 100644 --- a/plugins/modules/vcenter_vm_guest_filesystem_directories.py +++ b/plugins/modules/vcenter_vm_guest_filesystem_directories.py @@ -143,7 +143,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -203,21 +203,20 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "move": { - "query": {}, - "body": {"credentials": "credentials", "new_path": "new_path", "path": "path"}, - "path": {"vm": "vm"}, - }, - "create_temporary": { + "delete": { "query": {}, "body": { "credentials": "credentials", - "parent_path": "parent_path", - "prefix": "prefix", - "suffix": "suffix", + "path": "path", + "recursive": "recursive", }, "path": {"vm": "vm"}, }, + "move": { + "query": {}, + "body": {"credentials": "credentials", "new_path": "new_path", "path": "path"}, + "path": {"vm": "vm"}, + }, "create": { "query": {}, "body": { @@ -227,12 +226,13 @@ }, "path": {"vm": "vm"}, }, - "delete": { + "create_temporary": { "query": {}, "body": { "credentials": "credentials", - "path": "path", - "recursive": "recursive", + "parent_path": "parent_path", + "prefix": "prefix", + "suffix": "suffix", }, "path": {"vm": "vm"}, }, diff --git a/plugins/modules/vcenter_vm_guest_identity_info.py b/plugins/modules/vcenter_vm_guest_identity_info.py index 00fe5a24f..7b606c258 100644 --- a/plugins/modules/vcenter_vm_guest_identity_info.py +++ b/plugins/modules/vcenter_vm_guest_identity_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_localfilesystem_info.py b/plugins/modules/vcenter_vm_guest_localfilesystem_info.py index 6bea9c5f2..b76764e10 100644 --- a/plugins/modules/vcenter_vm_guest_localfilesystem_info.py +++ b/plugins/modules/vcenter_vm_guest_localfilesystem_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_networking_info.py b/plugins/modules/vcenter_vm_guest_networking_info.py index 9205b1a5a..c3adc2bfc 100644 --- a/plugins/modules/vcenter_vm_guest_networking_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py b/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py index 918ecd099..63074c400 100644 --- a/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_interfaces_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_networking_routes_info.py b/plugins/modules/vcenter_vm_guest_networking_routes_info.py index 497cf3802..b84f735e8 100644 --- a/plugins/modules/vcenter_vm_guest_networking_routes_info.py +++ b/plugins/modules/vcenter_vm_guest_networking_routes_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_operations_info.py b/plugins/modules/vcenter_vm_guest_operations_info.py index c185737ad..5cd452880 100644 --- a/plugins/modules/vcenter_vm_guest_operations_info.py +++ b/plugins/modules/vcenter_vm_guest_operations_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.0.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_guest_power.py b/plugins/modules/vcenter_vm_guest_power.py index 6b1711c30..88857f99c 100644 --- a/plugins/modules/vcenter_vm_guest_power.py +++ b/plugins/modules/vcenter_vm_guest_power.py @@ -77,7 +77,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -141,8 +141,8 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { "reboot": {"query": {}, "body": {}, "path": {"vm": "vm"}}, - "standby": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "shutdown": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "standby": {"query": {}, "body": {}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_guest_power_info.py b/plugins/modules/vcenter_vm_guest_power_info.py index 6093fdbef..435849e35 100644 --- a/plugins/modules/vcenter_vm_guest_power_info.py +++ b/plugins/modules/vcenter_vm_guest_power_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware.py b/plugins/modules/vcenter_vm_hardware.py index 3741dcc00..d0df428e8 100644 --- a/plugins/modules/vcenter_vm_hardware.py +++ b/plugins/modules/vcenter_vm_hardware.py @@ -132,7 +132,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -166,7 +166,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "upgrade": {"query": {}, "body": {"version": "version"}, "path": {"vm": "vm"}}, "update": { "query": {}, "body": { @@ -175,6 +174,7 @@ }, "path": {"vm": "vm"}, }, + "upgrade": {"query": {}, "body": {"version": "version"}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_hardware_adapter_sata.py b/plugins/modules/vcenter_vm_hardware_adapter_sata.py index 35b926be7..4b6d3a3e9 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_sata.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_sata.py @@ -24,7 +24,6 @@ - If unset, the server will choose an available bus number; if none is available, the request will fail. type: int - default: 0 label: description: - The name of the item @@ -103,7 +102,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -157,12 +156,12 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "delete": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, "create": { "query": {}, "body": {"bus": "bus", "pci_slot_number": "pci_slot_number", "type": "type"}, "path": {"vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py b/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py index dfd9b48a0..7a21cef69 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_sata_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py index f53ea572d..a379d363b 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py @@ -24,7 +24,6 @@ - If unset, the server will choose an available bus number; if none is available, the request will fail. type: int - default: 0 label: description: - The name of the item @@ -117,7 +116,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -175,6 +174,12 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "delete": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, + "update": { + "query": {}, + "body": {"sharing": "sharing"}, + "path": {"adapter": "adapter", "vm": "vm"}, + }, "create": { "query": {}, "body": { @@ -185,12 +190,6 @@ }, "path": {"vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"adapter": "adapter", "vm": "vm"}}, - "update": { - "query": {}, - "body": {"sharing": "sharing"}, - "path": {"adapter": "adapter", "vm": "vm"}, - }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py b/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py index 19328cefd..bf39c63c4 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_scsi_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_boot.py b/plugins/modules/vcenter_vm_hardware_boot.py index 26e25147f..f8dfda5b2 100644 --- a/plugins/modules/vcenter_vm_hardware_boot.py +++ b/plugins/modules/vcenter_vm_hardware_boot.py @@ -121,7 +121,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_boot_device.py b/plugins/modules/vcenter_vm_hardware_boot_device.py index 827addc17..1e98def5d 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_device.py +++ b/plugins/modules/vcenter_vm_hardware_boot_device.py @@ -106,7 +106,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_boot_device_info.py b/plugins/modules/vcenter_vm_hardware_boot_device_info.py index bfd62de57..6ff427833 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_device_info.py +++ b/plugins/modules/vcenter_vm_hardware_boot_device_info.py @@ -66,7 +66,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_boot_info.py b/plugins/modules/vcenter_vm_hardware_boot_info.py index e4f5882e5..7d3686209 100644 --- a/plugins/modules/vcenter_vm_hardware_boot_info.py +++ b/plugins/modules/vcenter_vm_hardware_boot_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_cdrom.py b/plugins/modules/vcenter_vm_hardware_cdrom.py index 7cbbcbe44..b7b007cad 100644 --- a/plugins/modules/vcenter_vm_hardware_cdrom.py +++ b/plugins/modules/vcenter_vm_hardware_cdrom.py @@ -162,7 +162,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -224,7 +224,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "disconnect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, "connect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, "create": { "query": {}, @@ -239,6 +238,7 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, + "disconnect": {"query": {}, "body": {}, "path": {"cdrom": "cdrom", "vm": "vm"}}, "update": { "query": {}, "body": { diff --git a/plugins/modules/vcenter_vm_hardware_cdrom_info.py b/plugins/modules/vcenter_vm_hardware_cdrom_info.py index bb50e8c4e..a4bbcd75a 100644 --- a/plugins/modules/vcenter_vm_hardware_cdrom_info.py +++ b/plugins/modules/vcenter_vm_hardware_cdrom_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_cpu.py b/plugins/modules/vcenter_vm_hardware_cpu.py index 7bc303fa8..2b7490f09 100644 --- a/plugins/modules/vcenter_vm_hardware_cpu.py +++ b/plugins/modules/vcenter_vm_hardware_cpu.py @@ -107,7 +107,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_cpu_info.py b/plugins/modules/vcenter_vm_hardware_cpu_info.py index 0fd277351..5e23cf102 100644 --- a/plugins/modules/vcenter_vm_hardware_cpu_info.py +++ b/plugins/modules/vcenter_vm_hardware_cpu_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_disk.py b/plugins/modules/vcenter_vm_hardware_disk.py index 50a05d610..96175b67d 100644 --- a/plugins/modules/vcenter_vm_hardware_disk.py +++ b/plugins/modules/vcenter_vm_hardware_disk.py @@ -194,7 +194,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -256,6 +256,12 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { + "delete": {"query": {}, "body": {}, "path": {"disk": "disk", "vm": "vm"}}, + "update": { + "query": {}, + "body": {"backing": "backing"}, + "path": {"disk": "disk", "vm": "vm"}, + }, "create": { "query": {}, "body": { @@ -269,12 +275,6 @@ }, "path": {"vm": "vm"}, }, - "delete": {"query": {}, "body": {}, "path": {"disk": "disk", "vm": "vm"}}, - "update": { - "query": {}, - "body": {"backing": "backing"}, - "path": {"disk": "disk", "vm": "vm"}, - }, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_hardware_disk_info.py b/plugins/modules/vcenter_vm_hardware_disk_info.py index 50915235c..c8bbb8556 100644 --- a/plugins/modules/vcenter_vm_hardware_disk_info.py +++ b/plugins/modules/vcenter_vm_hardware_disk_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_ethernet.py b/plugins/modules/vcenter_vm_hardware_ethernet.py index 6197d3710..07736b538 100644 --- a/plugins/modules/vcenter_vm_hardware_ethernet.py +++ b/plugins/modules/vcenter_vm_hardware_ethernet.py @@ -188,7 +188,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -305,7 +305,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "disconnect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, "connect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, "create": { "query": {}, @@ -323,6 +322,7 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, + "disconnect": {"query": {}, "body": {}, "path": {"nic": "nic", "vm": "vm"}}, "update": { "query": {}, "body": { diff --git a/plugins/modules/vcenter_vm_hardware_ethernet_info.py b/plugins/modules/vcenter_vm_hardware_ethernet_info.py index 9621c27b2..a41f81039 100644 --- a/plugins/modules/vcenter_vm_hardware_ethernet_info.py +++ b/plugins/modules/vcenter_vm_hardware_ethernet_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_floppy.py b/plugins/modules/vcenter_vm_hardware_floppy.py index e99981428..78ab7f1ea 100644 --- a/plugins/modules/vcenter_vm_hardware_floppy.py +++ b/plugins/modules/vcenter_vm_hardware_floppy.py @@ -118,7 +118,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -177,7 +177,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "disconnect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, "connect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, "create": { "query": {}, @@ -189,6 +188,7 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, + "disconnect": {"query": {}, "body": {}, "path": {"floppy": "floppy", "vm": "vm"}}, "update": { "query": {}, "body": { diff --git a/plugins/modules/vcenter_vm_hardware_floppy_info.py b/plugins/modules/vcenter_vm_hardware_floppy_info.py index f87b93090..39dd1df2d 100644 --- a/plugins/modules/vcenter_vm_hardware_floppy_info.py +++ b/plugins/modules/vcenter_vm_hardware_floppy_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_info.py b/plugins/modules/vcenter_vm_hardware_info.py index 1a0872c52..72206a028 100644 --- a/plugins/modules/vcenter_vm_hardware_info.py +++ b/plugins/modules/vcenter_vm_hardware_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_memory.py b/plugins/modules/vcenter_vm_hardware_memory.py index a519aa2ca..ba5e101b3 100644 --- a/plugins/modules/vcenter_vm_hardware_memory.py +++ b/plugins/modules/vcenter_vm_hardware_memory.py @@ -97,7 +97,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_memory_info.py b/plugins/modules/vcenter_vm_hardware_memory_info.py index 95459ab6d..5be9ca710 100644 --- a/plugins/modules/vcenter_vm_hardware_memory_info.py +++ b/plugins/modules/vcenter_vm_hardware_memory_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_parallel.py b/plugins/modules/vcenter_vm_hardware_parallel.py index 91207349c..7d3b285fa 100644 --- a/plugins/modules/vcenter_vm_hardware_parallel.py +++ b/plugins/modules/vcenter_vm_hardware_parallel.py @@ -117,7 +117,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -169,7 +169,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "create": { "query": {}, @@ -181,6 +180,7 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "update": { "query": {}, "body": { diff --git a/plugins/modules/vcenter_vm_hardware_parallel_info.py b/plugins/modules/vcenter_vm_hardware_parallel_info.py index 204a8e8a1..377de928c 100644 --- a/plugins/modules/vcenter_vm_hardware_parallel_info.py +++ b/plugins/modules/vcenter_vm_hardware_parallel_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_hardware_serial.py b/plugins/modules/vcenter_vm_hardware_serial.py index 6e8b44c16..331a07c8e 100644 --- a/plugins/modules/vcenter_vm_hardware_serial.py +++ b/plugins/modules/vcenter_vm_hardware_serial.py @@ -156,7 +156,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -244,7 +244,6 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "connect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "create": { "query": {}, @@ -257,6 +256,7 @@ "path": {"vm": "vm"}, }, "delete": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, + "disconnect": {"query": {}, "body": {}, "path": {"port": "port", "vm": "vm"}}, "update": { "query": {}, "body": { diff --git a/plugins/modules/vcenter_vm_hardware_serial_info.py b/plugins/modules/vcenter_vm_hardware_serial_info.py index 1587b135f..2d07eaec9 100644 --- a/plugins/modules/vcenter_vm_hardware_serial_info.py +++ b/plugins/modules/vcenter_vm_hardware_serial_info.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_info.py b/plugins/modules/vcenter_vm_info.py index 0e12c5969..9b2afb07b 100644 --- a/plugins/modules/vcenter_vm_info.py +++ b/plugins/modules/vcenter_vm_info.py @@ -137,7 +137,7 @@ type: list author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_libraryitem_info.py b/plugins/modules/vcenter_vm_libraryitem_info.py index bd8943625..69465fd9e 100644 --- a/plugins/modules/vcenter_vm_libraryitem_info.py +++ b/plugins/modules/vcenter_vm_libraryitem_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_power.py b/plugins/modules/vcenter_vm_power.py index 04a7d4ec3..f1ba06bb4 100644 --- a/plugins/modules/vcenter_vm_power.py +++ b/plugins/modules/vcenter_vm_power.py @@ -76,7 +76,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -229,10 +229,10 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "suspend": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "reset": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "stop": {"query": {}, "body": {}, "path": {"vm": "vm"}}, "start": {"query": {}, "body": {}, "path": {"vm": "vm"}}, - "reset": {"query": {}, "body": {}, "path": {"vm": "vm"}}, + "suspend": {"query": {}, "body": {}, "path": {"vm": "vm"}}, } # pylint: disable=line-too-long from ansible.module_utils.basic import env_fallback diff --git a/plugins/modules/vcenter_vm_power_info.py b/plugins/modules/vcenter_vm_power_info.py index 9586bb36e..f7cb09df6 100644 --- a/plugins/modules/vcenter_vm_power_info.py +++ b/plugins/modules/vcenter_vm_power_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_storage_policy.py b/plugins/modules/vcenter_vm_storage_policy.py index 058e3bd8b..4ef7b3664 100644 --- a/plugins/modules/vcenter_vm_storage_policy.py +++ b/plugins/modules/vcenter_vm_storage_policy.py @@ -101,7 +101,7 @@ type: dict author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_storage_policy_compliance.py b/plugins/modules/vcenter_vm_storage_policy_compliance.py index 76883b435..b59d5bffe 100644 --- a/plugins/modules/vcenter_vm_storage_policy_compliance.py +++ b/plugins/modules/vcenter_vm_storage_policy_compliance.py @@ -89,7 +89,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_storage_policy_compliance_info.py b/plugins/modules/vcenter_vm_storage_policy_compliance_info.py index f2978cb31..0b1062445 100644 --- a/plugins/modules/vcenter_vm_storage_policy_compliance_info.py +++ b/plugins/modules/vcenter_vm_storage_policy_compliance_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_storage_policy_info.py b/plugins/modules/vcenter_vm_storage_policy_info.py index 3bbebd983..75a146bf2 100644 --- a/plugins/modules/vcenter_vm_storage_policy_info.py +++ b/plugins/modules/vcenter_vm_storage_policy_info.py @@ -67,7 +67,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_tools.py b/plugins/modules/vcenter_vm_tools.py index ef0e034d3..7b28f461c 100644 --- a/plugins/modules/vcenter_vm_tools.py +++ b/plugins/modules/vcenter_vm_tools.py @@ -87,7 +87,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 @@ -150,14 +150,14 @@ # This structure describes the format of the data expected by the end-points PAYLOAD_FORMAT = { - "upgrade": { + "update": { "query": {}, - "body": {"command_line_options": "command_line_options"}, + "body": {"upgrade_policy": "upgrade_policy"}, "path": {"vm": "vm"}, }, - "update": { + "upgrade": { "query": {}, - "body": {"upgrade_policy": "upgrade_policy"}, + "body": {"command_line_options": "command_line_options"}, "path": {"vm": "vm"}, }, } # pylint: disable=line-too-long diff --git a/plugins/modules/vcenter_vm_tools_info.py b/plugins/modules/vcenter_vm_tools_info.py index 1da146e94..5b98bf5d4 100644 --- a/plugins/modules/vcenter_vm_tools_info.py +++ b/plugins/modules/vcenter_vm_tools_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_tools_installer.py b/plugins/modules/vcenter_vm_tools_installer.py index 3e47a26ab..16663c642 100644 --- a/plugins/modules/vcenter_vm_tools_installer.py +++ b/plugins/modules/vcenter_vm_tools_installer.py @@ -81,7 +81,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vm_tools_installer_info.py b/plugins/modules/vcenter_vm_tools_installer_info.py index d3cd7b664..755f2a773 100644 --- a/plugins/modules/vcenter_vm_tools_installer_info.py +++ b/plugins/modules/vcenter_vm_tools_installer_info.py @@ -65,7 +65,7 @@ type: str author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 0.1.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vmtemplate_libraryitems.py b/plugins/modules/vcenter_vmtemplate_libraryitems.py index 59b09697d..b8d74b8fc 100644 --- a/plugins/modules/vcenter_vmtemplate_libraryitems.py +++ b/plugins/modules/vcenter_vmtemplate_libraryitems.py @@ -325,7 +325,7 @@ type: dict author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.2.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 diff --git a/plugins/modules/vcenter_vmtemplate_libraryitems_info.py b/plugins/modules/vcenter_vmtemplate_libraryitems_info.py index 4f93875e2..b9821946b 100644 --- a/plugins/modules/vcenter_vmtemplate_libraryitems_info.py +++ b/plugins/modules/vcenter_vmtemplate_libraryitems_info.py @@ -67,7 +67,7 @@ type: bool author: - Ansible Cloud Team (@ansible-collections) -version_added: 1.0.0 +version_added: 2.2.0 requirements: - vSphere 7.0.3 or greater - python >= 3.6 From 8c5ebb1fea0ac1a8719a737504304444c8d7b2ef Mon Sep 17 00:00:00 2001 From: Mike Morency Date: Thu, 15 Aug 2024 11:02:48 -0400 Subject: [PATCH 4/4] sanity --- plugins/modules/vcenter_vm_hardware_adapter_sata.py | 1 + plugins/modules/vcenter_vm_hardware_adapter_scsi.py | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/modules/vcenter_vm_hardware_adapter_sata.py b/plugins/modules/vcenter_vm_hardware_adapter_sata.py index 4b6d3a3e9..27a71035b 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_sata.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_sata.py @@ -24,6 +24,7 @@ - If unset, the server will choose an available bus number; if none is available, the request will fail. type: int + default: 0 label: description: - The name of the item diff --git a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py index a379d363b..010c8c210 100644 --- a/plugins/modules/vcenter_vm_hardware_adapter_scsi.py +++ b/plugins/modules/vcenter_vm_hardware_adapter_scsi.py @@ -24,6 +24,7 @@ - If unset, the server will choose an available bus number; if none is available, the request will fail. type: int + default: 0 label: description: - The name of the item