VMware: HTTPAPI connection plugin - ansible/community GitHub Wiki

VMware ReST HTTPAPI Design Specification

Overview

This document describes the design philosophy, milestones and objectives to create a VMware ecosystem based on the new ReST API introduced in vSphere 6.x, using the HTTPAPI connection plugin, developed by Ansible's Networking Team. We will be listing all ReST API related requirements. Feel free to edit this page.

Requirements

  • Develop a REST API infrastructure in Ansible for dealing with VMware infrastructure
  • Develop guidelines, design specifications with community to drive this effort
  • Write documentation for installation and user scenarios for httpapi plugin
  • Try to target modules related to Content library, tagging etc. as part of this effort
  • Develop a role like network-engine for Ansible VMware
  • Unit testing for VMware REST API infrastructure.
  • Create a Mock server in Flask or something as GOVCSIM does not support REST APIs NOTE(Gonéri): this is a "nice to have", not a requirement
  • _facts modules will be renamed to _info modules to comply with module renaming transition.

General

  1. GET or queries will default to retrieve multiple objects if the filter specs warrant it.
  2. Any other command, such as PUT, POST, PATCH or DELETE, or any state other than query, such as 'present' or 'absent', will default to assert a single object.
  • Setting 'allow_multiples' to True allows the command to process multiple objects.
  • The command will fail if filter specs returns multiple objects without 'allow_multiples' set True.
  1. The new module library will be divided into sections loosely based on VMware's PowerCLI library
  • Each section will be maintained in its own directory.
  • See Vmware Vsphere Powercli Reference: Automating Vsphere Administration, second edition, January 2016, by Luc Dekens, Alan Renouf, Jonathan Medd, et al.
  1. Variables with an 'id' suffix, [OBJECT]_id, contain VMware's internal object id name, e.g. cluster_id. The value of these variables can be used directly in an API request.
  2. Variables with a 'name' suffix, [OBJECT]_name, contain the display name of the object, e.g. cluster_name. The value of these variables will usually require a lookup to obtain VMware's corresponding internal object id. Such look ups returning multiple ids is where the 'allow_multiples' assert comes into play.
  3. Filters are specified as filter.[OBJECT][SUFFIX], e.g. filter.cluster_id filters on VMware's internal object id, while filter.cluster_name filters on the cluster's display name.
  4. Filters by name will have to make additional calls to convert name to one or more internal id's.

Library

Core

This section provides direct implementation of VMware ReST API commands. Consists of a single module that implements all APIs, and multiple modules that each implement all relevant commands for a single API entity, as specified by VMware's Swagger document. Multiple related API entities may be combined into a single module if deemed more efficient. It is recommended that the individual modules simply parse their params and pass to vmware_commands for execution to minimize redundant coding. The modules are

  • vmware_core_commands
    • implements all VMware ReSTful APIs
    • commands can be placed into a list to be executed in order
    • commands are of the form [COMMAND] [API] [OBJECT] [ACTION] [param:value]...
      • COMMAND is one of PATCH, POST, PUT, or DELETE
      • API is one of APPLIANCE, CIS, CONTENT, VAPI, or VCENTER
      • OBJECT is a valid API entity defined in VMware's Swagger document
      • ACTION is an optional field usually required for a PATCH, POST or PUT
      • Optional parameters can be specified as colon-separated name-value pairs
    • relevant filters and modifiers can be specified per command
    • supports all command filters and modifiers
  • vmware_core_info
    • implements all VMware ReSTful APIs
    • commands can be placed into a list to be executed in order
    • commands are of the form [COMMAND] [API] [OBJECT] [ACTION]
      • COMMAND is one of GET or POST
      • API is one of APPLIANCE, CIS, CONTENT, VAPI or VCENTER
      • OBJECT is a valid API entity defined in VMware's Swagger document
      • ACTION is an optional field for the POST command
      • Optional parameters can be specified as colon-separated name-value pairs
    • relevant filters and modifiers can be specified per command
    • supports all command filters and modifiers
  • vmware_appliance_access
    • implements
      • /appliance/access/consolecli
      • /appliance/access/dcui
      • /appliance/access/shell
      • /appliance/access/ssh
    • commands
      • PUT
    • params
      • consolecli: bool
      • dcui: bool
      • shell: bool
      • ssh: bool
  • vmware_appliance_access_info
    • implements
      • /appliance/access/consolecli
      • /appliance/access/dcui
      • /appliance/access/shell
      • /appliance/access/ssh
    • commands
      • GET
    • status: coded
  • vmware_appliance_health_info
    • implements
      • /appliance/health
      • /appliance/health/applmgmt
      • /appliance/health/databasestorage
      • /appliance/health/load
      • /appliance/health/mem
      • /appliance/health/softwarepackages
      • /appliance/health/storage
      • /appliance/health/swap
      • /appliance/health/system
      • /appliance/health/system/lastcheck
    • commands
      • GET
  • vmware_appliance_accounts
    • implements
      • /appliance/local-accounts
    • commands
      • PATCH
      • PUT
      • POST
      • DELETE
    • params
      • config:
        • max_days_between_password_change: int
        • inactive_after_password_expiration: bool
        • days_after_password_expiration: int
        • password_expires: bool
        • full_name: string
        • email: string
        • enabled: bool
        • roles: [string]
        • password: string
        • password_expires_at: date-time
        • old_password: string
        • warn_days_before_password_expiration: int
        • min_days_between_password_change: int
      • username: string
      • state: one of ['present','absent']
  • vmware_appliance_accounts_info
    • implements
      • /appliance/local-accounts
    • commands
      • GET
    • params
      • username: string
  • vmware_appliance_accounts_policy
    • implements
      • /appliance/local-accounts/global-policy
    • commands
      • PUT
    • params
      • policy:
        • max_days: int
        • warn_days: int
        • min_days: int
  • vmware_appliance_accounts_policy_info
    • implements
      • /appliance/local-accounts/global-policy
    • commands
      • GET
  • vmware_appliance_logging
    • implements
      • /appliance/logging/forwarding
    • commands
      • PUT
      • POST
    • actions
      • test
    • params
      • cfg_list: array of
        • hostname: string
        • port: int
        • protocol: one of ['TLS',]
      • send_test_message: string
  • vmware_appliance_logging_info
    • implements
      • /appliance/logging/forwarding
    • commands
      • GET
  • vmware_appliance_monitoring_info
    • implements
      • /appliance/monitoring
      • /appliance/monitoring/query
    • commands
      • GET
    • params
      • stat: string
      • query: bool
  • vmware_appliance_networking
    • implements
      • /appliance/networking
      • /appliance/networking/dns/domains
      • /appliance/networking/dns/hostname
      • /appliance/networking/dns/hostname/test
      • /appliance/networking/dns/servers
      • /appliance/networking/dns/servers/test
      • /appliance/networking/firewall/inbound
      • /appliance/networking/interfaces
      • /appliance/networking/interfaces/ipv4
      • /appliance/networking/interfaces/ipv6
      • /appliance/networking/noproxy
      • /appliance/networking/proxy
    • commands
      • PATCH
      • PUT
      • POST
      • DELETE
    • actions
      • reset
      • test
    • params
      • ipv6_enabled: bool
      • dns_test: bool
        • sets both hostname_test and servers_test
      • domain: string
      • domains: [string]
      • hostname: string
      • hostname_test: bool
      • interface_name: string
        • prefix: int
        • address: string
        • default_gateway: string
        • mode: one of ['DHCP','STATIC']
      • interface_name: string
        • addresses: array of
          • prefix: int
          • address: string
        • dhcp: bool
        • default_gateway: string
        • autoconf: bool
      • protocol: string
        • server: string
        • enabled: bool
        • port: int
        • password: string
        • username: string
      • proxy_test: bool
      • reset: bool
      • rules: array of
        • policy: one of ['accept','deny','ignore']
        • prefix: int
        • address: string
        • interface_name: string
      • server: string
      • servers: [string]
      • servers_config:
        • servers: [string]
        • mode: 'dhcp'
      • servers_test: bool
  • vmware_appliance_networking_info
    • implements
      • /appliance/networking
      • /appliance/networking/dns/domains
      • /appliance/networking/dns/hostname
      • /appliance/networking/dns/servers
      • /appliance/networking/firewall/inbound
      • /appliance/networking/interfaces
      • /appliance/networking/interfaces/ipv4
      • /appliance/networking/interfaces/ipv6
      • /appliance/networking/noproxy
      • /appliance/networking/proxy
    • commands
      • GET
    • params
      • protocol: string
  • vmware_appliance_ntp
    • implements
      • /appliance/ntp
      • /appliance/ntp/test
    • commands
      • PUT
      • POST
    • params
      • servers: [string]
  • vmware_appliance_ntp_info
    • implements
      • /appliance/ntp
    • commands
      • GET
  • vmware_appliance_recovery
    • implements
      • /appliance/recovery/backup/job
      • /appliance/recovery/backup/schedules
      • /appliance/recovery/backup/schedules/update
      • /appliance/recovery/reconciliation/job
      • /appliance/recovery/restore/job
    • commands
      • PUT
      • POST
      • DELETE
    • actions
      • run
    • params
      • job_id: string
      • backup_piece:
        • location: string
        • parts: [string]
        • location_password: string
        • comment: string
        • location_type: one of ['FTP',]
        • backup_password: string
        • location_user: string
      • reconciliation_job:
        • ignore_warning: bool
        • sso_admin_user_password: string
        • sso_admin_user_name: string
      • restore_piece:
        • ignore_warnings: bool
        • sso_admin_user_password: string
        • location: string
        • location_password: string
        • sso_admin_user_name: string
        • location_type: one of ['FTP',]
        • backup_password: string
        • location_user: string
      • schedule: string
        • location: string
        • parts: [string]
        • location_password: string
        • max_count: int
        • enable: bool
        • recurrence_info:
          • days: ['MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY']
          • minute: int[0:59]
          • hour: int[0:23]
        • location_user: string
      • state: one of ['present','absent']
  • vmware_appliance_recovery_info
    • implements
      • /appliance/recovery
      • /appliance/recovery/backup/validate
      • /appliance/recovery/backup/job
      • /appliance/recovery/backup/job/details
      • /appliance/recovery/backup/parts
      • /appliance/recovery/backup/schedules
      • /appliance/recovery/backup/system-name
      • /appliance/recovery/backup/reconciliation/job
      • /appliance/recovery/restore/validate
      • /appliance/recovery/restore/job
    • commands
      • GET
      • POST
    • params
      • job_id: string
      • parts_id: string
      • schedule: string
      • system_name: string
      • archive: string
  • vmware_appliance_services
    • implements
      • /appliance/services
    • commands
      • POST
    • params
      • service: string
      • state: one of ['present','absent']
    • if service is running and state is 'present', then restart
    • alternatively, always restart when state is 'present'
  • vmware_appliance_services_info
    • implements
      • /appliance/services
    • commands
      • GET
    • params
      • service: string
  • vmware_appliance_shutdown
    • implements
      • /appliance/shutdown/cancel
      • /appliance/shutdown/poweroff
      • /appliance/shutdown/reboot
    • commands
      • POST
  • vmware_appliance_shutdown_info
    • implements
      • /appliance/shutdown
    • commands
      • GET
  • vmware_appliance_system
    • implements
      • /appliance/system/storage
      • /appliance/system/storage/resize
      • /appliance/system/time/timezone
      • /appliance/timesync
    • commands
      • POST
      • PUT
    • actions
      • resize-ex
    • params
      • timezone_name: string
      • timesync_mode: one of ['ENABLED','DISABLED']
  • vmware_appliance_system_info
    • implements
      • /appliance/system/storage
      • /appliance/system/time
      • /appliance/system/time/timezone
      • /appliance/system/uptime
      • /appliance/system/version
      • /appliance/timesync
    • commands
      • GET
  • vmware_appliance_techpreview
    • implements
      • /appliance/techpreview/monitoring/snmp
      • /appliance/techpreview/monitoring/snmp/disable
      • /appliance/techpreview/monitoring/snmp/enable
      • /appliance/techpreview/monitoring/snmp/hash
      • /appliance/techpreview/monitoring/snmp/reset
      • /appliance/techpreview/monitoring/snmp/test
    • commands
      • PUT
      • POST
    • params
      • snmp: one of ['DISABLE','ENABLE','HASH','RESET','TEST']
  • vmware_appliance_techpreview_info
    • implements
      • /appliance/techpreview/monitoring/snmp
      • /appliance/techpreview/monitoring/snmp/limits
      • /appliance/techpreview/monitoring/snmp/stats
      • /appliance/techpreview/services/status/get
    • commands
      • GET
      • POST
  • vmware_appliance_update
    • implements
      • /appliance/update
      • /appliance/update/pending
    • commands
      • POST
      • PUT
      • DELETE
    • actions
      • cancel
      • install
      • precheck
      • stage
      • stage-and-install
      • validate
    • params
      • version: string
      • user_data: [ [key]: [value] ] for 'install' action
      • policy:
        • custom_url: string
        • auto_storage: bool
        • check_schedule:
          • day: ['MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY']
          • hour: int
          • minute: int
        • password: string
        • username: string
  • vmware_appliance_update_info
    • implements
      • /appliance/update
      • /appliance/update/pending
      • /appliance/update/policy
      • /appliance/update/staged
    • commands
      • GET
    • params
      • version: string
  • vmware_appliance_vmon
    • implements
      • /appliance/vmon/service
    • commands
      • PATCH
      • POST
    • params
      • service: string
      • startup_type: one of ['AUTOMATIC','MANUAL']
      • state: one of ['present','absent']
      • if service is running, send restart on 'present' or always send 'restart'
  • vmware_appliance_vmon_info
    • implements
      • /appliance/vmon/service
    • commands
      • GET
    • params
      • service: string
  • vmware_cis_category
    • implements
      • /com/vmware/cis/tagging/category
    • commands
      • PATCH
      • POST
      • DELETE
    • actions
      • add-to-used-by
      • remove-from-used-by
      • revoke-propagating-permissions
    • params
      • category: string
      • description: string
      • cardinality: one of ['SINGLE', 'MULTIPLE']
      • associable_types: ['All','Clusters','Content Libraries','Datacenters','Datastores','Datastore Clusters','Distributed Port Groups','Distributed Switches','Folders','Hosts','Library Items','Networks','Resource Pools','vApps','Virtual Machines']
      • used_by_entity: string
      • state: one of ['present','absent']
  • vmware_cis_category_info
    • implements
      • /com/vmware/cis/tagging/category
    • commands
      • GET
      • POST
    • actions
      • list-used-categories
    • params
      • category: string
      • used_by_entity: string
  • vmware_cis_session
    • implements
      • /com/vmware/cis/session
    • commands
      • POST
      • DELETE
    • params
      • state: one of ['present','absent']
    • this is primarily what the VMware plugin to HTTPAPI uses to log in and out
  • vmware_cis_session_info
    • implements
      • /com/vmware/cis/session
    • commands
      • POST
    • actions
      • get
    • the only relevant action may be to retrieve the current session information
  • vmware_cis_tag
    • implements
      • /com/vmware/cis/tagging/tag
    • commands
      • PATCH
      • POST
      • DELETE
    • actions
      • add-to-used-by
      • remove-from-used-by
      • revoke-propagating-permissions
    • params
      • tag: string
      • name: string
      • category: string
      • description: string
      • used_by_entity: string
      • state: one of ['present','absent','revoked']
  • vmware_cis_tag_info
    • implements
      • /com/vmware/cis/tagging/tag
    • commands
      • GET
      • POST
    • actions
      • list-used-tags
      • list-tags-for-category
    • params
      • tag: string
      • used_by_entity: string
  • vmware_cis_tag_association
    • implements
      • /com/vmware/cis/tagging/tag_association
    • commands
      • POST
    • actions
      • attach-multiple-tags-to-object
      • detach-multiple-tags-from-object
      • attach
      • attach-tag-to-multiple-objects
      • detach
      • detach-tag-from-multiple-objects
    • params
      • tag: string
      • object_id:
        • id: string
        • type: string
      • object_name: string
  • vmware_cis_tag_association_info
    • implements
      • /com/vmware/cis/tagging/tag_association
    • commands
      • POST
    • actions
      • list-attachable-tags
      • list-attached-objects-on-tags
      • list-attached-tags
      • list-attached-tags-on-objects
      • list-attached-objects
    • params
      • tag: string
      • tag_ids: [string]
      • object_id:
        • id: string
        • type: string
      • object_name: string
  • vmware_cis_tasks
    • implements
      • /cis/tasks
    • commands
      • POST
    • actions
      • cancel
    • params
      • task_id: string
  • vmware_cis_tasks_info
    • implements
      • /cis/tasks
    • commands
      • GET
    • params
      • task_id: string
  • vmware_content_configuration
    • implements
      • /com/vmware/content/configuration
    • commands
      • PATCH
    • params
      • model:
        • maximum_concurrent_item_syncs: int
        • automatic_sync_start_hour: int
        • automatic_sync_stop_hour: int
        • automatic_sync_enabled: bool
  • vmware_content_configuration_info
    • implements
      • /com/vmware/content/configuration
    • commands
      • POST
    • actions
      • get
  • vmware_content_library
    • NOTE: this module needs further research into what are the actual params updated. This will not modify the publishinfo of a local library nor the subscriptioninfo of a subscribed library, so why these are specified is unclear.
    • implements
      • /com/vmware/content/library
      • /com/vmware/content/library/subscriptions
      • /com/vmware/content/library/local-library
      • /com/vmware/content/library/subscribed-library
    • commands
      • PATCH
      • POST
    • actions
      • delete
      • publish
      • probe
      • evict
      • sync
    • params
      • library: string
      • update_spec:
        • name: string
        • last_sync_time: date-time
        • optimization_info:
          • optimize_remote_publishing: true
        • id: string
        • type: one of ['LOCAL','SUBSCRIBED']
        • storage_backings:
          • storage_uri: string
          • type: one of ['DATASTORE',]
          • datastore_id: string
        • version
        • server_guid: string
        • publish_info
          • current_password: string
          • published: bool
          • persist_json_enabled: bool
          • publish_url: string
          • authentication_method: one of ['BASIC',]
          • user_name: string
          • password: string
        • creation_time: date-time
        • last_modified_time: date-time
        • subscription_info:
          • subscription_url: string
          • on_demand: bool
          • source_info:
            • source_library: string
            • subscription: string
          • password: string
          • user_name: string
          • authentication_method: one of ['BASIC',]
          • ssl_thumbprint: string
          • automatic_sync_enabled: bool
        • description: string
  • vmware_content_library_info
    • implements
      • /com/vmware/content/library
      • /com/vmware/content/library/subscriptions
      • /com/vmware/content/local-library
      • /com/vmware/content/subscribed-library
    • commands
      • GET
      • POST
    • actions
      • find
      • get
    • params
      • library: string
      • library_type: one of ['LOCAL','SUBSCRIBED']
  • vmware_content_item
    • Much of the implemented APIs will be hidden from the user. The user will specify library and item names, then identify the files to download or update. Download and update sessions have a five minute life span and require keep-alive to extend them.
    • implements
      • /com/vmware/content/library/item
      • /com/vmware/content/library/item/download-session
      • /com/vmware/content/library/item/download-session/file
      • /com/vmware/content/library/item/update-session
      • /com/vmware/content/library/item/update-session/file
      • /com/vmware/content/library/subscribed-item
      • /vcenter/vm-template/library-items
    • commands
      • PATCH
      • POST
      • DELETE
    • actions
      • publish
      • copy
      • prepare
      • cancel
      • fail
      • keep-alive
      • complete
      • evict
      • sync
      • deploy
    • params
      • library_item: string
      • item_spec: used for item_create_spec, item_update_spec, destination_create_spec
        • name: string
        • description: string
        • content_version: string
        • last_sync_time: date-time
        • library: string
        • cached: bool
        • id: string
        • type: string
        • version: string
        • size: int
        • creation_time: date-time
        • last_modified_time: date-time
        • metadata_version: string
        • source_id: string
      • publish_spec:
        • force_sync_content: bool
        • subscriptions: [ subscription: string ]
      • vm_create_spec:
        • description: string
        • source_vm: string
        • library: string
        • name: string
        • disk_storage_overrides: array of
          • value:
            • storage_policy:
              • policy: string
              • type: one of ['USE_SPECIFIED_POLICY']
            • datastore: string
          • key: string
        • placement:
          • resource_pool: string
          • folder: string
          • host: string
          • cluster: string
        • vm_home_storage:
          • storage_policy:
            • policy: string
            • type: one of ['USE_SPECIFIED_POLICY']
          • datastore: string
        • disk_storage:
          • storage_policy:
            • policy: string
            • type: one of ['USE_SPECIFIED_POLICY']
          • datastore: string
      • deploy_spec:
        • guest_customization:
          • name: string
        • description: string
        • disk_storage:
          • storage_policy:
            • policy: string
            • type: one of ['USE_SPECIFIED_POLICY']
          • datastore: string
        • name: string
        • disk_storage_overrides: array of
          • value:
            • storage_policy:
              • policy: string
              • type: one of ['USE_SPECIFIED_POLICY']
            • datastore: string
          • key: string
        • hardware_customization:
          • disks_to_remove: [string]
          • disks_to_update: array of
            • value:
              • capacity: int
            • key: string
          • cpu_update:
            • num_cpus: int
            • num_cores_per_socket: int
          • memory_update:
            • memory: int
          • nics: array of
            • value:
              • network: string
            • key: string
        • vm_home_strategy:
          • storage_policy:
            • policy: string
            • type: one of ['USE_SPECIFIED_POLICY']
          • datastore: string
        • placement:
          • resource_pool: string
          • folder: string
          • host: string
          • cluster: string
        • powered_on: bool
      • client_token: string
      • client_error_message: string
      • progress: int
      • endpoint_type: one of ['DIRECT','HTTPS']
      • file_name: string
      • download_session_id: string
      • update_session_id: string
  • vmware_content_item_info
    • implements
      • /com/vmware/content/library/item
      • /com/vmware/content/library/item/download-session
      • /com/vmware/content/library/item/download-session/file
      • /com/vmware/content/library/item/file
      • /com/vmware/content/library/item/storage
      • /com/vmware/content/library/item/update-session
      • /com/vmware/content/library/item/update-session/file
      • /vcenter/vm-template/library-items
    • commands
      • GET
      • POST
    • actions
      • find
      • get
    • library: string
    • library_item: string
    • find_spec:
      • name: string
      • library_id: string
      • cached: bool
      • type: string
      • source: string
    • download_session_id
    • update_session_id
  • vmware_vapi_metadata_authentication_component
  • vmware_vapi_metadata_authentication_package
  • vmware_vapi_metadata_authentication_service
  • vmware_vapi_metadata_authentication_service_operation
  • vmware_vapi_metadata_cli_command
  • vmware_vapi_metadata_cli_namespace
  • vmware_vapi_metadata_metamodel_component
  • vmware_vapi_metadata_metamodel_enumeration
  • vmware_vapi_metadata_metamodel_package
  • vmware_vapi_metadata_metamodel_resource
  • vmware_vapi_metadata_metamodel_resource_model
  • vmware_vapi_metadata_metamodel_service
  • vmware_vapi_metadata_metamodel_service_operation
  • vmware_vapi_metadata_metamodel_structure
  • vmware_vapi_metadata_privilege_package
  • vmware_vapi_metadata_privilege_service
  • vmware_vapi_metadata_privilege_service_operation
  • vmware_vapi_rest_navigation_component
  • vmware_vapi_rest_navigation_options
  • vmware_vapi_vcenter_activation
  • vmware_vcenter_certificate
    • implements
      • /vcenter/certificate-management/vcenter/tls
      • /vcenter/certificate-management/vcenter/tls-csr
      • /vcenter/certificate-management/vcenter/trusted-root-chains
    • commands
      • PUT
      • POST
      • DELETE
    • actions
      • renew
    • params
      • cert: string
      • key: string
      • duration: int
      • csr_spec:
        • subject_alt_name: string
        • key_size: int
        • country: string
        • organization_unit: string
        • locality: string
        • common_name: string
        • email_address: string
        • organization: string
        • state_or_province: string
      • chain_spec:
        • chain: string
        • cert_chain: [string]
      • state: one of ['present','absent']
  • vmware_vcenter_certificate_info
    • implements
      • /vcenter/certificate-management/vcenter/tls
      • /vcenter/certificate-management/vcenter/trusted-root-chains
    • commands
      • GET
    • params
      • chain: string
  • vmware_vcenter_cluster_info
    • implements
      • /vcenter/cluster
    • commands
      • GET
    • params
      • cluster: string
      • filter.datacenters: [string]
      • filter.folders: [string]
      • filter.clusters: [string]
      • filter.names: [string]
  • vmware_vcenter_datacenter
    • implements
      • /vcenter/datacenter
    • commands
      • POST
      • DELETE
    • params
      • datacenter: string
      • name: string
      • folder: string
      • state: one of ['present','absent']
  • vmware_vcenter_datacenter_info
    • implements
      • /vcenter/datacenter
    • commands
      • GET
    • params
      • filter.datacenters: [string]
      • filter.folders: [string]
      • filter.names: [string]
  • vmware_vcenter_datastore_info
    • implements
      • /vcenter/datastore
      • /vcenter/datastore/default-policy
    • commands
      • GET
    • params
      • datastore: string
      • filter.datastores: [string]
      • filter.datacenters: [string]
      • filter.folders: [string]
      • filter.types: ['','VMFS','NFS','NFS41','CIFS','VSAN','VFFS','VVOL']
      • filter.names: [string]
  • vmware_vcenter_deployment
    • implements
      • /vcenter/deployment
      • /vcenter/deployment/history
      • /vcenter/deployment/install
      • /vcenter/deployment/install/psc/replicated
      • /vcenter/deployment/install/psc/standalone
      • /vcenter/deployment/install/remote-psc
      • /vcenter/deployment/question
      • /vcenter/deployment/upgrade
      • /vcenter/system-config/deployment-type
      • /vcenter/topology/pscs
    • commands
      • POST
    • actions
      • rollback
      • cancel_import
      • pause_import
      • resume_import
      • start_import
      • cancel_install
      • check_install
      • start_install
      • check_replicated_psc
      • check_standalone_psc
      • check_remote_psc
      • answer
      • cancel_upgrade
      • check_upgrade
      • start_upgrade
      • reconfigure
      • convert-to-vcsa-embedded
      • register_psc
      • decommission_psc
    • params
      • import_spec:
        • description: string
        • name: string
      • install_spec:
        • auto_answer: bool
        • vcsa_external:
          • ssl_thumbprint: string
          • sso_admin_password: string
          • ssl_verify: bool
          • https_port: int
          • psc_hostname: string
        • vcsa_embedded:
          • ceip_enabled: bool
          • replicated:
            • partner_hostname: string
            • sso_admin_password: string
            • https_port: int
            • ssl_thumbprint: string
            • ssl_verify: bool
          • standalone:
            • sso_admin_password: string
            • sso_domain_name: string
        • psc:
          • ceip_enabled: bool
          • replicated:
            • sso_site_name: string
            • sso_admin_password: string
            • ssl_verify: bool
            • partner_hostname: string
            • https_port: int
            • ssl_thumbprint: string
          • standalone:
            • sso_site_name: string
            • sso_admin_password: string
            • sso_domain_name: string
      • replicated_psc_spec:
        • sso_site_name: string
        • sso_admin_password: string
        • ssl_verify: bool
        • partner_hostname: string
        • https_port: int
        • ssl_thumbprint: string
      • standalone_psc_spec:
        • sso_site_name: string
        • sso_admin_password: string
        • sso_domain_name: string
      • remote_psc_spec:
        • ssl_thumbprint: string
        • sso_admin_password: string
        • ssl_verify: bool
        • https_port: int
        • psc_hostname: string
      • answer_spec:
        • answer_val: string
        • question_id: string
      • upgrade_spec:
        • auto_answer: bool
        • source_appliance:
          • ssh_verify: bool
          • ssl_verify: bool
          • sso_admin_username: string
          • hostname: string
          • ssh_thumbprint: string
          • root_password: string
          • sso_admin_password: string
          • ssl_thumbprint: string
          • https_port: int
        • psc:
          • ceip_enabled: bool
        • source_location:
          • ssl_verify: bool
          • hostname: string
          • username: string
          • password: string
          • ssl_thumbprint: string
          • https_port: int
        • history:
          • data_set: one of ["EVENTS","TASKS","EVENTS_TASKS"]
          • defer_import: bool
        • vcsa_embedded:
          • ceip_enabled: bool
      • decommission_spec:
        • sso_admin_password: string
        • sso_admin_username: string
        • ssl_thumbprint: string
        • ssl_verify: bool
      • only_precheck: bool
  • vmware_vcenter_deployment_info
    • implements
      • /vcenter/deployment
      • /vcenter/deployment/history
      • /vcenter/deployment/install
      • /vcenter/deployment/install/initial-config/remote-psc/thumbprint
      • /vcenter/deployment/question
      • /vcenter/deployment/upgrade
      • /vcenter/system-config/deployment-type
      • /vcenter/system-config/psc-registration
    • commands
      • GET
  • vmware_vcenter_folder_info
    • implements
      • /vcenter/folder
    • commands
      • GET
    • params
      • filter.datacenters: [string]
      • filter.folders: [string]
      • filter.names: [string]
      • filter.parent_folders: [string]
      • filter.type: string
  • vmware_vcenter_guest_customization_info
    • implements
      • /vcenter/guest/customization-specs
    • commands
      • GET
    • params
      • filter.names: [string]
      • filter.OS_type: string
  • vmware_vcenter_host
    • implements
      • /vcenter/host
    • commands
      • POST
      • DELETE
    • actions
      • connect
      • disconnect
    • params
      • add_spec:
        • user_name: string
        • thumbprint_verification: one of ['NONE']
        • hostname: string
        • folder: string
        • password: string
        • force_add: bool
        • thumbprint: string
        • port: int
      • host: string
      • state: one of ['present','absent','disconnected']
  • vmware_vcenter_host_info
    • implements
      • /vcenter/host
    • commands
      • GET
    • params
      • filter.clusters: [string]
      • filter.names: [string]
      • filter.standalone: bool
      • filter.connection_states: any of ['',CONNECTED','DISCONNECTED','NOT RESPONDING']
      • filter.folders: [string]
      • filter.datacenters: [string]
      • filter.hosts: [string]
  • vmware_vcenter_inventory_info
    • implements
      • /com/vmware/vcenter/inventory/datastore
      • /com/vmware/vcenter/inventory/network
    • commands
      • POST
    • actions
      • find
    • params
      • datastores: [string]
      • networks: [string]
  • vmware_vcenter_network_info
    • implements
      • /vcenter/network
    • commands
      • GET
    • params
      • filter.networks: [string]
      • filter.names: [string]
      • filter.folders: [string]
      • filter.datacenters: [string]
      • filter.types: any of ['','STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK']
  • vmware_vcenter_ovf
    • implements
      • /com/vmware/vcenter/ovf/library-item
    • commands
      • POST
    • actions
      • deploy
    • params
      • create_source:
        • id: string
        • type: string
      • create_spec:
        • description: string
        • flags: [string]
        • name: string
      • create_target:
        • library: string
        • library_item: string
      • client_token: string
      • ovf_library_item: string
      • deployment_spec:
        • additional_parameters: [ dict ]
        • network_mappings: array of
          • key: string
          • value: string
        • accept_all_EULA: bool
        • storage_mappings: array of
          • key: string
          • value:
            • provisioning: one of ['thick','thin']
            • datastore: string
            • type: one of ['DATASTORE']
            • storage_profile: string
        • annotation: string
        • storage_provisioning: one of ['thick','thin']
        • default_datastore: string
        • flags: [string]
        • storage_profile: string
        • name: string
        • locale: string
      • state: one of ['present','absent']
  • vmware_vcenter_ovf_info
    • implements
      • /com/vmware/vcenter/ovf/capability
      • /com/vmware/vcenter/ovf/export-flag
      • /com/vmware/vcenter/ovf/import-flag
      • /com/vmware/vcenter/ovf/library-item
    • commands
      • GET
      • POST
    • actions
      • filter
    • params
      • ovf_library_item: string
      • folder: string
      • resource_pool: string
      • host: string
  • vmware_vcenter_resource_pool_info
    • implements
      • /vcenter/resource-pool
    • commands
      • GET
    • params
      • resource_pool: string
      • filter.clusters: [string]
      • filter.names: [string]
      • filter.parent_resource_pools: [string]
      • filter.resource_pools: [string]
      • filter.datacenters: [string]
      • filter.hosts: [string]
  • vmware_vcenter_service
    • implements
      • /vcenter/services
    • commands
      • PATCH
      • POST
    • actions
      • restart
      • start
      • stop
    • params
      • service: string
      • update_spec:
        • startup_type: one of ['MANUAL','AUTOMATIC']
  • vmware_vcenter_service_info
    • implements
      • /vcenter/services
    • commands
      • GET
    • params
      • service: string
  • vmware_vcenter_storage_policies
  • vmware_vcenter_storage_policies_info
    • implements
      • /vcenter/storage/policies
      • /vcenter/storage/policies/entities/compliance
    • commands
      • GET
      • POST
    • actions
      • check-compatibility
    • params
      • policy: string
      • datastores: [string]
      • filter.policies: [string]
      • filter.status: any of ['','COMPLIANT','NON_COMPLIANT','UNKNOWN','UNKNOWN_COMPLIANCE','NOT_APPLICABLE','OUT_OF_DATE']
      • filter.vms: [string]
  • vmware_vcenter_vcha
    • implements
      • /vcenter/vcha/cluster
      • /vcenter/vcha/cluster/mode
      • /vcenter/vcha/cluster/passive
      • /vcenter/vcha/cluster/witness
    • commands
      • POST
      • PUT
    • actions
      • deploy
      • failover
      • undeploy
      • mode
      • check_passive
      • redeploy_passive
      • check_witness
      • redeploy_witness
      • validate
    • params
      • deploy_spec:
        • witness:
          • placement:
            • name: string
            • management_network: string
            • resource_pool: string
            • ha_network: string
            • host: string
            • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
            • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
            • folder: string
            • storage:
              • datastore: string
          • ha_ip:
            • default_gateway: string
            • ipv4:
              • prefix: int
              • address: string
              • subnet_mask: string
            • ipv6
              • prefix: int
              • address: string
            • dns_servers: [string]
            • ip_family: one of ['IPV4']
        • passive:
          • failover_ip:
            • default_gateway: string
            • ipv4:
              • prefix: int
              • address: string
              • subnet_mask: string
            • ipv6:
              • prefix: int
              • address: string
            • dns_servers: [string]
            • ip_family: one of ['IPV4']
          • placement:
            • name: string
            • management_network: string
            • resource_pool: string
            • ha_network: string
            • host: string
            • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
            • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
            • folder: string
            • storage:
              • datastore: string
          • ha_ip:
            • default_gateway: string
            • ipv4:
              • prefix: int
              • address: string
              • subnet_mask: string
            • ipv6
              • prefix: int
              • address: string
            • dns_servers: [string]
            • ip_family: one of ['IPV4']
        • deployment: one of ['AUTO']
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
        • active:
          • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • ha_ip:
            • default_gateway: string
            • ipv4:
              • prefix: int
              • address: string
              • subnet_mask: string
            • ipv6
              • prefix: int
              • address: string
            • dns_servers: [string]
            • ip_family: one of ['IPV4']
          • ha_network: string
      • failover_spec:
        • planned: bool
      • undeploy_spec:
        • force_delete: bool
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
        • vms:
          • witness:
            • vm: string
            • bios_uuid: string
          • passive:
            • vm: string
            • bios_uuid: string
      • mode_spec:
        • mode: one of ['ENABLED','DISABLED','MAINTENANCE']
      • check_passive_spec:
        • placement:
          • name: string
          • management_network: string
          • resource_pool: string
          • ha_network: string
          • host: string
          • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • folder: string
          • storage:
            • datastore: string
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
      • redeploy_passive_spec:
        • failover_ip:
          • default_gateway: string
          • ipv4:
            • prefix: int
            • address: string
            • subnet_mask: string
          • ipv6:
            • prefix: int
            • address: string
          • dns_servers: [string]
          • ip_family: one of ['IPV4']
        • placement:
          • name: string
          • management_network: string
          • resource_pool: string
          • ha_network: string
          • host: string
          • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • folder: string
          • storage:
            • datastore: string
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
        • ha_ip:
          • default_gateway: string
          • ipv4:
            • prefix: int
            • address: string
            • subnet_mask: string
          • ipv6
            • prefix: int
            • address: string
          • dns_servers: [string]
          • ip_family: one of ['IPV4']
      • check_witness_spec:
        • placement:
          • name: string
          • management_network: string
          • resource_pool: string
          • ha_network: string
          • host: string
          • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • folder: string
          • storage:
            • datastore: string
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
      • redeploy_witness_spec:
        • placement:
          • name: string
          • management_network: string
          • resource_pool: string
          • ha_network: string
          • host: string
          • ha_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • management_network_type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • folder: string
          • storage:
            • datastore: string
        • vc_spec:
          • active_location:
            • port: int
            • ssl_thumbprint: string
            • password: string
            • hostname: string
            • username: string
        • ha_ip:
          • default_gateway: string
          • ipv4:
            • prefix: int
            • address: string
            • subnet_mask: string
          • ipv6
            • prefix: int
            • address: string
          • dns_servers: [string]
          • ip_family: one of ['IPV4']
      • validate_spec:
        • active_location:
          • port: int
          • ssl_thumbprint: string
          • password: string
          • hostname: string
          • username: string
  • vmware_vcenter_vcha_info
    • implements
      • /vcenter/vcha/capabilities
      • /vcenter/vcha/cluster
      • /vcenter/vcha/cluster/active
      • /vcenter/vcha/cluster/deployment-type
      • /vcenter/vcha/cluster/mode
      • /vcenter/vcha/operations
    • commands
      • GET
      • POST
    • actions
      • get
    • params
      • partial: bool
      • vc_spec:
        • active_location:
          • port: int
          • ssl_thumbprint: string
          • password: string
          • hostname: string
          • username: string
  • vmware_vcenter_vm
    • implements
      • /com/vmware/vcenter/iso/image
      • /vcenter/vm
      • /vcenter/vm/vm_id/guest/power
      • /vcenter/vm/vm_id/hardware
      • /vcenter/vm/vm_id/hardware/adapter/sata
      • /vcenter/vm/vm_id/hardware/adapter/scsi
      • /vcenter/vm/vm_id/hardware/boot
      • /vcenter/vm/vm_id/hardware/boot/device
      • /vcenter/vm/vm_id/hardware/cdrom
      • /vcenter/vm/vm_id/hardware/cpu
      • /vcenter/vm/vm_id/hardware/disk
      • /vcenter/vm/vm_id/hardware/ethernet
      • /vcenter/vm/vm_id/hardware/floppy
      • /vcenter/vm/vm_id/hardware/memory
      • /vcenter/vm/vm_id/hardware/parallel
      • /vcenter/vm/vm_id/hardware/serial
      • /vcenter/vm/vm_id/power
      • /vcenter/vm/vm_id/storage/policy
    • commands
      • POST
      • PATCH
      • PUT
      • DELETE
    • actions
      • mount_iso
      • unmount_iso
      • upgrade
      • connect_cdrom
      • disconnect_cdrom
      • connect_floppy
      • disconnect_floppy
      • connect_nic
      • disconnect_nic
      • connect_parallel
      • disconnect_parallel
      • connect_serial
      • disconnect_serial
      • reboot
      • shutdown
      • standby
      • reset
      • start
      • stop
      • suspend
      • check
    • params
      • state: one of ['present','absent']
      • vm: string
      • adapter: string
      • cdrom: string
      • disk: string
      • floppy: string
      • library_item: string
      • nic: string
      • parallel_port: string
      • serial_port: string
      • create_spec:
        • name: string
        • sata_adapters: array of
          • bus: int
          • type: one of ['AHCI']
          • pci_slot_number: int
        • placement:
          • datastore: string
          • cluster: string
          • folder: string
          • resource_pool: string
          • host: string
        • hardware_version: one of ['VMX_O3']
        • memory:
          • size_MiB: int
          • hot_add_enabled: bool
        • storage_policy:
          • policy: string
        • scsi_adapter: array of
          • bus: int
          • type: one of ['BUSLOGIC']
          • sharing: one of ['NONE']
          • pci_slot_number: int
        • disks: array of
          • ide:
            • master: bool
            • primary: bool
          • scsi:
            • bus: int
            • unit: int
          • backing:
            • vmdk_file: string
            • type: one of ['VMDK_FILE']
          • sata:
            • bus: int
            • unit: int
          • type: one of ['IDE','SCSI','SATA']
          • new_vmdk:
            • storage_policy:
              • policy: string
            • name: string
            • capacity: int
        • cdroms: array of
          • allow_guest_control: bool
          • ide:
            • master: bool
            • primary: bool
          • backing:
            • host_device: string
            • device_access_type: one of ['EMULATION']
            • type: one of ['ISO_FILE']
            • iso_file: string
          • sata:
            • bus: int
            • unit: int
          • type: one of ['IDE']
          • start_connected: bool
        • parallel_ports: array of
          • allow_guest_control: bool
          • backing:
            • file: string
            • type: one of ['FILE']
            • host_device: string
          • start_connected: bool
        • cpu:
          • hot_remove_enabled: bool
          • count: int
          • hot_add_enabled: bool
          • cores_per_socket: int
        • serial_ports:
          • allow_guest_control: bool
          • start_connected: bool
          • backing:
            • network_location: string
            • no_rx_loss: bool
            • host_device: string
            • file: string
            • type: one of ['FILE']
            • pipe: string
            • proxy: string
          • yield_on_poll: bool
        • guest_os: one of ['DOS']
        • boot_devices: array of
          • type: one of ['CDROM']
        • nics: array of
          • mac_address: string
          • mac_type: one of ['MANUAL']
          • allow_guest_control: bool
          • pci_slot_number: int
          • backing:
            • distributed_port: string
            • network: string
            • type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
          • upt_compatibility_enabled: bool
          • type: one of ['E1000']
          • wake_on_lan_enabled: bool
          • start_connected: bool
        • boot:
          • enter_setup_mode: bool
          • retry_delay: int
          • delay: int
          • retry: bool
          • efi_legacy_boot: bool
          • type: one of ['BIOS']
          • network_protocol: one of ['IPV4']
        • floppies: array of
          • allow_guest_control: bool
          • backing:
            • image_file: string
            • type: one of ['IMAGE_FILE']
            • host_device: string
          • start_connected: bool
      • boot_patch_spec:
        • retry_delay: int
        • enter_setup_mode: bool
        • delay: int
        • efi_legacy_boot: bool
        • type: one of ['BIOS']
        • retry: bool
        • network_protocol: one of ['IPV4']
      • boot_device_spec:
        • devices: array of
          • nic: string
          • type: one of ['CDROM']
          • disks: [string]
      • cdrom_create_spec:
        • allow_guest_control: bool
        • ide:
          • master: bool
          • primary: bool
        • backing:
          • host_device: string
          • device_access_type: one of ['EMULATION']
          • type: one of ['ISO_FILE']
          • iso_file: string
        • sata:
          • bus: int
          • unit: int
        • type: one of ['IDE']
        • start_connected: bool
      • cdrom_patch_spec:
        • allow_guest_control: bool
        • backing:
          • host_device: string
          • device_access_type: one of ['EMULATION']
          • type: one of ['ISO_FILE']
          • iso_file: string
        • start_connected: bool
      • check_spec:
        • disks: [string]
        • vm_home: bool
      • cpu_spec:
        • hot_remove_enabled: bool
        • count: int
        • hot_add_enabled: bool
        • cores_per_socket: int
      • disk_update_spec:
        • backing:
          • vmdk_file: string
          • type: one of ['VMDK_FILE']
      • disk_create_spec:
        • sata:
          • unit: int
          • bus: int
        • ide:
          • primary: bool
          • master: bool
        • type: one of ['IDE','SATA','SCSI']
        • new_vmdk:
          • name: string
          • capacity: int
          • storage_policy:
            • policy: string
        • scsi:
          • unit: int
          • bus: int
        • backlog:
          • vmdk_file: string
          • type: one of ['VMDK_FILE']
      • floppy_spec:
        • allow_guest_control: bool
        • backing:
          • image_file: string
          • type: one of ['IMAGE_FILE']
          • host_device: string
        • start_connected: bool
      • hardware_upgrade_spec:
        • version: one of ['VMX_03']
      • hardware_patch_spec:
        • upgrade_version: one of ['VMX_03']
        • upgrade_policy: one of ['NEVER']
      • memory_spec:
        • size_MiB: int
        • hot_add_enabled: bool
      • nic_spec:
        • mac_address: string
        • mac_type: one of ['MANUAL']
        • allow_guest_control: bool
        • pci_slot_number: int
        • backing:
          • distributed_port: string
          • network: string
          • type: one of ['STANDARD_PORTGROUP','DISTRIBUTED_PORTGROUP','OPAQUE_NETWORK]
        • upt_compatibility_enabled: bool
        • type: one of ['E1000']
        • wake_on_lan_enabled: bool
        • start_connected: bool
      • parallel_spec:
        • allow_guest_control: bool
        • backing:
          • file: string
          • type: one of ['FILE']
          • host_device: string
        • start_connected: bool
      • policy_spec:
        • disks: array of
          • key: string
          • value:
            • policy: string
            • type: one of ['USE_SPECIFIED_POLICY']
        • vm_home:
          • policy: string
          • type: one of ['USE_SPECIFIED_POLICY']
      • sata_create_spec:
        • type: one of ['AHCI']
        • pci_slot_number: int
        • bus: int
      • scsi_create_spec:
        • sharing: one of ['NONE']
        • type: one of ['BUSLOGIC']
        • pci_slot_number: int
        • bus: int
      • scsi_update_spec:
        • sharing: one of ['NONE']
      • serial_spec:
        • allow_guest_control: bool
        • yield_on_poll: bool
        • backing:
          • network_location: string
          • pipe: string
          • proxy: string
          • no_rx_loss: bool
          • host_device: string
          • file: string
          • type: one of ['FILE']
        • start_connected: bool
  • vmware_vcenter_vm_info
    • implements
      • /vcenter/vm/vm_id/guest/identity
      • /vcenter/vm/vm_id/guest/local-filesystem
      • /vcenter/vm/vm_id/guest/power
      • /vcenter/vm/vm_id/hardware
      • /vcenter/vm/vm_id/hardware/adapter/sata
      • /vcenter/vm/vm_id/hardware/adapter/scsi
      • /vcenter/vm/vm_id/hardware/boot
      • /vcenter/vm/vm_id/hardware/boot/device
      • /vcenter/vm/vm_id/hardware/cdrom
      • /vcenter/vm/vm_id/hardware/cpu
      • /vcenter/vm/vm_id/hardware/disk
      • /vcenter/vm/vm_id/hardware/ethernet
      • /vcenter/vm/vm_id/hardware/floppy
      • /vcenter/vm/vm_id/hardware/memory
      • /vcenter/vm/vm_id/hardware/parallel
      • /vcenter/vm/vm_id/hardware/serial
      • /vcenter/vm/vm_id/power
      • /vcenter/vm/vm_id/storage/policy
      • /vcenter/vm/vm_id/storage/policy/compliance
    • commands
      • GET
    • params
      • vm: string
      • filter.names: [string]
      • filter.hosts: [string]
      • filter.datacenters: [string]
      • filter.resource_pools: [string]
      • filter.clusters: [string]
      • filter.power_states: any of ['','POWERED_OFF','POWERED_ON','SUSPENDED']
      • filter.folders: [string]
      • filter.vms: [string]

Access

Administer permissions or grant access to areas of vSphere or vCenter

Alarm

Manipulate vCenter Alarms

  • I cannot find any ReST APIs that manage vCenter alarms

Cluster

Perform operations across an entire cluster. The modules are

  • vmware_cluster_capacity
  • vmware_cluster_reboot

Event

Manipulate vCenter tasks and events

  • I cannot find any ReST APIs that manage tasks and events

Inventory

Manipulate vCenter inventory, including metadata such as tags, attributes and folders. Some APIs are missing critical functionality, like creating folders. The modules are

  • vmware_inventory_backup
  • vmware_inventory_restore

Licensing

Manage VMware licensing in vCenter

  • I cannot find any ReST APIs that manage licensing of vCenters

Network

Generic networking tasks

Network.NSX

Networking tasks specific to NSX and NSX-T

PCloud

Session

Manage vCenter sessions

Stat

Manage statistics from vCenter

  • I cannot find any ReST APIs that manage vCenter statistics

SRM

Interface with Site Recovery Manager

  • I cannot find any ReST APIs that manage Site Recovery Manager

Storage

Generic storage tasks, working with datastores and datastore clusters

Storage.ISCSI

Storage tasks specific to ISCSI

Storage.VSAN

Storage tasks specific to VSAN

vApp

Managing vApps and their contents

  • I cannot find any ReST APIs that manage vApps

vCD

Interfacing with vCloud Director

  • I cannot find any ReST APIs that manage vCloud Director

VM

Management of VMs, individually or in groups

VMHost

Management of ESXi hosts, individually or in groups

vRO

Interfacing with vRealize Orchestrator

  • I cannot find any ReST APIs that manage vRealize Orchestrator

Action Items

  • [Akasurde]: Create a wiki page for collaboration
  • [Akasurde]: Push VMware httpapi plugin upstream for review
  • [Paul Knight]: Start design specification document for VMware httpapi plugin - IN PROGRESS
  • [Paul Knight]: Review this doc and add comments