=begin
#NSX-T Manager API

#VMware NSX-T Manager REST API

OpenAPI spec version: 2.3.0.0.0

Generated by: https://github.com/swagger-api/swagger-codegen.git
Swagger Codegen version: 2.3.1

=end

require "uri"

module NSXT
  class NsxComponentAdministrationApi
    attr_accessor :api_client

    def initialize(api_client = ApiClient.default)
      @api_client = api_client
    end

    # Add a New Certificate
    # Adds a new private-public certificate or a chain of certificates (CAs) and, optionally, a private key that can be applied to one of the user-facing components (appliance management or edge). The certificate and the key should be stored in PEM format. If no private key is provided, the certificate is used as a client certificate in the trust store. 
    # @param trust_object_data 
    # @param [Hash] opts the optional parameters
    # @return [CertificateList]
    def add_certificate_import(trust_object_data, opts = {})
      data, _status_code, _headers = add_certificate_import_with_http_info(trust_object_data, opts)
      return data
    end

    # Add a New Certificate
    # Adds a new private-public certificate or a chain of certificates (CAs) and, optionally, a private key that can be applied to one of the user-facing components (appliance management or edge). The certificate and the key should be stored in PEM format. If no private key is provided, the certificate is used as a client certificate in the trust store. 
    # @param trust_object_data 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CertificateList, Fixnum, Hash)>] CertificateList data, response status code and response headers
    def add_certificate_import_with_http_info(trust_object_data, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.add_certificate_import ..."
      end
      # verify the required parameter 'trust_object_data' is set
      if @api_client.config.client_side_validation && trust_object_data.nil?
        fail ArgumentError, "Missing the required parameter 'trust_object_data' when calling NsxComponentAdministrationApi.add_certificate_import"
      end
      # resource path
      local_var_path = "/trust-management/certificates?action=import"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(trust_object_data)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CertificateList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#add_certificate_import\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add a controller node to the cluster
    # Adds a new controller node to the NSX cluster.
    # @param add_cluster_node_spec 
    # @param action 
    # @param [Hash] opts the optional parameters
    # @return [ClusterNodeConfig]
    def add_cluster_node(add_cluster_node_spec, action, opts = {})
      data, _status_code, _headers = add_cluster_node_with_http_info(add_cluster_node_spec, action, opts)
      return data
    end

    # Add a controller node to the cluster
    # Adds a new controller node to the NSX cluster.
    # @param add_cluster_node_spec 
    # @param action 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterNodeConfig, Fixnum, Hash)>] ClusterNodeConfig data, response status code and response headers
    def add_cluster_node_with_http_info(add_cluster_node_spec, action, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.add_cluster_node ..."
      end
      # verify the required parameter 'add_cluster_node_spec' is set
      if @api_client.config.client_side_validation && add_cluster_node_spec.nil?
        fail ArgumentError, "Missing the required parameter 'add_cluster_node_spec' when calling NsxComponentAdministrationApi.add_cluster_node"
      end
      # verify the required parameter 'action' is set
      if @api_client.config.client_side_validation && action.nil?
        fail ArgumentError, "Missing the required parameter 'action' when calling NsxComponentAdministrationApi.add_cluster_node"
      end
      # verify enum value
      if @api_client.config.client_side_validation && !['add_cluster_node'].include?(action)
        fail ArgumentError, "invalid value for 'action', must be one of add_cluster_node"
      end
      # resource path
      local_var_path = "/cluster/nodes"

      # query parameters
      query_params = {}
      query_params[:'action'] = action

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(add_cluster_node_spec)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterNodeConfig')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#add_cluster_node\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add a New Certificate Revocation List
    # Adds a new certificate revocation list (CRL). The CRL is used to verify the client certificate status against the revocation lists published by the CA. For this reason, the administrator needs to add the CRL in certificate repository as well. 
    # @param crl_object_data 
    # @param [Hash] opts the optional parameters
    # @return [CrlList]
    def add_crl_import(crl_object_data, opts = {})
      data, _status_code, _headers = add_crl_import_with_http_info(crl_object_data, opts)
      return data
    end

    # Add a New Certificate Revocation List
    # Adds a new certificate revocation list (CRL). The CRL is used to verify the client certificate status against the revocation lists published by the CA. For this reason, the administrator needs to add the CRL in certificate repository as well. 
    # @param crl_object_data 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CrlList, Fixnum, Hash)>] CrlList data, response status code and response headers
    def add_crl_import_with_http_info(crl_object_data, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.add_crl_import ..."
      end
      # verify the required parameter 'crl_object_data' is set
      if @api_client.config.client_side_validation && crl_object_data.nil?
        fail ArgumentError, "Missing the required parameter 'crl_object_data' when calling NsxComponentAdministrationApi.add_crl_import"
      end
      # resource path
      local_var_path = "/trust-management/crls?action=import"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(crl_object_data)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CrlList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#add_crl_import\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add SSH public key to authorized_keys file for node user
    # Add SSH public key to authorized_keys file for node user
    # @param userid User id of the user
    # @param ssh_key_properties 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def add_node_user_ssh_key_add_ssh_key(userid, ssh_key_properties, opts = {})
      add_node_user_ssh_key_add_ssh_key_with_http_info(userid, ssh_key_properties, opts)
      return nil
    end

    # Add SSH public key to authorized_keys file for node user
    # Add SSH public key to authorized_keys file for node user
    # @param userid User id of the user
    # @param ssh_key_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def add_node_user_ssh_key_add_ssh_key_with_http_info(userid, ssh_key_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.add_node_user_ssh_key_add_ssh_key ..."
      end
      # verify the required parameter 'userid' is set
      if @api_client.config.client_side_validation && userid.nil?
        fail ArgumentError, "Missing the required parameter 'userid' when calling NsxComponentAdministrationApi.add_node_user_ssh_key_add_ssh_key"
      end
      # verify the required parameter 'ssh_key_properties' is set
      if @api_client.config.client_side_validation && ssh_key_properties.nil?
        fail ArgumentError, "Missing the required parameter 'ssh_key_properties' when calling NsxComponentAdministrationApi.add_node_user_ssh_key_add_ssh_key"
      end
      # resource path
      local_var_path = "/node/users/{userid}/ssh-keys?action=add_ssh_key".sub('{' + 'userid' + '}', userid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(ssh_key_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#add_node_user_ssh_key_add_ssh_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Advance any suspended restore operation
    # Advance any currently suspended restore operation. The operation might have been suspended because (1) the user had suspended it previously, or (2) the operation is waiting for user input, to be provided as a part of the POST request body. This operation is only valid when a GET cluster/restore/status returns a status with value SUSPENDED. Otherwise, a 409 response is returned. 
    # @param advance_cluster_restore_request 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def advance_cluster_restore_advance(advance_cluster_restore_request, opts = {})
      data, _status_code, _headers = advance_cluster_restore_advance_with_http_info(advance_cluster_restore_request, opts)
      return data
    end

    # Advance any suspended restore operation
    # Advance any currently suspended restore operation. The operation might have been suspended because (1) the user had suspended it previously, or (2) the operation is waiting for user input, to be provided as a part of the POST request body. This operation is only valid when a GET cluster/restore/status returns a status with value SUSPENDED. Otherwise, a 409 response is returned. 
    # @param advance_cluster_restore_request 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def advance_cluster_restore_advance_with_http_info(advance_cluster_restore_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.advance_cluster_restore_advance ..."
      end
      # verify the required parameter 'advance_cluster_restore_request' is set
      if @api_client.config.client_side_validation && advance_cluster_restore_request.nil?
        fail ArgumentError, "Missing the required parameter 'advance_cluster_restore_request' when calling NsxComponentAdministrationApi.advance_cluster_restore_advance"
      end
      # resource path
      local_var_path = "/cluster/restore?action=advance"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(advance_cluster_restore_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#advance_cluster_restore_advance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Cancel specified task
    # Cancel specified task
    # @param task_id ID of task to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def cancel_appliance_management_task_cancel(task_id, opts = {})
      cancel_appliance_management_task_cancel_with_http_info(task_id, opts)
      return nil
    end

    # Cancel specified task
    # Cancel specified task
    # @param task_id ID of task to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def cancel_appliance_management_task_cancel_with_http_info(task_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.cancel_appliance_management_task_cancel ..."
      end
      # verify the required parameter 'task_id' is set
      if @api_client.config.client_side_validation && task_id.nil?
        fail ArgumentError, "Missing the required parameter 'task_id' when calling NsxComponentAdministrationApi.cancel_appliance_management_task_cancel"
      end
      # resource path
      local_var_path = "/node/tasks/{task-id}?action=cancel".sub('{' + 'task-id' + '}', task_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#cancel_appliance_management_task_cancel\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Cancel any running restore operation
    # Cancel any currently running restore operation. If there exists a currently running step, it is allowed to finish. The system is not rolled back to the pre-restore state. This operation is only valid when a GET cluster/restore/status returns a status with value RUNNING or SUSPENDED. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def cancel_cluster_restore_cancel(opts = {})
      data, _status_code, _headers = cancel_cluster_restore_cancel_with_http_info(opts)
      return data
    end

    # Cancel any running restore operation
    # Cancel any currently running restore operation. If there exists a currently running step, it is allowed to finish. The system is not rolled back to the pre-restore state. This operation is only valid when a GET cluster/restore/status returns a status with value RUNNING or SUSPENDED. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def cancel_cluster_restore_cancel_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.cancel_cluster_restore_cancel ..."
      end
      # resource path
      local_var_path = "/cluster/restore?action=cancel"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#cancel_cluster_restore_cancel\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Check if RabbitMQ management port is enabled or not
    # Returns status as true if RabbitMQ management port is enabled else false
    # @param [Hash] opts the optional parameters
    # @return [PortStatus]
    def check_rabbit_mq_management_port(opts = {})
      data, _status_code, _headers = check_rabbit_mq_management_port_with_http_info(opts)
      return data
    end

    # Check if RabbitMQ management port is enabled or not
    # Returns status as true if RabbitMQ management port is enabled else false
    # @param [Hash] opts the optional parameters
    # @return [Array<(PortStatus, Fixnum, Hash)>] PortStatus data, response status code and response headers
    def check_rabbit_mq_management_port_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.check_rabbit_mq_management_port ..."
      end
      # resource path
      local_var_path = "/node/rabbitmq-management-port"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PortStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#check_rabbit_mq_management_port\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Collect alarms from all NSX nodes
    # This API is executed on a manager node to return current alarms from all NSX nodes. 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :fields Fields to include in query results
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 100)
    # @return [AlarmListResult]
    def collect_alarms(opts = {})
      data, _status_code, _headers = collect_alarms_with_http_info(opts)
      return data
    end

    # Collect alarms from all NSX nodes
    # This API is executed on a manager node to return current alarms from all NSX nodes. 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :fields Fields to include in query results
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @return [Array<(AlarmListResult, Fixnum, Hash)>] AlarmListResult data, response status code and response headers
    def collect_alarms_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.collect_alarms ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 100
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.collect_alarms, must be smaller than or equal to 100.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.collect_alarms, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/hpm/alarms"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'AlarmListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#collect_alarms\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Collect audit logs from registered manager nodes
    # This API is executed on a manager node to display audit logs from all nodes inside the management plane cluster. An audit log collection will be triggered if the local master audit log is outdated. 
    # @param audit_log_request 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :fields Fields to include in query results
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 100)
    # @return [AuditLogListResult]
    def collect_audit_logs(audit_log_request, opts = {})
      data, _status_code, _headers = collect_audit_logs_with_http_info(audit_log_request, opts)
      return data
    end

    # Collect audit logs from registered manager nodes
    # This API is executed on a manager node to display audit logs from all nodes inside the management plane cluster. An audit log collection will be triggered if the local master audit log is outdated. 
    # @param audit_log_request 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :fields Fields to include in query results
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @return [Array<(AuditLogListResult, Fixnum, Hash)>] AuditLogListResult data, response status code and response headers
    def collect_audit_logs_with_http_info(audit_log_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.collect_audit_logs ..."
      end
      # verify the required parameter 'audit_log_request' is set
      if @api_client.config.client_side_validation && audit_log_request.nil?
        fail ArgumentError, "Missing the required parameter 'audit_log_request' when calling NsxComponentAdministrationApi.collect_audit_logs"
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 100
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.collect_audit_logs, must be smaller than or equal to 100.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.collect_audit_logs, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/administration/audit-logs"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(audit_log_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'AuditLogListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#collect_audit_logs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Collect support bundles from registered cluster and fabric nodes
    # Collect support bundles from registered cluster and fabric nodes.
    # @param support_bundle_request 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :override_async_response Override any existing support bundle async response (default to false)
    # @return [SupportBundleResult]
    def collect_support_bundles_collect(support_bundle_request, opts = {})
      data, _status_code, _headers = collect_support_bundles_collect_with_http_info(support_bundle_request, opts)
      return data
    end

    # Collect support bundles from registered cluster and fabric nodes
    # Collect support bundles from registered cluster and fabric nodes.
    # @param support_bundle_request 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :override_async_response Override any existing support bundle async response
    # @return [Array<(SupportBundleResult, Fixnum, Hash)>] SupportBundleResult data, response status code and response headers
    def collect_support_bundles_collect_with_http_info(support_bundle_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.collect_support_bundles_collect ..."
      end
      # verify the required parameter 'support_bundle_request' is set
      if @api_client.config.client_side_validation && support_bundle_request.nil?
        fail ArgumentError, "Missing the required parameter 'support_bundle_request' when calling NsxComponentAdministrationApi.collect_support_bundles_collect"
      end
      # resource path
      local_var_path = "/administration/support-bundles?action=collect"

      # query parameters
      query_params = {}
      query_params[:'override_async_response'] = opts[:'override_async_response'] if !opts[:'override_async_response'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(support_bundle_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SupportBundleResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#collect_support_bundles_collect\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Configure backup
    # Configure file server and timers for automated backup. If secret fields are omitted (password, passphrase) then use the previously set value. 
    # @param backup_configuration 
    # @param [Hash] opts the optional parameters
    # @return [BackupConfiguration]
    def configure_backup_config(backup_configuration, opts = {})
      data, _status_code, _headers = configure_backup_config_with_http_info(backup_configuration, opts)
      return data
    end

    # Configure backup
    # Configure file server and timers for automated backup. If secret fields are omitted (password, passphrase) then use the previously set value. 
    # @param backup_configuration 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BackupConfiguration, Fixnum, Hash)>] BackupConfiguration data, response status code and response headers
    def configure_backup_config_with_http_info(backup_configuration, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.configure_backup_config ..."
      end
      # verify the required parameter 'backup_configuration' is set
      if @api_client.config.client_side_validation && backup_configuration.nil?
        fail ArgumentError, "Missing the required parameter 'backup_configuration' when calling NsxComponentAdministrationApi.configure_backup_config"
      end
      # resource path
      local_var_path = "/cluster/backups/config"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(backup_configuration)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'BackupConfiguration')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#configure_backup_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Configure Restore SFTP server credentials
    # Configure file server where the backed-up files used for the Restore operation are available. 
    # @param restore_configuration 
    # @param [Hash] opts the optional parameters
    # @return [RestoreConfiguration]
    def configure_restore_config(restore_configuration, opts = {})
      data, _status_code, _headers = configure_restore_config_with_http_info(restore_configuration, opts)
      return data
    end

    # Configure Restore SFTP server credentials
    # Configure file server where the backed-up files used for the Restore operation are available. 
    # @param restore_configuration 
    # @param [Hash] opts the optional parameters
    # @return [Array<(RestoreConfiguration, Fixnum, Hash)>] RestoreConfiguration data, response status code and response headers
    def configure_restore_config_with_http_info(restore_configuration, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.configure_restore_config ..."
      end
      # verify the required parameter 'restore_configuration' is set
      if @api_client.config.client_side_validation && restore_configuration.nil?
        fail ArgumentError, "Missing the required parameter 'restore_configuration' when calling NsxComponentAdministrationApi.configure_restore_config"
      end
      # resource path
      local_var_path = "/cluster/restore/config"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(restore_configuration)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'RestoreConfiguration')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#configure_restore_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Copy a remote file to the file store
    # Copy a remote file to the file store. If you use scp or sftp, you must provide the remote server's SSH fingerprint. See the <i>NSX-T Administration Guide</i> for information and instructions about finding the SSH fingerprint. 
    # @param file_name Destination filename
    # @param copy_from_remote_file_properties 
    # @param [Hash] opts the optional parameters
    # @return [FileProperties]
    def copy_from_remote_file_copy_from_remote_file(file_name, copy_from_remote_file_properties, opts = {})
      data, _status_code, _headers = copy_from_remote_file_copy_from_remote_file_with_http_info(file_name, copy_from_remote_file_properties, opts)
      return data
    end

    # Copy a remote file to the file store
    # Copy a remote file to the file store. If you use scp or sftp, you must provide the remote server&#39;s SSH fingerprint. See the &lt;i&gt;NSX-T Administration Guide&lt;/i&gt; for information and instructions about finding the SSH fingerprint. 
    # @param file_name Destination filename
    # @param copy_from_remote_file_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(FileProperties, Fixnum, Hash)>] FileProperties data, response status code and response headers
    def copy_from_remote_file_copy_from_remote_file_with_http_info(file_name, copy_from_remote_file_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.copy_from_remote_file_copy_from_remote_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.copy_from_remote_file_copy_from_remote_file"
      end
      # verify the required parameter 'copy_from_remote_file_properties' is set
      if @api_client.config.client_side_validation && copy_from_remote_file_properties.nil?
        fail ArgumentError, "Missing the required parameter 'copy_from_remote_file_properties' when calling NsxComponentAdministrationApi.copy_from_remote_file_copy_from_remote_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}?action=copy_from_remote_file".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(copy_from_remote_file_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FileProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#copy_from_remote_file_copy_from_remote_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Copy file in the file store to a remote file store
    # Copy a file in the file store to a remote server. If you use scp or sftp, you must provide the remote server's SSH fingerprint. See the <i>NSX-T Administration Guide</i> for information and instructions about finding the SSH fingerprint. 
    # @param file_name Destination filename
    # @param copy_to_remote_file_properties 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def copy_to_remote_file_copy_to_remote_file(file_name, copy_to_remote_file_properties, opts = {})
      copy_to_remote_file_copy_to_remote_file_with_http_info(file_name, copy_to_remote_file_properties, opts)
      return nil
    end

    # Copy file in the file store to a remote file store
    # Copy a file in the file store to a remote server. If you use scp or sftp, you must provide the remote server&#39;s SSH fingerprint. See the &lt;i&gt;NSX-T Administration Guide&lt;/i&gt; for information and instructions about finding the SSH fingerprint. 
    # @param file_name Destination filename
    # @param copy_to_remote_file_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def copy_to_remote_file_copy_to_remote_file_with_http_info(file_name, copy_to_remote_file_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.copy_to_remote_file_copy_to_remote_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.copy_to_remote_file_copy_to_remote_file"
      end
      # verify the required parameter 'copy_to_remote_file_properties' is set
      if @api_client.config.client_side_validation && copy_to_remote_file_properties.nil?
        fail ArgumentError, "Missing the required parameter 'copy_to_remote_file_properties' when calling NsxComponentAdministrationApi.copy_to_remote_file_copy_to_remote_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}?action=copy_to_remote_file".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(copy_to_remote_file_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#copy_to_remote_file_copy_to_remote_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart the node management service
    # Restart the node management service
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_appliance_management_service_action_restart(opts = {})
      create_appliance_management_service_action_restart_with_http_info(opts)
      return nil
    end

    # Restart the node management service
    # Restart the node management service
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_appliance_management_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_appliance_management_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/node-mgmt?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_appliance_management_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cluster_boot_manager_service_action_restart(opts = {})
      data, _status_code, _headers = create_cluster_boot_manager_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cluster_boot_manager_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cluster_boot_manager_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/cluster_manager?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cluster_boot_manager_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cluster_boot_manager_service_action_start(opts = {})
      data, _status_code, _headers = create_cluster_boot_manager_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cluster_boot_manager_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cluster_boot_manager_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/cluster_manager?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cluster_boot_manager_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cluster_boot_manager_service_action_stop(opts = {})
      data, _status_code, _headers = create_cluster_boot_manager_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the cluster boot manager service
    # Restart, start or stop the cluster boot manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cluster_boot_manager_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cluster_boot_manager_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/cluster_manager?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cluster_boot_manager_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cminventory_service_action_restart(opts = {})
      data, _status_code, _headers = create_cminventory_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cminventory_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cminventory_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/cm-inventory?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cminventory_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cminventory_service_action_start(opts = {})
      data, _status_code, _headers = create_cminventory_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cminventory_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cminventory_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/cm-inventory?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cminventory_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_cminventory_service_action_stop(opts = {})
      data, _status_code, _headers = create_cminventory_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the manager service
    # Restart, start or stop the manager service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_cminventory_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_cminventory_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/cm-inventory?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_cminventory_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Upload a file to the file store
    # When you issue this API, the client must specify: - HTTP header Content-Type:application/octet-stream. - Request body with the contents of the file in the filestore. In the CLI, you can view the filestore with the <em>get files</em> command. 
    # @param file_name Destination filename
    # @param [Hash] opts the optional parameters
    # @return [FileProperties]
    def create_file(file_name, opts = {})
      data, _status_code, _headers = create_file_with_http_info(file_name, opts)
      return data
    end

    # Upload a file to the file store
    # When you issue this API, the client must specify: - HTTP header Content-Type:application/octet-stream. - Request body with the contents of the file in the filestore. In the CLI, you can view the filestore with the &lt;em&gt;get files&lt;/em&gt; command. 
    # @param file_name Destination filename
    # @param [Hash] opts the optional parameters
    # @return [Array<(FileProperties, Fixnum, Hash)>] FileProperties data, response status code and response headers
    def create_file_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.create_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/octet-stream'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FileProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_liagent_service_action_restart(opts = {})
      data, _status_code, _headers = create_liagent_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_liagent_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_liagent_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/liagent?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_liagent_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_liagent_service_action_start(opts = {})
      data, _status_code, _headers = create_liagent_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_liagent_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_liagent_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/liagent?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_liagent_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_liagent_service_action_stop(opts = {})
      data, _status_code, _headers = create_liagent_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the liagent service
    # Restart, start or stop the liagent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_liagent_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_liagent_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/liagent?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_liagent_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create node network route
    # Add a route to the NSX Manager routing table. For static routes, the route_type, interface_id, netmask, and destination are required parameters. For default routes, the route_type, gateway address, and interface_id are required. For blackhole routes, the route_type and destination are required. All other parameters are optional. When you add a static route, the scope and route_id are created automatically. When you add a default or blackhole route, the route_id is created automatically. The route_id is read-only, meaning that it cannot be modified. All other properties can be modified by deleting and readding the route. 
    # @param node_route_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeRouteProperties]
    def create_node_network_route(node_route_properties, opts = {})
      data, _status_code, _headers = create_node_network_route_with_http_info(node_route_properties, opts)
      return data
    end

    # Create node network route
    # Add a route to the NSX Manager routing table. For static routes, the route_type, interface_id, netmask, and destination are required parameters. For default routes, the route_type, gateway address, and interface_id are required. For blackhole routes, the route_type and destination are required. All other parameters are optional. When you add a static route, the scope and route_id are created automatically. When you add a default or blackhole route, the route_id is created automatically. The route_id is read-only, meaning that it cannot be modified. All other properties can be modified by deleting and readding the route. 
    # @param node_route_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeRouteProperties, Fixnum, Hash)>] NodeRouteProperties data, response status code and response headers
    def create_node_network_route_with_http_info(node_route_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_node_network_route ..."
      end
      # verify the required parameter 'node_route_properties' is set
      if @api_client.config.client_side_validation && node_route_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_route_properties' when calling NsxComponentAdministrationApi.create_node_network_route"
      end
      # resource path
      local_var_path = "/node/network/routes"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_route_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeRouteProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_node_network_route\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_message_bus_service_action_restart(opts = {})
      data, _status_code, _headers = create_nsx_message_bus_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_message_bus_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_message_bus_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-message-bus?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_message_bus_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_message_bus_service_action_start(opts = {})
      data, _status_code, _headers = create_nsx_message_bus_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_message_bus_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_message_bus_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-message-bus?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_message_bus_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_message_bus_service_action_stop(opts = {})
      data, _status_code, _headers = create_nsx_message_bus_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Message Bus service
    # Restart, start or stop the NSX Message Bus service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_message_bus_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_message_bus_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-message-bus?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_message_bus_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_ui_service_service_action_restart(opts = {})
      data, _status_code, _headers = create_nsx_ui_service_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_ui_service_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_ui_service_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/ui-service?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_ui_service_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_ui_service_service_action_start(opts = {})
      data, _status_code, _headers = create_nsx_ui_service_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_ui_service_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_ui_service_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/ui-service?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_ui_service_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_ui_service_service_action_stop(opts = {})
      data, _status_code, _headers = create_nsx_ui_service_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, Start and Stop the ui service
    # Restart, Start and Stop the ui service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_ui_service_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_ui_service_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/ui-service?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_ui_service_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_upgrade_agent_service_action_restart(opts = {})
      data, _status_code, _headers = create_nsx_upgrade_agent_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_upgrade_agent_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_upgrade_agent_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-upgrade-agent?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_upgrade_agent_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_upgrade_agent_service_action_start(opts = {})
      data, _status_code, _headers = create_nsx_upgrade_agent_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_upgrade_agent_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_upgrade_agent_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-upgrade-agent?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_upgrade_agent_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_nsx_upgrade_agent_service_action_stop(opts = {})
      data, _status_code, _headers = create_nsx_upgrade_agent_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX upgrade agent service
    # Restart, start or stop the NSX upgrade agent service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_nsx_upgrade_agent_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_nsx_upgrade_agent_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-upgrade-agent?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_nsx_upgrade_agent_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ntp_service_action_restart(opts = {})
      data, _status_code, _headers = create_ntp_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ntp_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ntp_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/ntp?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ntp_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ntp_service_action_start(opts = {})
      data, _status_code, _headers = create_ntp_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ntp_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ntp_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/ntp?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ntp_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ntp_service_action_stop(opts = {})
      data, _status_code, _headers = create_ntp_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NTP service
    # Restart, start or stop the NTP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ntp_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ntp_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/ntp?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ntp_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_phonehome_coordinator_service_action_restart(opts = {})
      data, _status_code, _headers = create_phonehome_coordinator_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_phonehome_coordinator_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_phonehome_coordinator_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/telemetry?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_phonehome_coordinator_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_phonehome_coordinator_service_action_start(opts = {})
      data, _status_code, _headers = create_phonehome_coordinator_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_phonehome_coordinator_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_phonehome_coordinator_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/telemetry?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_phonehome_coordinator_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_phonehome_coordinator_service_action_stop(opts = {})
      data, _status_code, _headers = create_phonehome_coordinator_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop Telemetry service
    # Restart, start or stop Telemetry service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_phonehome_coordinator_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_phonehome_coordinator_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/telemetry?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_phonehome_coordinator_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_proton_service_action_restart(opts = {})
      data, _status_code, _headers = create_proton_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_proton_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proton_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/manager?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proton_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_proton_service_action_start(opts = {})
      data, _status_code, _headers = create_proton_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_proton_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proton_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/manager?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proton_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_proton_service_action_stop(opts = {})
      data, _status_code, _headers = create_proton_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the service
    # Restart, start or stop the service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_proton_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proton_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/manager?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proton_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart the http service
    # Restart the http service
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_proxy_service_action_restart(opts = {})
      create_proxy_service_action_restart_with_http_info(opts)
      return nil
    end

    # Restart the http service
    # Restart the http service
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_proxy_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proxy_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/http?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proxy_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Start the http service
    # Start the http service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_proxy_service_action_start(opts = {})
      data, _status_code, _headers = create_proxy_service_action_start_with_http_info(opts)
      return data
    end

    # Start the http service
    # Start the http service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_proxy_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proxy_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/http?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proxy_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Stop the http service
    # Stop the http service
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_proxy_service_action_stop(opts = {})
      create_proxy_service_action_stop_with_http_info(opts)
      return nil
    end

    # Stop the http service
    # Stop the http service
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_proxy_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proxy_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/http?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proxy_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update http service certificate
    # Applies a security certificate to the http service. In the POST request, the CERTIFICATE_ID references a certificate created with the /api/v1/trust-management APIs. Issuing this request causes the http service to restart so that the service can begin using the new certificate. When the POST request succeeds, it doesn't return a valid response. The request times out because of the restart. 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_proxy_service_apply_certificate_action_apply_certificate(certificate_id, opts = {})
      create_proxy_service_apply_certificate_action_apply_certificate_with_http_info(certificate_id, opts)
      return nil
    end

    # Update http service certificate
    # Applies a security certificate to the http service. In the POST request, the CERTIFICATE_ID references a certificate created with the /api/v1/trust-management APIs. Issuing this request causes the http service to restart so that the service can begin using the new certificate. When the POST request succeeds, it doesn&#39;t return a valid response. The request times out because of the restart. 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_proxy_service_apply_certificate_action_apply_certificate_with_http_info(certificate_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_proxy_service_apply_certificate_action_apply_certificate ..."
      end
      # verify the required parameter 'certificate_id' is set
      if @api_client.config.client_side_validation && certificate_id.nil?
        fail ArgumentError, "Missing the required parameter 'certificate_id' when calling NsxComponentAdministrationApi.create_proxy_service_apply_certificate_action_apply_certificate"
      end
      # resource path
      local_var_path = "/node/services/http?action=apply_certificate"

      # query parameters
      query_params = {}
      query_params[:'certificate_id'] = certificate_id

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_proxy_service_apply_certificate_action_apply_certificate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_rabbit_mq_service_action_restart(opts = {})
      data, _status_code, _headers = create_rabbit_mq_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_rabbit_mq_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_rabbit_mq_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/mgmt-plane-bus?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_rabbit_mq_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_rabbit_mq_service_action_start(opts = {})
      data, _status_code, _headers = create_rabbit_mq_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_rabbit_mq_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_rabbit_mq_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/mgmt-plane-bus?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_rabbit_mq_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_rabbit_mq_service_action_stop(opts = {})
      data, _status_code, _headers = create_rabbit_mq_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the Rabbit MQ service
    # Restart, start or stop the Rabbit MQ service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_rabbit_mq_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_rabbit_mq_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/mgmt-plane-bus?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_rabbit_mq_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create directory in remote file server
    # Create a directory on the remote remote server. Supports only SFTP. You must provide the remote server's SSH fingerprint. See the <i>NSX Administration Guide</i> for information and instructions about finding the SSH fingerprint. 
    # @param create_remote_directory_properties 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_remote_directory_create_remote_directory(create_remote_directory_properties, opts = {})
      create_remote_directory_create_remote_directory_with_http_info(create_remote_directory_properties, opts)
      return nil
    end

    # Create directory in remote file server
    # Create a directory on the remote remote server. Supports only SFTP. You must provide the remote server&#39;s SSH fingerprint. See the &lt;i&gt;NSX Administration Guide&lt;/i&gt; for information and instructions about finding the SSH fingerprint. 
    # @param create_remote_directory_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_remote_directory_create_remote_directory_with_http_info(create_remote_directory_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_remote_directory_create_remote_directory ..."
      end
      # verify the required parameter 'create_remote_directory_properties' is set
      if @api_client.config.client_side_validation && create_remote_directory_properties.nil?
        fail ArgumentError, "Missing the required parameter 'create_remote_directory_properties' when calling NsxComponentAdministrationApi.create_remote_directory_create_remote_directory"
      end
      # resource path
      local_var_path = "/node/file-store?action=create_remote_directory"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(create_remote_directory_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_remote_directory_create_remote_directory\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_repository_service_action_restart(opts = {})
      data, _status_code, _headers = create_repository_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_repository_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_repository_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/install-upgrade?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_repository_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_repository_service_action_start(opts = {})
      data, _status_code, _headers = create_repository_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_repository_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_repository_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/install-upgrade?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_repository_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_repository_service_action_stop(opts = {})
      data, _status_code, _headers = create_repository_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX install-upgrade service
    # Restart, start or stop the NSX install-upgrade service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_repository_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_repository_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/install-upgrade?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_repository_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_search_service_action_restart(opts = {})
      data, _status_code, _headers = create_search_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_search_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_search_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/search?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_search_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_search_service_action_start(opts = {})
      data, _status_code, _headers = create_search_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_search_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_search_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/search?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_search_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_search_service_action_stop(opts = {})
      data, _status_code, _headers = create_search_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the NSX Search service
    # Restart, start or stop the NSX Search service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_search_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_search_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/search?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_search_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_snmp_service_action_restart(opts = {})
      data, _status_code, _headers = create_snmp_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_snmp_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_snmp_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/snmp?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_snmp_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_snmp_service_action_start(opts = {})
      data, _status_code, _headers = create_snmp_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_snmp_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_snmp_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/snmp?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_snmp_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_snmp_service_action_stop(opts = {})
      data, _status_code, _headers = create_snmp_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the SNMP service
    # Restart, start or stop the SNMP service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_snmp_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_snmp_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/snmp?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_snmp_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ssh_service_action_restart(opts = {})
      data, _status_code, _headers = create_ssh_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ssh_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ssh_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/ssh?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ssh_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ssh_service_action_start(opts = {})
      data, _status_code, _headers = create_ssh_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ssh_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ssh_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/ssh?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ssh_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_ssh_service_action_stop(opts = {})
      data, _status_code, _headers = create_ssh_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the ssh service
    # Restart, start or stop the ssh service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_ssh_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ssh_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/ssh?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ssh_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Remove a host's fingerprint from known hosts file
    # Remove a host's fingerprint from known hosts file
    # @param known_host_parameter 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint(known_host_parameter, opts = {})
      create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint_with_http_info(known_host_parameter, opts)
      return nil
    end

    # Remove a host&#39;s fingerprint from known hosts file
    # Remove a host&#39;s fingerprint from known hosts file
    # @param known_host_parameter 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint_with_http_info(known_host_parameter, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint ..."
      end
      # verify the required parameter 'known_host_parameter' is set
      if @api_client.config.client_side_validation && known_host_parameter.nil?
        fail ArgumentError, "Missing the required parameter 'known_host_parameter' when calling NsxComponentAdministrationApi.create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint"
      end
      # resource path
      local_var_path = "/node/services/ssh?action=remove_host_fingerprint"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(known_host_parameter)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_ssh_service_remove_host_fingerprint_action_remove_host_fingerprint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_syslog_service_action_restart(opts = {})
      data, _status_code, _headers = create_syslog_service_action_restart_with_http_info(opts)
      return data
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_syslog_service_action_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_syslog_service_action_restart ..."
      end
      # resource path
      local_var_path = "/node/services/syslog?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_syslog_service_action_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_syslog_service_action_start(opts = {})
      data, _status_code, _headers = create_syslog_service_action_start_with_http_info(opts)
      return data
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_syslog_service_action_start_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_syslog_service_action_start ..."
      end
      # resource path
      local_var_path = "/node/services/syslog?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_syslog_service_action_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def create_syslog_service_action_stop(opts = {})
      data, _status_code, _headers = create_syslog_service_action_stop_with_http_info(opts)
      return data
    end

    # Restart, start or stop the syslog service
    # Restart, start or stop the syslog service
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def create_syslog_service_action_stop_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.create_syslog_service_action_stop ..."
      end
      # resource path
      local_var_path = "/node/services/syslog?action=stop"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#create_syslog_service_action_stop\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete RabbitMQ management port
    # Delete RabbitMQ management port
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def d_elete_rabbit_mq_management_port(opts = {})
      d_elete_rabbit_mq_management_port_with_http_info(opts)
      return nil
    end

    # Delete RabbitMQ management port
    # Delete RabbitMQ management port
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def d_elete_rabbit_mq_management_port_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.d_elete_rabbit_mq_management_port ..."
      end
      # resource path
      local_var_path = "/node/rabbitmq-management-port"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#d_elete_rabbit_mq_management_port\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete task
    # Delete task
    # @param task_id ID of task to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_appliance_management_task(task_id, opts = {})
      delete_appliance_management_task_with_http_info(task_id, opts)
      return nil
    end

    # Delete task
    # Delete task
    # @param task_id ID of task to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_appliance_management_task_with_http_info(task_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_appliance_management_task ..."
      end
      # verify the required parameter 'task_id' is set
      if @api_client.config.client_side_validation && task_id.nil?
        fail ArgumentError, "Missing the required parameter 'task_id' when calling NsxComponentAdministrationApi.delete_appliance_management_task"
      end
      # resource path
      local_var_path = "/node/tasks/{task-id}".sub('{' + 'task-id' + '}', task_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_appliance_management_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Certificate for the Given Certificate ID
    # Removes the specified certificate. The private key associated with the certificate is also deleted. 
    # @param cert_id ID of certificate to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_certificate(cert_id, opts = {})
      delete_certificate_with_http_info(cert_id, opts)
      return nil
    end

    # Delete Certificate for the Given Certificate ID
    # Removes the specified certificate. The private key associated with the certificate is also deleted. 
    # @param cert_id ID of certificate to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_certificate_with_http_info(cert_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_certificate ..."
      end
      # verify the required parameter 'cert_id' is set
      if @api_client.config.client_side_validation && cert_id.nil?
        fail ArgumentError, "Missing the required parameter 'cert_id' when calling NsxComponentAdministrationApi.delete_certificate"
      end
      # resource path
      local_var_path = "/trust-management/certificates/{cert-id}".sub('{' + 'cert-id' + '}', cert_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_certificate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Remove a controller node from the cluster
    # Removes the specified controller node from the NSX cluster. Before you can remove a controller node from the cluster, you must shut down the controller service with the \"stop service controller\" command. 
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_cluster_node_config(node_id, opts = {})
      delete_cluster_node_config_with_http_info(node_id, opts)
      return nil
    end

    # Remove a controller node from the cluster
    # Removes the specified controller node from the NSX cluster. Before you can remove a controller node from the cluster, you must shut down the controller service with the \&quot;stop service controller\&quot; command. 
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_cluster_node_config_with_http_info(node_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_cluster_node_config ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.delete_cluster_node_config"
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}".sub('{' + 'node-id' + '}', node_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_cluster_node_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a CRL
    # Deletes an existing CRL.
    # @param crl_id ID of CRL to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_crl(crl_id, opts = {})
      delete_crl_with_http_info(crl_id, opts)
      return nil
    end

    # Delete a CRL
    # Deletes an existing CRL.
    # @param crl_id ID of CRL to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_crl_with_http_info(crl_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_crl ..."
      end
      # verify the required parameter 'crl_id' is set
      if @api_client.config.client_side_validation && crl_id.nil?
        fail ArgumentError, "Missing the required parameter 'crl_id' when calling NsxComponentAdministrationApi.delete_crl"
      end
      # resource path
      local_var_path = "/trust-management/crls/{crl-id}".sub('{' + 'crl-id' + '}', crl_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_crl\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a CSR
    # Removes a specified CSR. If a CSR is not used for verification, you can delete it. Note that the CSR import and upload POST actions automatically delete the associated CSR. 
    # @param csr_id ID of CSR to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_csr(csr_id, opts = {})
      delete_csr_with_http_info(csr_id, opts)
      return nil
    end

    # Delete a CSR
    # Removes a specified CSR. If a CSR is not used for verification, you can delete it. Note that the CSR import and upload POST actions automatically delete the associated CSR. 
    # @param csr_id ID of CSR to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_csr_with_http_info(csr_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_csr ..."
      end
      # verify the required parameter 'csr_id' is set
      if @api_client.config.client_side_validation && csr_id.nil?
        fail ArgumentError, "Missing the required parameter 'csr_id' when calling NsxComponentAdministrationApi.delete_csr"
      end
      # resource path
      local_var_path = "/trust-management/csrs/{csr-id}".sub('{' + 'csr-id' + '}', csr_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_csr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete file
    # Delete file
    # @param file_name Name of the file to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_file(file_name, opts = {})
      delete_file_with_http_info(file_name, opts)
      return nil
    end

    # Delete file
    # Delete file
    # @param file_name Name of the file to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_file_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.delete_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete node network route
    # Delete a route from the NSX Manager routing table. You can modify an existing route by deleting it and then posting the modified version of the route. To verify, remove the route ID from the URI, issue a GET request, and note the absense of the deleted route. 
    # @param route_id ID of route to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_node_network_route(route_id, opts = {})
      delete_node_network_route_with_http_info(route_id, opts)
      return nil
    end

    # Delete node network route
    # Delete a route from the NSX Manager routing table. You can modify an existing route by deleting it and then posting the modified version of the route. To verify, remove the route ID from the URI, issue a GET request, and note the absense of the deleted route. 
    # @param route_id ID of route to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_node_network_route_with_http_info(route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_node_network_route ..."
      end
      # verify the required parameter 'route_id' is set
      if @api_client.config.client_side_validation && route_id.nil?
        fail ArgumentError, "Missing the required parameter 'route_id' when calling NsxComponentAdministrationApi.delete_node_network_route"
      end
      # resource path
      local_var_path = "/node/network/routes/{route-id}".sub('{' + 'route-id' + '}', route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_node_network_route\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete node syslog exporter
    # Removes a specified rule from the collection of syslog exporter rules. 
    # @param exporter_name Name of syslog exporter to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_node_syslog_exporter(exporter_name, opts = {})
      delete_node_syslog_exporter_with_http_info(exporter_name, opts)
      return nil
    end

    # Delete node syslog exporter
    # Removes a specified rule from the collection of syslog exporter rules. 
    # @param exporter_name Name of syslog exporter to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_node_syslog_exporter_with_http_info(exporter_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_node_syslog_exporter ..."
      end
      # verify the required parameter 'exporter_name' is set
      if @api_client.config.client_side_validation && exporter_name.nil?
        fail ArgumentError, "Missing the required parameter 'exporter_name' when calling NsxComponentAdministrationApi.delete_node_syslog_exporter"
      end
      # resource path
      local_var_path = "/node/services/syslog/exporters/{exporter-name}".sub('{' + 'exporter-name' + '}', exporter_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_node_syslog_exporter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Remove SSH public key from authorized_keys file for node user
    # Remove SSH public key from authorized_keys file for node user
    # @param userid User id of the user
    # @param ssh_key_base_properties 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_node_user_ssh_key_remove_ssh_key(userid, ssh_key_base_properties, opts = {})
      delete_node_user_ssh_key_remove_ssh_key_with_http_info(userid, ssh_key_base_properties, opts)
      return nil
    end

    # Remove SSH public key from authorized_keys file for node user
    # Remove SSH public key from authorized_keys file for node user
    # @param userid User id of the user
    # @param ssh_key_base_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_node_user_ssh_key_remove_ssh_key_with_http_info(userid, ssh_key_base_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_node_user_ssh_key_remove_ssh_key ..."
      end
      # verify the required parameter 'userid' is set
      if @api_client.config.client_side_validation && userid.nil?
        fail ArgumentError, "Missing the required parameter 'userid' when calling NsxComponentAdministrationApi.delete_node_user_ssh_key_remove_ssh_key"
      end
      # verify the required parameter 'ssh_key_base_properties' is set
      if @api_client.config.client_side_validation && ssh_key_base_properties.nil?
        fail ArgumentError, "Missing the required parameter 'ssh_key_base_properties' when calling NsxComponentAdministrationApi.delete_node_user_ssh_key_remove_ssh_key"
      end
      # resource path
      local_var_path = "/node/users/{userid}/ssh-keys?action=remove_ssh_key".sub('{' + 'userid' + '}', userid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(ssh_key_base_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_node_user_ssh_key_remove_ssh_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a principal identity
    # Delete a principal identity. It does not delete the certificate. 
    # @param principal_identity_id Unique id of the principal identity to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_principal_identity(principal_identity_id, opts = {})
      delete_principal_identity_with_http_info(principal_identity_id, opts)
      return nil
    end

    # Delete a principal identity
    # Delete a principal identity. It does not delete the certificate. 
    # @param principal_identity_id Unique id of the principal identity to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_principal_identity_with_http_info(principal_identity_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.delete_principal_identity ..."
      end
      # verify the required parameter 'principal_identity_id' is set
      if @api_client.config.client_side_validation && principal_identity_id.nil?
        fail ArgumentError, "Missing the required parameter 'principal_identity_id' when calling NsxComponentAdministrationApi.delete_principal_identity"
      end
      # resource path
      local_var_path = "/trust-management/principal-identities/{principal-identity-id}".sub('{' + 'principal-identity-id' + '}', principal_identity_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#delete_principal_identity\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Generate a New Certificate Signing Request
    # Creates a new certificate signing request (CSR). A CSR is encrypted text that contains information about your organization (organization name, country, and so on) and your Web server's public key, which is a public certificate the is generated on the server that can be used to forward this request to a certificate authority (CA). A private key is also usually created at the same time as the CSR. 
    # @param csr 
    # @param [Hash] opts the optional parameters
    # @return [Csr]
    def generate_csr(csr, opts = {})
      data, _status_code, _headers = generate_csr_with_http_info(csr, opts)
      return data
    end

    # Generate a New Certificate Signing Request
    # Creates a new certificate signing request (CSR). A CSR is encrypted text that contains information about your organization (organization name, country, and so on) and your Web server&#39;s public key, which is a public certificate the is generated on the server that can be used to forward this request to a certificate authority (CA). A private key is also usually created at the same time as the CSR. 
    # @param csr 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Csr, Fixnum, Hash)>] Csr data, response status code and response headers
    def generate_csr_with_http_info(csr, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.generate_csr ..."
      end
      # verify the required parameter 'csr' is set
      if @api_client.config.client_side_validation && csr.nil?
        fail ArgumentError, "Missing the required parameter 'csr' when calling NsxComponentAdministrationApi.generate_csr"
      end
      # resource path
      local_var_path = "/trust-management/csrs"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(csr)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Csr')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#generate_csr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get backup configuration
    # Get a configuration of a file server and timers for automated backup. Fields that contain secrets (password, passphrase) are not returned. 
    # @param [Hash] opts the optional parameters
    # @return [BackupConfiguration]
    def get_backup_config(opts = {})
      data, _status_code, _headers = get_backup_config_with_http_info(opts)
      return data
    end

    # Get backup configuration
    # Get a configuration of a file server and timers for automated backup. Fields that contain secrets (password, passphrase) are not returned. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BackupConfiguration, Fixnum, Hash)>] BackupConfiguration data, response status code and response headers
    def get_backup_config_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_backup_config ..."
      end
      # resource path
      local_var_path = "/cluster/backups/config"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'BackupConfiguration')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_backup_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get backup history
    # Get history of previous backup operations 
    # @param [Hash] opts the optional parameters
    # @return [BackupOperationHistory]
    def get_backup_history(opts = {})
      data, _status_code, _headers = get_backup_history_with_http_info(opts)
      return data
    end

    # Get backup history
    # Get history of previous backup operations 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BackupOperationHistory, Fixnum, Hash)>] BackupOperationHistory data, response status code and response headers
    def get_backup_history_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_backup_history ..."
      end
      # resource path
      local_var_path = "/cluster/backups/history"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'BackupOperationHistory')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_backup_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get backup status
    # Get status of active backup operations 
    # @param [Hash] opts the optional parameters
    # @return [CurrentBackupOperationStatus]
    def get_backup_status(opts = {})
      data, _status_code, _headers = get_backup_status_with_http_info(opts)
      return data
    end

    # Get backup status
    # Get status of active backup operations 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CurrentBackupOperationStatus, Fixnum, Hash)>] CurrentBackupOperationStatus data, response status code and response headers
    def get_backup_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_backup_status ..."
      end
      # resource path
      local_var_path = "/cluster/backups/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CurrentBackupOperationStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_backup_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Show Certificate Data for the Given Certificate ID
    # Returns information for the specified certificate ID, including the certificate's UUID; resource_type (for example, certificate_self_signed, certificate_ca, or certificate_signed); pem_encoded data; and history of the certificate (who created or modified it and when). For additional information, include the ?details=true modifier at the end of the request URI. 
    # @param cert_id ID of certificate to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details (default to false)
    # @return [Certificate]
    def get_certificate(cert_id, opts = {})
      data, _status_code, _headers = get_certificate_with_http_info(cert_id, opts)
      return data
    end

    # Show Certificate Data for the Given Certificate ID
    # Returns information for the specified certificate ID, including the certificate&#39;s UUID; resource_type (for example, certificate_self_signed, certificate_ca, or certificate_signed); pem_encoded data; and history of the certificate (who created or modified it and when). For additional information, include the ?details&#x3D;true modifier at the end of the request URI. 
    # @param cert_id ID of certificate to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details
    # @return [Array<(Certificate, Fixnum, Hash)>] Certificate data, response status code and response headers
    def get_certificate_with_http_info(cert_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_certificate ..."
      end
      # verify the required parameter 'cert_id' is set
      if @api_client.config.client_side_validation && cert_id.nil?
        fail ArgumentError, "Missing the required parameter 'cert_id' when calling NsxComponentAdministrationApi.get_certificate"
      end
      # resource path
      local_var_path = "/trust-management/certificates/{cert-id}".sub('{' + 'cert-id' + '}', cert_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'details'] = opts[:'details'] if !opts[:'details'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Certificate')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_certificate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Return All the User-Facing Components' Certificates
    # Returns all certificate information viewable by the user, including each certificate's UUID; resource_type (for example, certificate_self_signed, certificate_ca, or certificate_signed); pem_encoded data; and history of the certificate (who created or modified it and when). For additional information, include the ?details=true modifier at the end of the request URI. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details (default to false)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @option opts [String] :type Type of certificate to return
    # @return [CertificateList]
    def get_certificates(opts = {})
      data, _status_code, _headers = get_certificates_with_http_info(opts)
      return data
    end

    # Return All the User-Facing Components&#39; Certificates
    # Returns all certificate information viewable by the user, including each certificate&#39;s UUID; resource_type (for example, certificate_self_signed, certificate_ca, or certificate_signed); pem_encoded data; and history of the certificate (who created or modified it and when). For additional information, include the ?details&#x3D;true modifier at the end of the request URI. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @option opts [String] :type Type of certificate to return
    # @return [Array<(CertificateList, Fixnum, Hash)>] CertificateList data, response status code and response headers
    def get_certificates_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_certificates ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_certificates, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_certificates, must be greater than or equal to 0.'
      end

      if @api_client.config.client_side_validation && opts[:'type'] && !['cluster_api_certificate'].include?(opts[:'type'])
        fail ArgumentError, 'invalid value for "type", must be one of cluster_api_certificate'
      end
      # resource path
      local_var_path = "/trust-management/certificates"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'details'] = opts[:'details'] if !opts[:'details'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CertificateList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_certificates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Show CRL Data for the Given CRL ID
    # Returns information about the specified CRL. For additional information, include the ?details=true modifier at the end of the request URI. 
    # @param crl_id ID of CRL to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details (default to false)
    # @return [Crl]
    def get_crl(crl_id, opts = {})
      data, _status_code, _headers = get_crl_with_http_info(crl_id, opts)
      return data
    end

    # Show CRL Data for the Given CRL ID
    # Returns information about the specified CRL. For additional information, include the ?details&#x3D;true modifier at the end of the request URI. 
    # @param crl_id ID of CRL to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details
    # @return [Array<(Crl, Fixnum, Hash)>] Crl data, response status code and response headers
    def get_crl_with_http_info(crl_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_crl ..."
      end
      # verify the required parameter 'crl_id' is set
      if @api_client.config.client_side_validation && crl_id.nil?
        fail ArgumentError, "Missing the required parameter 'crl_id' when calling NsxComponentAdministrationApi.get_crl"
      end
      # resource path
      local_var_path = "/trust-management/crls/{crl-id}".sub('{' + 'crl-id' + '}', crl_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'details'] = opts[:'details'] if !opts[:'details'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Crl')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_crl\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Return All Added CRLs
    # Returns information about all CRLs. For additional information, include the ?details=true modifier at the end of the request URI. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details (default to false)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @option opts [String] :type Type of certificate to return
    # @return [CrlList]
    def get_crls(opts = {})
      data, _status_code, _headers = get_crls_with_http_info(opts)
      return data
    end

    # Return All Added CRLs
    # Returns information about all CRLs. For additional information, include the ?details&#x3D;true modifier at the end of the request URI. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [BOOLEAN] :details whether to expand the pem data and show all its details
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @option opts [String] :type Type of certificate to return
    # @return [Array<(CrlList, Fixnum, Hash)>] CrlList data, response status code and response headers
    def get_crls_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_crls ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_crls, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_crls, must be greater than or equal to 0.'
      end

      if @api_client.config.client_side_validation && opts[:'type'] && !['cluster_api_certificate'].include?(opts[:'type'])
        fail ArgumentError, 'invalid value for "type", must be one of cluster_api_certificate'
      end
      # resource path
      local_var_path = "/trust-management/crls"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'details'] = opts[:'details'] if !opts[:'details'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CrlList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_crls\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Show CSR Data for the Given CSR ID
    # Returns information about the specified CSR.
    # @param csr_id ID of CSR to read
    # @param [Hash] opts the optional parameters
    # @return [Csr]
    def get_csr(csr_id, opts = {})
      data, _status_code, _headers = get_csr_with_http_info(csr_id, opts)
      return data
    end

    # Show CSR Data for the Given CSR ID
    # Returns information about the specified CSR.
    # @param csr_id ID of CSR to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(Csr, Fixnum, Hash)>] Csr data, response status code and response headers
    def get_csr_with_http_info(csr_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_csr ..."
      end
      # verify the required parameter 'csr_id' is set
      if @api_client.config.client_side_validation && csr_id.nil?
        fail ArgumentError, "Missing the required parameter 'csr_id' when calling NsxComponentAdministrationApi.get_csr"
      end
      # resource path
      local_var_path = "/trust-management/csrs/{csr-id}".sub('{' + 'csr-id' + '}', csr_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Csr')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_csr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get CSR PEM File for the Given CSR ID
    # Downloads the CSR PEM file for a specified CSR. Clients must include an Accept: text/plain request header.
    # @param csr_id ID of CSR to read
    # @param [Hash] opts the optional parameters
    # @return [String]
    def get_csr_pem(csr_id, opts = {})
      data, _status_code, _headers = get_csr_pem_with_http_info(csr_id, opts)
      return data
    end

    # Get CSR PEM File for the Given CSR ID
    # Downloads the CSR PEM file for a specified CSR. Clients must include an Accept: text/plain request header.
    # @param csr_id ID of CSR to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def get_csr_pem_with_http_info(csr_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_csr_pem ..."
      end
      # verify the required parameter 'csr_id' is set
      if @api_client.config.client_side_validation && csr_id.nil?
        fail ArgumentError, "Missing the required parameter 'csr_id' when calling NsxComponentAdministrationApi.get_csr_pem"
      end
      # resource path
      local_var_path = "/trust-management/csrs/{csr-id}/pem-file".sub('{' + 'csr-id' + '}', csr_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['text/plain;charset=UTF-8'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_csr_pem\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Return All the Generated CSRs
    # Returns information about all of the CSRs that have been created.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [CsrList]
    def get_csrs(opts = {})
      data, _status_code, _headers = get_csrs_with_http_info(opts)
      return data
    end

    # Return All the Generated CSRs
    # Returns information about all of the CSRs that have been created.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [Array<(CsrList, Fixnum, Hash)>] CsrList data, response status code and response headers
    def get_csrs_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_csrs ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_csrs, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.get_csrs, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/trust-management/csrs"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CsrList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_csrs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets the enable status for Mandatory Access Control
    # Gets the enable status for Mandatory Access Control
    # @param [Hash] opts the optional parameters
    # @return [MandatoryAccessControlProperties]
    def get_node_mandatory_access_control(opts = {})
      data, _status_code, _headers = get_node_mandatory_access_control_with_http_info(opts)
      return data
    end

    # Gets the enable status for Mandatory Access Control
    # Gets the enable status for Mandatory Access Control
    # @param [Hash] opts the optional parameters
    # @return [Array<(MandatoryAccessControlProperties, Fixnum, Hash)>] MandatoryAccessControlProperties data, response status code and response headers
    def get_node_mandatory_access_control_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_node_mandatory_access_control ..."
      end
      # resource path
      local_var_path = "/node/hardening-policy/mandatory-access-control"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'MandatoryAccessControlProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_node_mandatory_access_control\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the report for Mandatory Access Control
    # Get the report for Mandatory Access Control
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def get_node_mandatory_access_control_report(opts = {})
      get_node_mandatory_access_control_report_with_http_info(opts)
      return nil
    end

    # Get the report for Mandatory Access Control
    # Get the report for Mandatory Access Control
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def get_node_mandatory_access_control_report_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_node_mandatory_access_control_report ..."
      end
      # resource path
      local_var_path = "/node/hardening-policy/mandatory-access-control/report"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_node_mandatory_access_control_report\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # NodeMode
    # Returns current Node Mode. 
    # @param [Hash] opts the optional parameters
    # @return [NodeMode]
    def get_node_mode(opts = {})
      data, _status_code, _headers = get_node_mode_with_http_info(opts)
      return data
    end

    # NodeMode
    # Returns current Node Mode. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeMode, Fixnum, Hash)>] NodeMode data, response status code and response headers
    def get_node_mode_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_node_mode ..."
      end
      # resource path
      local_var_path = "/node/mode"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeMode')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_node_mode\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Return the list of principal identities
    # Returns the list of principals registered with a certificate.
    # @param [Hash] opts the optional parameters
    # @return [PrincipalIdentityList]
    def get_principal_identities(opts = {})
      data, _status_code, _headers = get_principal_identities_with_http_info(opts)
      return data
    end

    # Return the list of principal identities
    # Returns the list of principals registered with a certificate.
    # @param [Hash] opts the optional parameters
    # @return [Array<(PrincipalIdentityList, Fixnum, Hash)>] PrincipalIdentityList data, response status code and response headers
    def get_principal_identities_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_principal_identities ..."
      end
      # resource path
      local_var_path = "/trust-management/principal-identities"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PrincipalIdentityList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_principal_identities\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Principal Identity
    # Get a stored principal identity 
    # @param principal_identity_id ID of Principal Identity to get
    # @param [Hash] opts the optional parameters
    # @return [PrincipalIdentity]
    def get_principal_identity(principal_identity_id, opts = {})
      data, _status_code, _headers = get_principal_identity_with_http_info(principal_identity_id, opts)
      return data
    end

    # Get a Principal Identity
    # Get a stored principal identity 
    # @param principal_identity_id ID of Principal Identity to get
    # @param [Hash] opts the optional parameters
    # @return [Array<(PrincipalIdentity, Fixnum, Hash)>] PrincipalIdentity data, response status code and response headers
    def get_principal_identity_with_http_info(principal_identity_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_principal_identity ..."
      end
      # verify the required parameter 'principal_identity_id' is set
      if @api_client.config.client_side_validation && principal_identity_id.nil?
        fail ArgumentError, "Missing the required parameter 'principal_identity_id' when calling NsxComponentAdministrationApi.get_principal_identity"
      end
      # resource path
      local_var_path = "/trust-management/principal-identities/{principal-identity-id}".sub('{' + 'principal-identity-id' + '}', principal_identity_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PrincipalIdentity')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_principal_identity\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Restore configuration
    # Get configuration information for the file server used to store backed-up files. Fields that contain secrets (password, passphrase) are not returned. 
    # @param [Hash] opts the optional parameters
    # @return [RestoreConfiguration]
    def get_restore_config(opts = {})
      data, _status_code, _headers = get_restore_config_with_http_info(opts)
      return data
    end

    # Get Restore configuration
    # Get configuration information for the file server used to store backed-up files. Fields that contain secrets (password, passphrase) are not returned. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(RestoreConfiguration, Fixnum, Hash)>] RestoreConfiguration data, response status code and response headers
    def get_restore_config_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_restore_config ..."
      end
      # resource path
      local_var_path = "/cluster/restore/config"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'RestoreConfiguration')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_restore_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get ssh fingerprint of remote(backup) server
    # Get SHA256 fingerprint of ECDSA key of remote server. The caller should independently verify that the key is trusted. 
    # @param remote_server_fingerprint_request 
    # @param [Hash] opts the optional parameters
    # @return [RemoteServerFingerprint]
    def get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint(remote_server_fingerprint_request, opts = {})
      data, _status_code, _headers = get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint_with_http_info(remote_server_fingerprint_request, opts)
      return data
    end

    # Get ssh fingerprint of remote(backup) server
    # Get SHA256 fingerprint of ECDSA key of remote server. The caller should independently verify that the key is trusted. 
    # @param remote_server_fingerprint_request 
    # @param [Hash] opts the optional parameters
    # @return [Array<(RemoteServerFingerprint, Fixnum, Hash)>] RemoteServerFingerprint data, response status code and response headers
    def get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint_with_http_info(remote_server_fingerprint_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint ..."
      end
      # verify the required parameter 'remote_server_fingerprint_request' is set
      if @api_client.config.client_side_validation && remote_server_fingerprint_request.nil?
        fail ArgumentError, "Missing the required parameter 'remote_server_fingerprint_request' when calling NsxComponentAdministrationApi.get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint"
      end
      # resource path
      local_var_path = "/cluster/backups?action=retrieve_ssh_fingerprint"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(remote_server_fingerprint_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'RemoteServerFingerprint')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_ssh_fingerprint_of_server_retrieve_ssh_fingerprint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Return the Properties of a Trust Manager
    # Returns information about the supported algorithms and key sizes.
    # @param [Hash] opts the optional parameters
    # @return [TrustManagementData]
    def get_trust_objects(opts = {})
      data, _status_code, _headers = get_trust_objects_with_http_info(opts)
      return data
    end

    # Return the Properties of a Trust Manager
    # Returns information about the supported algorithms and key sizes.
    # @param [Hash] opts the optional parameters
    # @return [Array<(TrustManagementData, Fixnum, Hash)>] TrustManagementData data, response status code and response headers
    def get_trust_objects_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.get_trust_objects ..."
      end
      # resource path
      local_var_path = "/trust-management"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrustManagementData')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#get_trust_objects\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Import a Certificate Associated with an Approved CSR
    # Imports a certificate authority (CA)-signed certificate for a CSR. This action links the certificate to the private key created by the CSR. The pem_encoded string in the request body is the signed certificate provided by your CA in response to the CSR that you provide to them. The import POST action automatically deletes the associated CSR. 
    # @param csr_id CSR this certificate is associated with
    # @param trust_object_data 
    # @param [Hash] opts the optional parameters
    # @return [CertificateList]
    def import_certificate_import(csr_id, trust_object_data, opts = {})
      data, _status_code, _headers = import_certificate_import_with_http_info(csr_id, trust_object_data, opts)
      return data
    end

    # Import a Certificate Associated with an Approved CSR
    # Imports a certificate authority (CA)-signed certificate for a CSR. This action links the certificate to the private key created by the CSR. The pem_encoded string in the request body is the signed certificate provided by your CA in response to the CSR that you provide to them. The import POST action automatically deletes the associated CSR. 
    # @param csr_id CSR this certificate is associated with
    # @param trust_object_data 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CertificateList, Fixnum, Hash)>] CertificateList data, response status code and response headers
    def import_certificate_import_with_http_info(csr_id, trust_object_data, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.import_certificate_import ..."
      end
      # verify the required parameter 'csr_id' is set
      if @api_client.config.client_side_validation && csr_id.nil?
        fail ArgumentError, "Missing the required parameter 'csr_id' when calling NsxComponentAdministrationApi.import_certificate_import"
      end
      # verify the required parameter 'trust_object_data' is set
      if @api_client.config.client_side_validation && trust_object_data.nil?
        fail ArgumentError, "Missing the required parameter 'trust_object_data' when calling NsxComponentAdministrationApi.import_certificate_import"
      end
      # resource path
      local_var_path = "/trust-management/csrs/{csr-id}?action=import".sub('{' + 'csr-id' + '}', csr_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(trust_object_data)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CertificateList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#import_certificate_import\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Initiate a restore operation
    # Start the restore of an NSX cluster, from some previously backed-up configuration. This operation is only valid when a GET cluster/restore/status returns a status with value NOT_STARTED. Otherwise, a 409 response is returned. 
    # @param initiate_cluster_restore_request 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def initiate_cluster_restore_start(initiate_cluster_restore_request, opts = {})
      data, _status_code, _headers = initiate_cluster_restore_start_with_http_info(initiate_cluster_restore_request, opts)
      return data
    end

    # Initiate a restore operation
    # Start the restore of an NSX cluster, from some previously backed-up configuration. This operation is only valid when a GET cluster/restore/status returns a status with value NOT_STARTED. Otherwise, a 409 response is returned. 
    # @param initiate_cluster_restore_request 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def initiate_cluster_restore_start_with_http_info(initiate_cluster_restore_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.initiate_cluster_restore_start ..."
      end
      # verify the required parameter 'initiate_cluster_restore_request' is set
      if @api_client.config.client_side_validation && initiate_cluster_restore_request.nil?
        fail ArgumentError, "Missing the required parameter 'initiate_cluster_restore_request' when calling NsxComponentAdministrationApi.initiate_cluster_restore_start"
      end
      # resource path
      local_var_path = "/cluster/restore?action=start"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(initiate_cluster_restore_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#initiate_cluster_restore_start\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke DELETE request on target cluster node
    # Invoke DELETE request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_delete_cluster_central_api(target_node_id, target_uri, opts = {})
      invoke_delete_cluster_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke DELETE request on target cluster node
    # Invoke DELETE request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_delete_cluster_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_delete_cluster_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_delete_cluster_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_delete_cluster_central_api"
      end
      # resource path
      local_var_path = "/cluster/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_delete_cluster_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke DELETE request on target fabric node
    # Invoke DELETE request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_delete_fabric_central_api(target_node_id, target_uri, opts = {})
      invoke_delete_fabric_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke DELETE request on target fabric node
    # Invoke DELETE request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_delete_fabric_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_delete_fabric_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_delete_fabric_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_delete_fabric_central_api"
      end
      # resource path
      local_var_path = "/fabric/nodes/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_delete_fabric_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke GET request on target cluster node
    # Invoke GET request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_get_cluster_central_api(target_node_id, target_uri, opts = {})
      invoke_get_cluster_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke GET request on target cluster node
    # Invoke GET request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_get_cluster_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_get_cluster_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_get_cluster_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_get_cluster_central_api"
      end
      # resource path
      local_var_path = "/cluster/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_get_cluster_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke GET request on target fabric node
    # Invoke GET request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_get_fabric_central_api(target_node_id, target_uri, opts = {})
      invoke_get_fabric_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke GET request on target fabric node
    # Invoke GET request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_get_fabric_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_get_fabric_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_get_fabric_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_get_fabric_central_api"
      end
      # resource path
      local_var_path = "/fabric/nodes/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_get_fabric_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke POST request on target cluster node
    # Invoke POST request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_post_cluster_central_api(target_node_id, target_uri, opts = {})
      invoke_post_cluster_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke POST request on target cluster node
    # Invoke POST request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_post_cluster_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_post_cluster_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_post_cluster_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_post_cluster_central_api"
      end
      # resource path
      local_var_path = "/cluster/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_post_cluster_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke POST request on target fabric node
    # Invoke POST request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_post_fabric_central_api(target_node_id, target_uri, opts = {})
      invoke_post_fabric_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke POST request on target fabric node
    # Invoke POST request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_post_fabric_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_post_fabric_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_post_fabric_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_post_fabric_central_api"
      end
      # resource path
      local_var_path = "/fabric/nodes/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_post_fabric_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke PUT request on target cluster node
    # Invoke PUT request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_put_cluster_central_api(target_node_id, target_uri, opts = {})
      invoke_put_cluster_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke PUT request on target cluster node
    # Invoke PUT request on target cluster node
    # @param target_node_id Target node UUID or keyword self
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_put_cluster_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_put_cluster_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_put_cluster_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_put_cluster_central_api"
      end
      # resource path
      local_var_path = "/cluster/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_put_cluster_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Invoke PUT request on target fabric node
    # Invoke PUT request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def invoke_put_fabric_central_api(target_node_id, target_uri, opts = {})
      invoke_put_fabric_central_api_with_http_info(target_node_id, target_uri, opts)
      return nil
    end

    # Invoke PUT request on target fabric node
    # Invoke PUT request on target fabric node
    # @param target_node_id Target node UUID
    # @param target_uri URI of API to invoke on target node
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def invoke_put_fabric_central_api_with_http_info(target_node_id, target_uri, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.invoke_put_fabric_central_api ..."
      end
      # verify the required parameter 'target_node_id' is set
      if @api_client.config.client_side_validation && target_node_id.nil?
        fail ArgumentError, "Missing the required parameter 'target_node_id' when calling NsxComponentAdministrationApi.invoke_put_fabric_central_api"
      end
      # verify the required parameter 'target_uri' is set
      if @api_client.config.client_side_validation && target_uri.nil?
        fail ArgumentError, "Missing the required parameter 'target_uri' when calling NsxComponentAdministrationApi.invoke_put_fabric_central_api"
      end
      # resource path
      local_var_path = "/fabric/nodes/{target-node-id}/{target-uri}".sub('{' + 'target-node-id' + '}', target_node_id.to_s).sub('{' + 'target-uri' + '}', target_uri.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#invoke_put_fabric_central_api\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List appliance management tasks
    # List appliance management tasks
    # @param [Hash] opts the optional parameters
    # @option opts [String] :fields Fields to include in query results
    # @option opts [String] :request_method Request method(s) to include in query result
    # @option opts [String] :request_path Request URI path(s) to include in query result
    # @option opts [String] :request_uri Request URI(s) to include in query result
    # @option opts [String] :status Status(es) to include in query result
    # @option opts [String] :user Names of users to include in query result
    # @return [ApplianceManagementTaskListResult]
    def list_appliance_management_tasks(opts = {})
      data, _status_code, _headers = list_appliance_management_tasks_with_http_info(opts)
      return data
    end

    # List appliance management tasks
    # List appliance management tasks
    # @param [Hash] opts the optional parameters
    # @option opts [String] :fields Fields to include in query results
    # @option opts [String] :request_method Request method(s) to include in query result
    # @option opts [String] :request_path Request URI path(s) to include in query result
    # @option opts [String] :request_uri Request URI(s) to include in query result
    # @option opts [String] :status Status(es) to include in query result
    # @option opts [String] :user Names of users to include in query result
    # @return [Array<(ApplianceManagementTaskListResult, Fixnum, Hash)>] ApplianceManagementTaskListResult data, response status code and response headers
    def list_appliance_management_tasks_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_appliance_management_tasks ..."
      end
      if @api_client.config.client_side_validation && !opts[:'request_method'].nil? && opts[:'request_method'] !~ Regexp.new(/^(=|!=|~|!~)?.+$/)
        fail ArgumentError, "invalid value for 'opts[:\"request_method\"]' when calling NsxComponentAdministrationApi.list_appliance_management_tasks, must conform to the pattern /^(=|!=|~|!~)?.+$/."
      end

      if @api_client.config.client_side_validation && !opts[:'request_path'].nil? && opts[:'request_path'] !~ Regexp.new(/^(=|!=|~|!~)?.+$/)
        fail ArgumentError, "invalid value for 'opts[:\"request_path\"]' when calling NsxComponentAdministrationApi.list_appliance_management_tasks, must conform to the pattern /^(=|!=|~|!~)?.+$/."
      end

      if @api_client.config.client_side_validation && !opts[:'request_uri'].nil? && opts[:'request_uri'] !~ Regexp.new(/^(=|!=|~|!~)?.+$/)
        fail ArgumentError, "invalid value for 'opts[:\"request_uri\"]' when calling NsxComponentAdministrationApi.list_appliance_management_tasks, must conform to the pattern /^(=|!=|~|!~)?.+$/."
      end

      if @api_client.config.client_side_validation && !opts[:'status'].nil? && opts[:'status'] !~ Regexp.new(/^(=|!=|~|!~)?.+$/)
        fail ArgumentError, "invalid value for 'opts[:\"status\"]' when calling NsxComponentAdministrationApi.list_appliance_management_tasks, must conform to the pattern /^(=|!=|~|!~)?.+$/."
      end

      if @api_client.config.client_side_validation && !opts[:'user'].nil? && opts[:'user'] !~ Regexp.new(/^(=|!=|~|!~)?.+$/)
        fail ArgumentError, "invalid value for 'opts[:\"user\"]' when calling NsxComponentAdministrationApi.list_appliance_management_tasks, must conform to the pattern /^(=|!=|~|!~)?.+$/."
      end

      # resource path
      local_var_path = "/node/tasks"

      # query parameters
      query_params = {}
      query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
      query_params[:'request_method'] = opts[:'request_method'] if !opts[:'request_method'].nil?
      query_params[:'request_path'] = opts[:'request_path'] if !opts[:'request_path'].nil?
      query_params[:'request_uri'] = opts[:'request_uri'] if !opts[:'request_uri'].nil?
      query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
      query_params[:'user'] = opts[:'user'] if !opts[:'user'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ApplianceManagementTaskListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_appliance_management_tasks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List timestamps of all available Cluster Backups.
    # Returns timestamps for all backup files that are available on the SFTP server. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [ClusterBackupInfoListResult]
    def list_cluster_backup_timestamps(opts = {})
      data, _status_code, _headers = list_cluster_backup_timestamps_with_http_info(opts)
      return data
    end

    # List timestamps of all available Cluster Backups.
    # Returns timestamps for all backup files that are available on the SFTP server. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [Array<(ClusterBackupInfoListResult, Fixnum, Hash)>] ClusterBackupInfoListResult data, response status code and response headers
    def list_cluster_backup_timestamps_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_cluster_backup_timestamps ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_cluster_backup_timestamps, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_cluster_backup_timestamps, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/cluster/restore/backuptimestamps"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterBackupInfoListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_cluster_backup_timestamps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List Cluster Node Configurations
    # Returns information about all NSX cluster nodes.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [ClusterNodeConfigListResult]
    def list_cluster_node_configs(opts = {})
      data, _status_code, _headers = list_cluster_node_configs_with_http_info(opts)
      return data
    end

    # List Cluster Node Configurations
    # Returns information about all NSX cluster nodes.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [Array<(ClusterNodeConfigListResult, Fixnum, Hash)>] ClusterNodeConfigListResult data, response status code and response headers
    def list_cluster_node_configs_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_cluster_node_configs ..."
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_cluster_node_configs, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_cluster_node_configs, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/cluster/nodes"

      # query parameters
      query_params = {}
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterNodeConfigListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_cluster_node_configs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List the specified node's Network Interfaces
    # Returns the number of interfaces on the node and detailed information about each interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network mask, and the IP configuration method (static or DHCP). 
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [NodeInterfacePropertiesListResult]
    def list_cluster_node_interfaces(node_id, opts = {})
      data, _status_code, _headers = list_cluster_node_interfaces_with_http_info(node_id, opts)
      return data
    end

    # List the specified node&#39;s Network Interfaces
    # Returns the number of interfaces on the node and detailed information about each interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network mask, and the IP configuration method (static or DHCP). 
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [Array<(NodeInterfacePropertiesListResult, Fixnum, Hash)>] NodeInterfacePropertiesListResult data, response status code and response headers
    def list_cluster_node_interfaces_with_http_info(node_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_cluster_node_interfaces ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.list_cluster_node_interfaces"
      end
      if @api_client.config.client_side_validation && opts[:'source'] && !['realtime', 'cached'].include?(opts[:'source'])
        fail ArgumentError, 'invalid value for "source", must be one of realtime, cached'
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}/network/interfaces".sub('{' + 'node-id' + '}', node_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInterfacePropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_cluster_node_interfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node files
    # List node files
    # @param [Hash] opts the optional parameters
    # @return [FilePropertiesListResult]
    def list_files(opts = {})
      data, _status_code, _headers = list_files_with_http_info(opts)
      return data
    end

    # List node files
    # List node files
    # @param [Hash] opts the optional parameters
    # @return [Array<(FilePropertiesListResult, Fixnum, Hash)>] FilePropertiesListResult data, response status code and response headers
    def list_files_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_files ..."
      end
      # resource path
      local_var_path = "/node/file-store"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FilePropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_files\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List the NSX Manager's Network Interfaces
    # Returns the number of interfaces on the NSX Manager appliance and detailed information about each interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network mask, and the IP configuration method (static or DHCP). 
    # @param [Hash] opts the optional parameters
    # @return [NodeNetworkInterfacePropertiesListResult]
    def list_node_interfaces(opts = {})
      data, _status_code, _headers = list_node_interfaces_with_http_info(opts)
      return data
    end

    # List the NSX Manager&#39;s Network Interfaces
    # Returns the number of interfaces on the NSX Manager appliance and detailed information about each interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network mask, and the IP configuration method (static or DHCP). 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNetworkInterfacePropertiesListResult, Fixnum, Hash)>] NodeNetworkInterfacePropertiesListResult data, response status code and response headers
    def list_node_interfaces_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_interfaces ..."
      end
      # resource path
      local_var_path = "/node/network/interfaces"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNetworkInterfacePropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_interfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node network routes
    # Returns detailed information about each route in the NSX Manager routing table. Route information includes the route type (default, static, and so on), a unique route identifier, the route metric, the protocol from which the route was learned, the route source (which is the preferred egress interface), the route destination, and the route scope. The route scope refers to the distance to the destination network: The \"host\" scope leads to a destination address on the NSX Manager, such as a loopback address; the \"link\" scope leads to a destination on the local network; and the \"global\" scope leads to addresses that are more than one hop away. 
    # @param [Hash] opts the optional parameters
    # @return [NodeRoutePropertiesListResult]
    def list_node_network_routes(opts = {})
      data, _status_code, _headers = list_node_network_routes_with_http_info(opts)
      return data
    end

    # List node network routes
    # Returns detailed information about each route in the NSX Manager routing table. Route information includes the route type (default, static, and so on), a unique route identifier, the route metric, the protocol from which the route was learned, the route source (which is the preferred egress interface), the route destination, and the route scope. The route scope refers to the distance to the destination network: The \&quot;host\&quot; scope leads to a destination address on the NSX Manager, such as a loopback address; the \&quot;link\&quot; scope leads to a destination on the local network; and the \&quot;global\&quot; scope leads to addresses that are more than one hop away. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeRoutePropertiesListResult, Fixnum, Hash)>] NodeRoutePropertiesListResult data, response status code and response headers
    def list_node_network_routes_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_network_routes ..."
      end
      # resource path
      local_var_path = "/node/network/routes"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeRoutePropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_network_routes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node processes
    # Returns the number of processes and information about each process. Process information includes 1) mem_resident, which is roughly equivalent to the amount of RAM, in bytes, currently used by the process, 2) parent process ID (ppid), 3) process name, 4) process up time in milliseconds, 5) mem_used, wich is the amount of virtual memory used by the process, in bytes, 6) process start time, in milliseconds since epoch, 7) process ID (pid), 8) CPU time, both user and the system, consumed by the process in milliseconds. 
    # @param [Hash] opts the optional parameters
    # @return [NodeProcessPropertiesListResult]
    def list_node_processes(opts = {})
      data, _status_code, _headers = list_node_processes_with_http_info(opts)
      return data
    end

    # List node processes
    # Returns the number of processes and information about each process. Process information includes 1) mem_resident, which is roughly equivalent to the amount of RAM, in bytes, currently used by the process, 2) parent process ID (ppid), 3) process name, 4) process up time in milliseconds, 5) mem_used, wich is the amount of virtual memory used by the process, in bytes, 6) process start time, in milliseconds since epoch, 7) process ID (pid), 8) CPU time, both user and the system, consumed by the process in milliseconds. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProcessPropertiesListResult, Fixnum, Hash)>] NodeProcessPropertiesListResult data, response status code and response headers
    def list_node_processes_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_processes ..."
      end
      # resource path
      local_var_path = "/node/processes"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProcessPropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_processes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node services
    # Returns a list of all services available on the NSX Manager applicance. 
    # @param [Hash] opts the optional parameters
    # @return [NodeServicePropertiesListResult]
    def list_node_services(opts = {})
      data, _status_code, _headers = list_node_services_with_http_info(opts)
      return data
    end

    # List node services
    # Returns a list of all services available on the NSX Manager applicance. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServicePropertiesListResult, Fixnum, Hash)>] NodeServicePropertiesListResult data, response status code and response headers
    def list_node_services_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_services ..."
      end
      # resource path
      local_var_path = "/node/services"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServicePropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_services\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node syslog exporters
    # Returns the collection of registered syslog exporter rules, if any. The rules specify the collector IP address and port, and the protocol to use. 
    # @param [Hash] opts the optional parameters
    # @return [NodeSyslogExporterPropertiesListResult]
    def list_node_syslog_exporters(opts = {})
      data, _status_code, _headers = list_node_syslog_exporters_with_http_info(opts)
      return data
    end

    # List node syslog exporters
    # Returns the collection of registered syslog exporter rules, if any. The rules specify the collector IP address and port, and the protocol to use. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSyslogExporterPropertiesListResult, Fixnum, Hash)>] NodeSyslogExporterPropertiesListResult data, response status code and response headers
    def list_node_syslog_exporters_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_syslog_exporters ..."
      end
      # resource path
      local_var_path = "/node/services/syslog/exporters"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSyslogExporterPropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_syslog_exporters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List SSH keys from authorized_keys file for node user
    # Returns a list of all SSH keys from authorized_keys file for node user 
    # @param userid User id of the user
    # @param [Hash] opts the optional parameters
    # @return [SshKeyPropertiesListResult]
    def list_node_user_ssh_keys(userid, opts = {})
      data, _status_code, _headers = list_node_user_ssh_keys_with_http_info(userid, opts)
      return data
    end

    # List SSH keys from authorized_keys file for node user
    # Returns a list of all SSH keys from authorized_keys file for node user 
    # @param userid User id of the user
    # @param [Hash] opts the optional parameters
    # @return [Array<(SshKeyPropertiesListResult, Fixnum, Hash)>] SshKeyPropertiesListResult data, response status code and response headers
    def list_node_user_ssh_keys_with_http_info(userid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_user_ssh_keys ..."
      end
      # verify the required parameter 'userid' is set
      if @api_client.config.client_side_validation && userid.nil?
        fail ArgumentError, "Missing the required parameter 'userid' when calling NsxComponentAdministrationApi.list_node_user_ssh_keys"
      end
      # resource path
      local_var_path = "/node/users/{userid}/ssh-keys".sub('{' + 'userid' + '}', userid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SshKeyPropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_user_ssh_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List node users
    # Returns the list of users configued to log in to the NSX Manager appliance. 
    # @param [Hash] opts the optional parameters
    # @return [NodeUserPropertiesListResult]
    def list_node_users(opts = {})
      data, _status_code, _headers = list_node_users_with_http_info(opts)
      return data
    end

    # List node users
    # Returns the list of users configued to log in to the NSX Manager appliance. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeUserPropertiesListResult, Fixnum, Hash)>] NodeUserPropertiesListResult data, response status code and response headers
    def list_node_users_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_node_users ..."
      end
      # resource path
      local_var_path = "/node/users"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeUserPropertiesListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_node_users\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List resources for a given instruction, to be shown to/executed by users. 
    # For restore operations requiring user input e.g. performing an action, accepting/rejecting an action, etc. the information to be conveyed to users is provided in this call. 
    # @param instruction_id Id of the instruction set whose instructions are to be returned
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer) (default to 1000)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [ActionableResourceListResult]
    def list_restore_instruction_resources(instruction_id, opts = {})
      data, _status_code, _headers = list_restore_instruction_resources_with_http_info(instruction_id, opts)
      return data
    end

    # List resources for a given instruction, to be shown to/executed by users. 
    # For restore operations requiring user input e.g. performing an action, accepting/rejecting an action, etc. the information to be conveyed to users is provided in this call. 
    # @param instruction_id Id of the instruction set whose instructions are to be returned
    # @param [Hash] opts the optional parameters
    # @option opts [String] :cursor Opaque cursor to be used for getting next page of records (supplied by current result page)
    # @option opts [String] :included_fields Comma separated list of fields that should be included in query result
    # @option opts [Integer] :page_size Maximum number of results to return in this page (server may return fewer)
    # @option opts [BOOLEAN] :sort_ascending 
    # @option opts [String] :sort_by Field by which records are sorted
    # @return [Array<(ActionableResourceListResult, Fixnum, Hash)>] ActionableResourceListResult data, response status code and response headers
    def list_restore_instruction_resources_with_http_info(instruction_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.list_restore_instruction_resources ..."
      end
      # verify the required parameter 'instruction_id' is set
      if @api_client.config.client_side_validation && instruction_id.nil?
        fail ArgumentError, "Missing the required parameter 'instruction_id' when calling NsxComponentAdministrationApi.list_restore_instruction_resources"
      end
      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 1000
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_restore_instruction_resources, must be smaller than or equal to 1000.'
      end

      if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 0
        fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling NsxComponentAdministrationApi.list_restore_instruction_resources, must be greater than or equal to 0.'
      end

      # resource path
      local_var_path = "/cluster/restore/instruction-resources"

      # query parameters
      query_params = {}
      query_params[:'instruction_id'] = instruction_id
      query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
      query_params[:'included_fields'] = opts[:'included_fields'] if !opts[:'included_fields'].nil?
      query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'sort_ascending'] = opts[:'sort_ascending'] if !opts[:'sort_ascending'].nil?
      query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ActionableResourceListResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#list_restore_instruction_resources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add node syslog exporter
    # Adds a rule for exporting syslog information to a specified server. The required parameters are the rule name (exporter_name); severity level (emerg, alert, crit, and so on); transmission protocol (TCP or UDP); and server IP address or hostname. The optional parameters are the syslog port number, which can be 1 through 65,535 (514, by default); facility level to use when logging messages to syslog (kern, user, mail, and so on); and message IDs (msgids), which identify the types of messages to export. 
    # @param node_syslog_exporter_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeSyslogExporterProperties]
    def post_node_syslog_exporter(node_syslog_exporter_properties, opts = {})
      data, _status_code, _headers = post_node_syslog_exporter_with_http_info(node_syslog_exporter_properties, opts)
      return data
    end

    # Add node syslog exporter
    # Adds a rule for exporting syslog information to a specified server. The required parameters are the rule name (exporter_name); severity level (emerg, alert, crit, and so on); transmission protocol (TCP or UDP); and server IP address or hostname. The optional parameters are the syslog port number, which can be 1 through 65,535 (514, by default); facility level to use when logging messages to syslog (kern, user, mail, and so on); and message IDs (msgids), which identify the types of messages to export. 
    # @param node_syslog_exporter_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSyslogExporterProperties, Fixnum, Hash)>] NodeSyslogExporterProperties data, response status code and response headers
    def post_node_syslog_exporter_with_http_info(node_syslog_exporter_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.post_node_syslog_exporter ..."
      end
      # verify the required parameter 'node_syslog_exporter_properties' is set
      if @api_client.config.client_side_validation && node_syslog_exporter_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_syslog_exporter_properties' when calling NsxComponentAdministrationApi.post_node_syslog_exporter"
      end
      # resource path
      local_var_path = "/node/services/syslog/exporters"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_syslog_exporter_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSyslogExporterProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#post_node_syslog_exporter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query Restore Request Status
    # Returns status information for the specified NSX cluster restore request. 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def query_cluster_restore_status(opts = {})
      data, _status_code, _headers = query_cluster_restore_status_with_http_info(opts)
      return data
    end

    # Query Restore Request Status
    # Returns status information for the specified NSX cluster restore request. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def query_cluster_restore_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.query_cluster_restore_status ..."
      end
      # resource path
      local_var_path = "/cluster/restore/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#query_cluster_restore_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read appliance management service properties
    # Read appliance management service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_appliance_management_service(opts = {})
      data, _status_code, _headers = read_appliance_management_service_with_http_info(opts)
      return data
    end

    # Read appliance management service properties
    # Read appliance management service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_appliance_management_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_appliance_management_service ..."
      end
      # resource path
      local_var_path = "/node/services/node-mgmt"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_appliance_management_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read appliance management service status
    # Read appliance management service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_appliance_management_service_status(opts = {})
      data, _status_code, _headers = read_appliance_management_service_status_with_http_info(opts)
      return data
    end

    # Read appliance management service status
    # Read appliance management service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_appliance_management_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_appliance_management_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/node-mgmt/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_appliance_management_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read task properties
    # Read task properties
    # @param task_id ID of task to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :suppress_redirect Suppress redirect status if applicable (default to false)
    # @return [ApplianceManagementTaskProperties]
    def read_appliance_management_task_properties(task_id, opts = {})
      data, _status_code, _headers = read_appliance_management_task_properties_with_http_info(task_id, opts)
      return data
    end

    # Read task properties
    # Read task properties
    # @param task_id ID of task to read
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :suppress_redirect Suppress redirect status if applicable
    # @return [Array<(ApplianceManagementTaskProperties, Fixnum, Hash)>] ApplianceManagementTaskProperties data, response status code and response headers
    def read_appliance_management_task_properties_with_http_info(task_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_appliance_management_task_properties ..."
      end
      # verify the required parameter 'task_id' is set
      if @api_client.config.client_side_validation && task_id.nil?
        fail ArgumentError, "Missing the required parameter 'task_id' when calling NsxComponentAdministrationApi.read_appliance_management_task_properties"
      end
      # resource path
      local_var_path = "/node/tasks/{task-id}".sub('{' + 'task-id' + '}', task_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'suppress_redirect'] = opts[:'suppress_redirect'] if !opts[:'suppress_redirect'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ApplianceManagementTaskProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_appliance_management_task_properties\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node status
    # Returns information about the NSX Manager appliance's file system, CPU, memory, disk usage, and uptime. 
    # @param [Hash] opts the optional parameters
    # @return [NodeStatusProperties]
    def read_appliance_node_status(opts = {})
      data, _status_code, _headers = read_appliance_node_status_with_http_info(opts)
      return data
    end

    # Read node status
    # Returns information about the NSX Manager appliance&#39;s file system, CPU, memory, disk usage, and uptime. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeStatusProperties, Fixnum, Hash)>] NodeStatusProperties data, response status code and response headers
    def read_appliance_node_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_appliance_node_status ..."
      end
      # resource path
      local_var_path = "/node/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_appliance_node_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read asynchronous task response
    # Read asynchronous task response
    # @param task_id ID of task to read
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def read_asnyc_appliance_management_task_response(task_id, opts = {})
      read_asnyc_appliance_management_task_response_with_http_info(task_id, opts)
      return nil
    end

    # Read asynchronous task response
    # Read asynchronous task response
    # @param task_id ID of task to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def read_asnyc_appliance_management_task_response_with_http_info(task_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_asnyc_appliance_management_task_response ..."
      end
      # verify the required parameter 'task_id' is set
      if @api_client.config.client_side_validation && task_id.nil?
        fail ArgumentError, "Missing the required parameter 'task_id' when calling NsxComponentAdministrationApi.read_asnyc_appliance_management_task_response"
      end
      # resource path
      local_var_path = "/node/tasks/{task-id}/response".sub('{' + 'task-id' + '}', task_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_asnyc_appliance_management_task_response\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read AAA provider vIDM properties
    # Read AAA provider vIDM properties
    # @param [Hash] opts the optional parameters
    # @return [NodeAuthProviderVidmProperties]
    def read_auth_provider_vidm(opts = {})
      data, _status_code, _headers = read_auth_provider_vidm_with_http_info(opts)
      return data
    end

    # Read AAA provider vIDM properties
    # Read AAA provider vIDM properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeAuthProviderVidmProperties, Fixnum, Hash)>] NodeAuthProviderVidmProperties data, response status code and response headers
    def read_auth_provider_vidm_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_auth_provider_vidm ..."
      end
      # resource path
      local_var_path = "/node/aaa/providers/vidm"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeAuthProviderVidmProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_auth_provider_vidm\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read AAA provider vIDM status
    # Read AAA provider vIDM status
    # @param [Hash] opts the optional parameters
    # @return [NodeAuthProviderVidmStatus]
    def read_auth_provider_vidm_status(opts = {})
      data, _status_code, _headers = read_auth_provider_vidm_status_with_http_info(opts)
      return data
    end

    # Read AAA provider vIDM status
    # Read AAA provider vIDM status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeAuthProviderVidmStatus, Fixnum, Hash)>] NodeAuthProviderVidmStatus data, response status code and response headers
    def read_auth_provider_vidm_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_auth_provider_vidm_status ..."
      end
      # resource path
      local_var_path = "/node/aaa/providers/vidm/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeAuthProviderVidmStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_auth_provider_vidm_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read cluster boot manager service properties
    # Read cluster boot manager service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_cluster_boot_manager_service(opts = {})
      data, _status_code, _headers = read_cluster_boot_manager_service_with_http_info(opts)
      return data
    end

    # Read cluster boot manager service properties
    # Read cluster boot manager service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_cluster_boot_manager_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_boot_manager_service ..."
      end
      # resource path
      local_var_path = "/node/services/cluster_manager"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_boot_manager_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read cluster boot manager service status
    # Read cluster boot manager service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_cluster_boot_manager_service_status(opts = {})
      data, _status_code, _headers = read_cluster_boot_manager_service_status_with_http_info(opts)
      return data
    end

    # Read cluster boot manager service status
    # Read cluster boot manager service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_cluster_boot_manager_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_boot_manager_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/cluster_manager/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_boot_manager_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Cluster Configuration
    # Returns information about the NSX cluster configuration. An NSX cluster has two functions or purposes, commonly referred to as \"roles.\" These two roles are control and management. Each NSX installation has a single cluster. Separate NSX clusters do not share data. In other words, a given data-plane node is attached to only one cluster, not to multiple clusters. 
    # @param [Hash] opts the optional parameters
    # @return [ClusterConfig]
    def read_cluster_config(opts = {})
      data, _status_code, _headers = read_cluster_config_with_http_info(opts)
      return data
    end

    # Read Cluster Configuration
    # Returns information about the NSX cluster configuration. An NSX cluster has two functions or purposes, commonly referred to as \&quot;roles.\&quot; These two roles are control and management. Each NSX installation has a single cluster. Separate NSX clusters do not share data. In other words, a given data-plane node is attached to only one cluster, not to multiple clusters. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterConfig, Fixnum, Hash)>] ClusterConfig data, response status code and response headers
    def read_cluster_config_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_config ..."
      end
      # resource path
      local_var_path = "/cluster"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterConfig')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Cluster Node Configuration
    # Returns information about the specified NSX cluster node.
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @return [ClusterNodeConfig]
    def read_cluster_node_config(node_id, opts = {})
      data, _status_code, _headers = read_cluster_node_config_with_http_info(node_id, opts)
      return data
    end

    # Read Cluster Node Configuration
    # Returns information about the specified NSX cluster node.
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterNodeConfig, Fixnum, Hash)>] ClusterNodeConfig data, response status code and response headers
    def read_cluster_node_config_with_http_info(node_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_node_config ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.read_cluster_node_config"
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}".sub('{' + 'node-id' + '}', node_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterNodeConfig')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_node_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the node's Network Interface
    # Returns detailed information about the specified interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network  mask, and the IP configuration method (static or DHCP). 
    # @param node_id 
    # @param interface_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [NodeInterfaceProperties]
    def read_cluster_node_interface(node_id, interface_id, opts = {})
      data, _status_code, _headers = read_cluster_node_interface_with_http_info(node_id, interface_id, opts)
      return data
    end

    # Read the node&#39;s Network Interface
    # Returns detailed information about the specified interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network  mask, and the IP configuration method (static or DHCP). 
    # @param node_id 
    # @param interface_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [Array<(NodeInterfaceProperties, Fixnum, Hash)>] NodeInterfaceProperties data, response status code and response headers
    def read_cluster_node_interface_with_http_info(node_id, interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_node_interface ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.read_cluster_node_interface"
      end
      # verify the required parameter 'interface_id' is set
      if @api_client.config.client_side_validation && interface_id.nil?
        fail ArgumentError, "Missing the required parameter 'interface_id' when calling NsxComponentAdministrationApi.read_cluster_node_interface"
      end
      if @api_client.config.client_side_validation && opts[:'source'] && !['realtime', 'cached'].include?(opts[:'source'])
        fail ArgumentError, 'invalid value for "source", must be one of realtime, cached'
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}/network/interfaces/{interface-id}".sub('{' + 'node-id' + '}', node_id.to_s).sub('{' + 'interface-id' + '}', interface_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInterfaceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_node_interface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the NSX Manager/Controller's Network Interface Statistics
    # On the specified interface, returns the number of received (rx), transmitted (tx), and dropped packets; the number of bytes and errors received and transmitted on the interface; and the number of detected collisions. 
    # @param node_id 
    # @param interface_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [NodeInterfaceStatisticsProperties]
    def read_cluster_node_interface_statistics(node_id, interface_id, opts = {})
      data, _status_code, _headers = read_cluster_node_interface_statistics_with_http_info(node_id, interface_id, opts)
      return data
    end

    # Read the NSX Manager/Controller&#39;s Network Interface Statistics
    # On the specified interface, returns the number of received (rx), transmitted (tx), and dropped packets; the number of bytes and errors received and transmitted on the interface; and the number of detected collisions. 
    # @param node_id 
    # @param interface_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [Array<(NodeInterfaceStatisticsProperties, Fixnum, Hash)>] NodeInterfaceStatisticsProperties data, response status code and response headers
    def read_cluster_node_interface_statistics_with_http_info(node_id, interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_node_interface_statistics ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.read_cluster_node_interface_statistics"
      end
      # verify the required parameter 'interface_id' is set
      if @api_client.config.client_side_validation && interface_id.nil?
        fail ArgumentError, "Missing the required parameter 'interface_id' when calling NsxComponentAdministrationApi.read_cluster_node_interface_statistics"
      end
      if @api_client.config.client_side_validation && opts[:'source'] && !['realtime', 'cached'].include?(opts[:'source'])
        fail ArgumentError, 'invalid value for "source", must be one of realtime, cached'
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}/network/interfaces/{interface-id}/stats".sub('{' + 'node-id' + '}', node_id.to_s).sub('{' + 'interface-id' + '}', interface_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInterfaceStatisticsProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_node_interface_statistics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Cluster Node Status
    # Read Cluster Node Status
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [ClusterNodeStatus]
    def read_cluster_node_status(node_id, opts = {})
      data, _status_code, _headers = read_cluster_node_status_with_http_info(node_id, opts)
      return data
    end

    # Read Cluster Node Status
    # Read Cluster Node Status
    # @param node_id 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [Array<(ClusterNodeStatus, Fixnum, Hash)>] ClusterNodeStatus data, response status code and response headers
    def read_cluster_node_status_with_http_info(node_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_node_status ..."
      end
      # verify the required parameter 'node_id' is set
      if @api_client.config.client_side_validation && node_id.nil?
        fail ArgumentError, "Missing the required parameter 'node_id' when calling NsxComponentAdministrationApi.read_cluster_node_status"
      end
      if @api_client.config.client_side_validation && opts[:'source'] && !['realtime', 'cached'].include?(opts[:'source'])
        fail ArgumentError, 'invalid value for "source", must be one of realtime, cached'
      end
      # resource path
      local_var_path = "/cluster/nodes/{node-id}/status".sub('{' + 'node-id' + '}', node_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterNodeStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_node_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Cluster Status
    # Read Cluster Status
    # @param [Hash] opts the optional parameters
    # @return [ClustersAggregateInfo]
    def read_cluster_nodes_aggregate_status(opts = {})
      data, _status_code, _headers = read_cluster_nodes_aggregate_status_with_http_info(opts)
      return data
    end

    # Read Cluster Status
    # Read Cluster Status
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClustersAggregateInfo, Fixnum, Hash)>] ClustersAggregateInfo data, response status code and response headers
    def read_cluster_nodes_aggregate_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_nodes_aggregate_status ..."
      end
      # resource path
      local_var_path = "/cluster/nodes/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClustersAggregateInfo')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_nodes_aggregate_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Cluster Status
    # Returns status information for the NSX cluster control role and management role. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [ClusterStatus]
    def read_cluster_status(opts = {})
      data, _status_code, _headers = read_cluster_status_with_http_info(opts)
      return data
    end

    # Read Cluster Status
    # Returns status information for the NSX cluster control role and management role. 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :source Data source type.
    # @return [Array<(ClusterStatus, Fixnum, Hash)>] ClusterStatus data, response status code and response headers
    def read_cluster_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cluster_status ..."
      end
      if @api_client.config.client_side_validation && opts[:'source'] && !['realtime', 'cached'].include?(opts[:'source'])
        fail ArgumentError, 'invalid value for "source", must be one of realtime, cached'
      end
      # resource path
      local_var_path = "/cluster/status"

      # query parameters
      query_params = {}
      query_params[:'source'] = opts[:'source'] if !opts[:'source'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cluster_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read cm inventory service properties
    # Read cm inventory service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_cminventory_service(opts = {})
      data, _status_code, _headers = read_cminventory_service_with_http_info(opts)
      return data
    end

    # Read cm inventory service properties
    # Read cm inventory service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_cminventory_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cminventory_service ..."
      end
      # resource path
      local_var_path = "/node/services/cm-inventory"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cminventory_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read manager service status
    # Read manager service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_cminventory_service_status(opts = {})
      data, _status_code, _headers = read_cminventory_service_status_with_http_info(opts)
      return data
    end

    # Read manager service status
    # Read manager service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_cminventory_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_cminventory_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/cm-inventory/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_cminventory_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read file contents
    # Read file contents
    # @param file_name Name of the file to read
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def read_file(file_name, opts = {})
      read_file_with_http_info(file_name, opts)
      return nil
    end

    # Read file contents
    # Read file contents
    # @param file_name Name of the file to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def read_file_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.read_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}/data".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read file properties
    # Read file properties
    # @param file_name Name of the file to retrieve information about
    # @param [Hash] opts the optional parameters
    # @return [FileProperties]
    def read_file_properties(file_name, opts = {})
      data, _status_code, _headers = read_file_properties_with_http_info(file_name, opts)
      return data
    end

    # Read file properties
    # Read file properties
    # @param file_name Name of the file to retrieve information about
    # @param [Hash] opts the optional parameters
    # @return [Array<(FileProperties, Fixnum, Hash)>] FileProperties data, response status code and response headers
    def read_file_properties_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_file_properties ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.read_file_properties"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FileProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_file_properties\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read file thumbprint
    # Read file thumbprint
    # @param file_name Name of the file for which thumbprint should be computed
    # @param [Hash] opts the optional parameters
    # @return [FileThumbprint]
    def read_file_thumbprint(file_name, opts = {})
      data, _status_code, _headers = read_file_thumbprint_with_http_info(file_name, opts)
      return data
    end

    # Read file thumbprint
    # Read file thumbprint
    # @param file_name Name of the file for which thumbprint should be computed
    # @param [Hash] opts the optional parameters
    # @return [Array<(FileThumbprint, Fixnum, Hash)>] FileThumbprint data, response status code and response headers
    def read_file_thumbprint_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_file_thumbprint ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.read_file_thumbprint"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}/thumbprint".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FileThumbprint')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_file_thumbprint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read liagent service properties
    # Read liagent service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_liagent_service(opts = {})
      data, _status_code, _headers = read_liagent_service_with_http_info(opts)
      return data
    end

    # Read liagent service properties
    # Read liagent service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_liagent_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_liagent_service ..."
      end
      # resource path
      local_var_path = "/node/services/liagent"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_liagent_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read liagent service status
    # Read liagent service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_liagent_service_status(opts = {})
      data, _status_code, _headers = read_liagent_service_status_with_http_info(opts)
      return data
    end

    # Read liagent service status
    # Read liagent service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_liagent_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_liagent_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/liagent/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_liagent_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX Management nodes global configuration.
    # Returns the NSX Management nodes global configuration. 
    # @param [Hash] opts the optional parameters
    # @return [ManagementConfig]
    def read_management_config(opts = {})
      data, _status_code, _headers = read_management_config_with_http_info(opts)
      return data
    end

    # Read NSX Management nodes global configuration.
    # Returns the NSX Management nodes global configuration. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ManagementConfig, Fixnum, Hash)>] ManagementConfig data, response status code and response headers
    def read_management_config_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_management_config ..."
      end
      # resource path
      local_var_path = "/configs/management"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ManagementConfig')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_management_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the NSX Manager's Network Interface Statistics
    # On the specified interface, returns the number of received (rx), transmitted (tx), and dropped packets; the number of bytes and errors received and transmitted on the interface; and the number of detected collisions. 
    # @param interface_id ID of interface to read
    # @param [Hash] opts the optional parameters
    # @return [NodeInterfaceStatisticsProperties]
    def read_network_interface_statistics(interface_id, opts = {})
      data, _status_code, _headers = read_network_interface_statistics_with_http_info(interface_id, opts)
      return data
    end

    # Read the NSX Manager&#39;s Network Interface Statistics
    # On the specified interface, returns the number of received (rx), transmitted (tx), and dropped packets; the number of bytes and errors received and transmitted on the interface; and the number of detected collisions. 
    # @param interface_id ID of interface to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeInterfaceStatisticsProperties, Fixnum, Hash)>] NodeInterfaceStatisticsProperties data, response status code and response headers
    def read_network_interface_statistics_with_http_info(interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_network_interface_statistics ..."
      end
      # verify the required parameter 'interface_id' is set
      if @api_client.config.client_side_validation && interface_id.nil?
        fail ArgumentError, "Missing the required parameter 'interface_id' when calling NsxComponentAdministrationApi.read_network_interface_statistics"
      end
      # resource path
      local_var_path = "/node/network/interfaces/{interface-id}/stats".sub('{' + 'interface-id' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInterfaceStatisticsProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_network_interface_statistics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read network configuration properties
    # Read network configuration properties
    # @param [Hash] opts the optional parameters
    # @return [NodeNetworkProperties]
    def read_network_properties(opts = {})
      data, _status_code, _headers = read_network_properties_with_http_info(opts)
      return data
    end

    # Read network configuration properties
    # Read network configuration properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNetworkProperties, Fixnum, Hash)>] NodeNetworkProperties data, response status code and response headers
    def read_network_properties_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_network_properties ..."
      end
      # resource path
      local_var_path = "/node/network"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNetworkProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_network_properties\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the NSX Manager's Network Interface
    # Returns detailed information about the specified interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network  mask, and the IP configuration method. 
    # @param interface_id ID of interface to read
    # @param [Hash] opts the optional parameters
    # @return [NodeNetworkInterfaceProperties]
    def read_node_interface(interface_id, opts = {})
      data, _status_code, _headers = read_node_interface_with_http_info(interface_id, opts)
      return data
    end

    # Read the NSX Manager&#39;s Network Interface
    # Returns detailed information about the specified interface. Interface information includes MTU, broadcast and host IP addresses, link and admin status, MAC address, network  mask, and the IP configuration method. 
    # @param interface_id ID of interface to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNetworkInterfaceProperties, Fixnum, Hash)>] NodeNetworkInterfaceProperties data, response status code and response headers
    def read_node_interface_with_http_info(interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_interface ..."
      end
      # verify the required parameter 'interface_id' is set
      if @api_client.config.client_side_validation && interface_id.nil?
        fail ArgumentError, "Missing the required parameter 'interface_id' when calling NsxComponentAdministrationApi.read_node_interface"
      end
      # resource path
      local_var_path = "/node/network/interfaces/{interface-id}".sub('{' + 'interface-id' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNetworkInterfaceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_interface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the NSX Manager's Name Servers
    # Returns the list of servers that the NSX Manager node uses to look up IP addresses associated with given domain names. 
    # @param [Hash] opts the optional parameters
    # @return [NodeNameServersProperties]
    def read_node_name_servers(opts = {})
      data, _status_code, _headers = read_node_name_servers_with_http_info(opts)
      return data
    end

    # Read the NSX Manager&#39;s Name Servers
    # Returns the list of servers that the NSX Manager node uses to look up IP addresses associated with given domain names. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNameServersProperties, Fixnum, Hash)>] NodeNameServersProperties data, response status code and response headers
    def read_node_name_servers_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_name_servers ..."
      end
      # resource path
      local_var_path = "/node/network/name-servers"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNameServersProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_name_servers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node network route
    # Returns detailed information about a specified route in the NSX Manager routing table. 
    # @param route_id ID of route to read
    # @param [Hash] opts the optional parameters
    # @return [NodeRouteProperties]
    def read_node_network_route(route_id, opts = {})
      data, _status_code, _headers = read_node_network_route_with_http_info(route_id, opts)
      return data
    end

    # Read node network route
    # Returns detailed information about a specified route in the NSX Manager routing table. 
    # @param route_id ID of route to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeRouteProperties, Fixnum, Hash)>] NodeRouteProperties data, response status code and response headers
    def read_node_network_route_with_http_info(route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_network_route ..."
      end
      # verify the required parameter 'route_id' is set
      if @api_client.config.client_side_validation && route_id.nil?
        fail ArgumentError, "Missing the required parameter 'route_id' when calling NsxComponentAdministrationApi.read_node_network_route"
      end
      # resource path
      local_var_path = "/node/network/routes/{route-id}".sub('{' + 'route-id' + '}', route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeRouteProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_network_route\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node process
    # Returns information for a specified process ID (pid).
    # @param process_id ID of process to read
    # @param [Hash] opts the optional parameters
    # @return [NodeProcessProperties]
    def read_node_process(process_id, opts = {})
      data, _status_code, _headers = read_node_process_with_http_info(process_id, opts)
      return data
    end

    # Read node process
    # Returns information for a specified process ID (pid).
    # @param process_id ID of process to read
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProcessProperties, Fixnum, Hash)>] NodeProcessProperties data, response status code and response headers
    def read_node_process_with_http_info(process_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_process ..."
      end
      # verify the required parameter 'process_id' is set
      if @api_client.config.client_side_validation && process_id.nil?
        fail ArgumentError, "Missing the required parameter 'process_id' when calling NsxComponentAdministrationApi.read_node_process"
      end
      # resource path
      local_var_path = "/node/processes/{process-id}".sub('{' + 'process-id' + '}', process_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProcessProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_process\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node properties
    # Returns information about the NSX Manager appliance. Information includes release number, time zone, system time, kernel version, message of the day (motd), and host name. 
    # @param [Hash] opts the optional parameters
    # @return [NodeProperties]
    def read_node_properties(opts = {})
      data, _status_code, _headers = read_node_properties_with_http_info(opts)
      return data
    end

    # Read node properties
    # Returns information about the NSX Manager appliance. Information includes release number, time zone, system time, kernel version, message of the day (motd), and host name. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProperties, Fixnum, Hash)>] NodeProperties data, response status code and response headers
    def read_node_properties_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_properties ..."
      end
      # resource path
      local_var_path = "/node"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_properties\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read the NSX Manager's Search Domains
    # Returns the domain list that the NSX Manager node uses to complete unqualified host names. When a host name does not include a fully qualified domain name (FQDN), the NSX Management node appends the first-listed domain name to the host name before the host name is looked up. The NSX Management node continues this for each entry in the domain list until it finds a match. 
    # @param [Hash] opts the optional parameters
    # @return [NodeSearchDomainsProperties]
    def read_node_search_domains(opts = {})
      data, _status_code, _headers = read_node_search_domains_with_http_info(opts)
      return data
    end

    # Read the NSX Manager&#39;s Search Domains
    # Returns the domain list that the NSX Manager node uses to complete unqualified host names. When a host name does not include a fully qualified domain name (FQDN), the NSX Management node appends the first-listed domain name to the host name before the host name is looked up. The NSX Management node continues this for each entry in the domain list until it finds a match. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSearchDomainsProperties, Fixnum, Hash)>] NodeSearchDomainsProperties data, response status code and response headers
    def read_node_search_domains_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_search_domains ..."
      end
      # resource path
      local_var_path = "/node/network/search-domains"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSearchDomainsProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_search_domains\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node support bundle
    # Read node support bundle
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :all Include all files (default to false)
    # @return [nil]
    def read_node_support_bundle(opts = {})
      read_node_support_bundle_with_http_info(opts)
      return nil
    end

    # Read node support bundle
    # Read node support bundle
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :all Include all files
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def read_node_support_bundle_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_support_bundle ..."
      end
      # resource path
      local_var_path = "/node/support-bundle"

      # query parameters
      query_params = {}
      query_params[:'all'] = opts[:'all'] if !opts[:'all'].nil?

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_support_bundle\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node syslog exporter
    # Returns information about a specific syslog collection point.
    # @param exporter_name Name of syslog exporter
    # @param [Hash] opts the optional parameters
    # @return [NodeSyslogExporterProperties]
    def read_node_syslog_exporter(exporter_name, opts = {})
      data, _status_code, _headers = read_node_syslog_exporter_with_http_info(exporter_name, opts)
      return data
    end

    # Read node syslog exporter
    # Returns information about a specific syslog collection point.
    # @param exporter_name Name of syslog exporter
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSyslogExporterProperties, Fixnum, Hash)>] NodeSyslogExporterProperties data, response status code and response headers
    def read_node_syslog_exporter_with_http_info(exporter_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_syslog_exporter ..."
      end
      # verify the required parameter 'exporter_name' is set
      if @api_client.config.client_side_validation && exporter_name.nil?
        fail ArgumentError, "Missing the required parameter 'exporter_name' when calling NsxComponentAdministrationApi.read_node_syslog_exporter"
      end
      # resource path
      local_var_path = "/node/services/syslog/exporters/{exporter-name}".sub('{' + 'exporter-name' + '}', exporter_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSyslogExporterProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_syslog_exporter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node user
    # Returns information about a specified user who is configued to log in to the NSX Manager appliance 
    # @param userid User id of the user
    # @param [Hash] opts the optional parameters
    # @return [NodeUserProperties]
    def read_node_user(userid, opts = {})
      data, _status_code, _headers = read_node_user_with_http_info(userid, opts)
      return data
    end

    # Read node user
    # Returns information about a specified user who is configued to log in to the NSX Manager appliance 
    # @param userid User id of the user
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeUserProperties, Fixnum, Hash)>] NodeUserProperties data, response status code and response headers
    def read_node_user_with_http_info(userid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_user ..."
      end
      # verify the required parameter 'userid' is set
      if @api_client.config.client_side_validation && userid.nil?
        fail ArgumentError, "Missing the required parameter 'userid' when calling NsxComponentAdministrationApi.read_node_user"
      end
      # resource path
      local_var_path = "/node/users/{userid}".sub('{' + 'userid' + '}', userid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeUserProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_user\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read node version
    # Read node version
    # @param [Hash] opts the optional parameters
    # @return [NodeVersion]
    def read_node_version(opts = {})
      data, _status_code, _headers = read_node_version_with_http_info(opts)
      return data
    end

    # Read node version
    # Read node version
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeVersion, Fixnum, Hash)>] NodeVersion data, response status code and response headers
    def read_node_version_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_node_version ..."
      end
      # resource path
      local_var_path = "/node/version"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeVersion')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_node_version\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX Message Bus service properties
    # Read NSX Message Bus service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_nsx_message_bus_service(opts = {})
      data, _status_code, _headers = read_nsx_message_bus_service_with_http_info(opts)
      return data
    end

    # Read NSX Message Bus service properties
    # Read NSX Message Bus service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_nsx_message_bus_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_message_bus_service ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-message-bus"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_message_bus_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX Message Bus service status
    # Read NSX Message Bus service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_nsx_message_bus_service_status(opts = {})
      data, _status_code, _headers = read_nsx_message_bus_service_status_with_http_info(opts)
      return data
    end

    # Read NSX Message Bus service status
    # Read NSX Message Bus service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_nsx_message_bus_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_message_bus_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-message-bus/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_message_bus_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read ui service properties
    # Read ui service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_nsx_ui_service_service(opts = {})
      data, _status_code, _headers = read_nsx_ui_service_service_with_http_info(opts)
      return data
    end

    # Read ui service properties
    # Read ui service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_nsx_ui_service_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_ui_service_service ..."
      end
      # resource path
      local_var_path = "/node/services/ui-service"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_ui_service_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read ui service status
    # Read ui service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_nsx_ui_service_service_status(opts = {})
      data, _status_code, _headers = read_nsx_ui_service_service_status_with_http_info(opts)
      return data
    end

    # Read ui service status
    # Read ui service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_nsx_ui_service_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_ui_service_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/ui-service/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_ui_service_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX upgrade Agent service properties
    # Read NSX upgrade Agent service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_nsx_upgrade_agent_service(opts = {})
      data, _status_code, _headers = read_nsx_upgrade_agent_service_with_http_info(opts)
      return data
    end

    # Read NSX upgrade Agent service properties
    # Read NSX upgrade Agent service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_nsx_upgrade_agent_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_upgrade_agent_service ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-upgrade-agent"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_upgrade_agent_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Nsx upgrade agent service status
    # Read Nsx upgrade agent service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_nsx_upgrade_agent_service_status(opts = {})
      data, _status_code, _headers = read_nsx_upgrade_agent_service_status_with_http_info(opts)
      return data
    end

    # Read Nsx upgrade agent service status
    # Read Nsx upgrade agent service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_nsx_upgrade_agent_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_nsx_upgrade_agent_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/nsx-upgrade-agent/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_nsx_upgrade_agent_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NTP service properties
    # Read NTP service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeNtpServiceProperties]
    def read_ntp_service(opts = {})
      data, _status_code, _headers = read_ntp_service_with_http_info(opts)
      return data
    end

    # Read NTP service properties
    # Read NTP service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNtpServiceProperties, Fixnum, Hash)>] NodeNtpServiceProperties data, response status code and response headers
    def read_ntp_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_ntp_service ..."
      end
      # resource path
      local_var_path = "/node/services/ntp"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNtpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_ntp_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NTP service status
    # Read NTP service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_ntp_service_status(opts = {})
      data, _status_code, _headers = read_ntp_service_status_with_http_info(opts)
      return data
    end

    # Read NTP service status
    # Read NTP service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_ntp_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_ntp_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/ntp/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_ntp_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Telemetry service properties
    # Read Telemetry service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_phonehome_coordinator_service(opts = {})
      data, _status_code, _headers = read_phonehome_coordinator_service_with_http_info(opts)
      return data
    end

    # Read Telemetry service properties
    # Read Telemetry service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_phonehome_coordinator_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_phonehome_coordinator_service ..."
      end
      # resource path
      local_var_path = "/node/services/telemetry"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_phonehome_coordinator_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Telemetry service status
    # Read Telemetry service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_phonehome_coordinator_service_status(opts = {})
      data, _status_code, _headers = read_phonehome_coordinator_service_status_with_http_info(opts)
      return data
    end

    # Read Telemetry service status
    # Read Telemetry service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_phonehome_coordinator_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_phonehome_coordinator_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/telemetry/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_phonehome_coordinator_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read service properties
    # Read service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeProtonServiceProperties]
    def read_proton_service(opts = {})
      data, _status_code, _headers = read_proton_service_with_http_info(opts)
      return data
    end

    # Read service properties
    # Read service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProtonServiceProperties, Fixnum, Hash)>] NodeProtonServiceProperties data, response status code and response headers
    def read_proton_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_proton_service ..."
      end
      # resource path
      local_var_path = "/node/services/manager"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProtonServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_proton_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read service status
    # Read service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_proton_service_status(opts = {})
      data, _status_code, _headers = read_proton_service_status_with_http_info(opts)
      return data
    end

    # Read service status
    # Read service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_proton_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_proton_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/manager/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_proton_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read http service properties
    # Read http service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeHttpServiceProperties]
    def read_proxy_service(opts = {})
      data, _status_code, _headers = read_proxy_service_with_http_info(opts)
      return data
    end

    # Read http service properties
    # Read http service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeHttpServiceProperties, Fixnum, Hash)>] NodeHttpServiceProperties data, response status code and response headers
    def read_proxy_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_proxy_service ..."
      end
      # resource path
      local_var_path = "/node/services/http"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeHttpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_proxy_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read http service status
    # Read http service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_proxy_service_status(opts = {})
      data, _status_code, _headers = read_proxy_service_status_with_http_info(opts)
      return data
    end

    # Read http service status
    # Read http service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_proxy_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_proxy_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/http/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_proxy_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Rabbit MQ service properties
    # Read Rabbit MQ service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_rabbit_mq_service(opts = {})
      data, _status_code, _headers = read_rabbit_mq_service_with_http_info(opts)
      return data
    end

    # Read Rabbit MQ service properties
    # Read Rabbit MQ service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_rabbit_mq_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_rabbit_mq_service ..."
      end
      # resource path
      local_var_path = "/node/services/mgmt-plane-bus"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_rabbit_mq_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read Rabbit MQ service status
    # Read Rabbit MQ service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_rabbit_mq_service_status(opts = {})
      data, _status_code, _headers = read_rabbit_mq_service_status_with_http_info(opts)
      return data
    end

    # Read Rabbit MQ service status
    # Read Rabbit MQ service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_rabbit_mq_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_rabbit_mq_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/mgmt-plane-bus/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_rabbit_mq_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX install-upgrade service properties
    # Read NSX install-upgrade service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeInstallUpgradeServiceProperties]
    def read_repository_service(opts = {})
      data, _status_code, _headers = read_repository_service_with_http_info(opts)
      return data
    end

    # Read NSX install-upgrade service properties
    # Read NSX install-upgrade service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeInstallUpgradeServiceProperties, Fixnum, Hash)>] NodeInstallUpgradeServiceProperties data, response status code and response headers
    def read_repository_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_repository_service ..."
      end
      # resource path
      local_var_path = "/node/services/install-upgrade"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInstallUpgradeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_repository_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX install-upgrade service status
    # Read NSX install-upgrade service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_repository_service_status(opts = {})
      data, _status_code, _headers = read_repository_service_status_with_http_info(opts)
      return data
    end

    # Read NSX install-upgrade service status
    # Read NSX install-upgrade service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_repository_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_repository_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/install-upgrade/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_repository_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX Search service properties
    # Read NSX Search service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_search_service(opts = {})
      data, _status_code, _headers = read_search_service_with_http_info(opts)
      return data
    end

    # Read NSX Search service properties
    # Read NSX Search service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_search_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_search_service ..."
      end
      # resource path
      local_var_path = "/node/services/search"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_search_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read NSX Search service status
    # Read NSX Search service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_search_service_status(opts = {})
      data, _status_code, _headers = read_search_service_status_with_http_info(opts)
      return data
    end

    # Read NSX Search service status
    # Read NSX Search service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_search_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_search_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/search/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_search_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read SNMP service properties
    # Read SNMP service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeSnmpServiceProperties]
    def read_snmp_service(opts = {})
      data, _status_code, _headers = read_snmp_service_with_http_info(opts)
      return data
    end

    # Read SNMP service properties
    # Read SNMP service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSnmpServiceProperties, Fixnum, Hash)>] NodeSnmpServiceProperties data, response status code and response headers
    def read_snmp_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_snmp_service ..."
      end
      # resource path
      local_var_path = "/node/services/snmp"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSnmpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_snmp_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read SNMP service status
    # Read SNMP service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_snmp_service_status(opts = {})
      data, _status_code, _headers = read_snmp_service_status_with_http_info(opts)
      return data
    end

    # Read SNMP service status
    # Read SNMP service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_snmp_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_snmp_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/snmp/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_snmp_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read ssh service properties
    # Read ssh service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeSshServiceProperties]
    def read_ssh_service(opts = {})
      data, _status_code, _headers = read_ssh_service_with_http_info(opts)
      return data
    end

    # Read ssh service properties
    # Read ssh service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSshServiceProperties, Fixnum, Hash)>] NodeSshServiceProperties data, response status code and response headers
    def read_ssh_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_ssh_service ..."
      end
      # resource path
      local_var_path = "/node/services/ssh"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSshServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_ssh_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read ssh service status
    # Read ssh service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_ssh_service_status(opts = {})
      data, _status_code, _headers = read_ssh_service_status_with_http_info(opts)
      return data
    end

    # Read ssh service status
    # Read ssh service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_ssh_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_ssh_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/ssh/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_ssh_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read syslog service properties
    # Read syslog service properties
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceProperties]
    def read_syslog_service(opts = {})
      data, _status_code, _headers = read_syslog_service_with_http_info(opts)
      return data
    end

    # Read syslog service properties
    # Read syslog service properties
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceProperties, Fixnum, Hash)>] NodeServiceProperties data, response status code and response headers
    def read_syslog_service_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_syslog_service ..."
      end
      # resource path
      local_var_path = "/node/services/syslog"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_syslog_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Read syslog service status
    # Read syslog service status
    # @param [Hash] opts the optional parameters
    # @return [NodeServiceStatusProperties]
    def read_syslog_service_status(opts = {})
      data, _status_code, _headers = read_syslog_service_status_with_http_info(opts)
      return data
    end

    # Read syslog service status
    # Read syslog service status
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeServiceStatusProperties, Fixnum, Hash)>] NodeServiceStatusProperties data, response status code and response headers
    def read_syslog_service_status_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.read_syslog_service_status ..."
      end
      # resource path
      local_var_path = "/node/services/syslog/status"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeServiceStatusProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#read_syslog_service_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Register a name-certificate combination.
    # Associates a principal's name with a certificate that is used to authenticate. 
    # @param principal_identity 
    # @param [Hash] opts the optional parameters
    # @return [PrincipalIdentity]
    def register_principal_identity(principal_identity, opts = {})
      data, _status_code, _headers = register_principal_identity_with_http_info(principal_identity, opts)
      return data
    end

    # Register a name-certificate combination.
    # Associates a principal&#39;s name with a certificate that is used to authenticate. 
    # @param principal_identity 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PrincipalIdentity, Fixnum, Hash)>] PrincipalIdentity data, response status code and response headers
    def register_principal_identity_with_http_info(principal_identity, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.register_principal_identity ..."
      end
      # verify the required parameter 'principal_identity' is set
      if @api_client.config.client_side_validation && principal_identity.nil?
        fail ArgumentError, "Missing the required parameter 'principal_identity' when calling NsxComponentAdministrationApi.register_principal_identity"
      end
      # resource path
      local_var_path = "/trust-management/principal-identities"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(principal_identity)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PrincipalIdentity')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#register_principal_identity\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Request one-time backup
    # Request one-time backup. The backup will be uploaded using the same server configuration as for automatic backup. 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def request_onetime_backup_backup_to_remote(opts = {})
      request_onetime_backup_backup_to_remote_with_http_info(opts)
      return nil
    end

    # Request one-time backup
    # Request one-time backup. The backup will be uploaded using the same server configuration as for automatic backup. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def request_onetime_backup_backup_to_remote_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.request_onetime_backup_backup_to_remote ..."
      end
      # resource path
      local_var_path = "/cluster?action=backup_to_remote"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#request_onetime_backup_backup_to_remote\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Request one-time inventory summary.
    # Request one-time inventory summary. The backup will be uploaded using the same server configuration as for an automatic backup. 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def request_onetime_inventory_summary_summarize_inventory_to_remote(opts = {})
      request_onetime_inventory_summary_summarize_inventory_to_remote_with_http_info(opts)
      return nil
    end

    # Request one-time inventory summary.
    # Request one-time inventory summary. The backup will be uploaded using the same server configuration as for an automatic backup. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def request_onetime_inventory_summary_summarize_inventory_to_remote_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.request_onetime_inventory_summary_summarize_inventory_to_remote ..."
      end
      # resource path
      local_var_path = "/cluster?action=summarize_inventory_to_remote"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#request_onetime_inventory_summary_summarize_inventory_to_remote\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Reset the logging levels to default values
    # Reset the logging levels to default values
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def reset_proton_service_logging_level_action_reset_manager_logging_levels(opts = {})
      reset_proton_service_logging_level_action_reset_manager_logging_levels_with_http_info(opts)
      return nil
    end

    # Reset the logging levels to default values
    # Reset the logging levels to default values
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def reset_proton_service_logging_level_action_reset_manager_logging_levels_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.reset_proton_service_logging_level_action_reset_manager_logging_levels ..."
      end
      # resource path
      local_var_path = "/node/services/manager?action=reset-manager-logging-levels"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#reset_proton_service_logging_level_action_reset_manager_logging_levels\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart or shutdown node
    # Restarts or shuts down the NSX Manager appliance.
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def restart_or_shutdown_node_restart(opts = {})
      restart_or_shutdown_node_restart_with_http_info(opts)
      return nil
    end

    # Restart or shutdown node
    # Restarts or shuts down the NSX Manager appliance.
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def restart_or_shutdown_node_restart_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.restart_or_shutdown_node_restart ..."
      end
      # resource path
      local_var_path = "/node?action=restart"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#restart_or_shutdown_node_restart\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Restart or shutdown node
    # Restarts or shuts down the NSX Manager appliance.
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def restart_or_shutdown_node_shutdown(opts = {})
      restart_or_shutdown_node_shutdown_with_http_info(opts)
      return nil
    end

    # Restart or shutdown node
    # Restarts or shuts down the NSX Manager appliance.
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def restart_or_shutdown_node_shutdown_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.restart_or_shutdown_node_shutdown ..."
      end
      # resource path
      local_var_path = "/node?action=shutdown"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#restart_or_shutdown_node_shutdown\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Retry any failed restore operation
    # Retry any currently in-progress, failed restore operation. Only the last step of the multi-step restore operation would have failed,and only that step is retried. This operation is only valid when a GET cluster/restore/status returns a status with value FAILED. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def retry_cluster_restore_retry(opts = {})
      data, _status_code, _headers = retry_cluster_restore_retry_with_http_info(opts)
      return data
    end

    # Retry any failed restore operation
    # Retry any currently in-progress, failed restore operation. Only the last step of the multi-step restore operation would have failed,and only that step is retried. This operation is only valid when a GET cluster/restore/status returns a status with value FAILED. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def retry_cluster_restore_retry_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.retry_cluster_restore_retry ..."
      end
      # resource path
      local_var_path = "/cluster/restore?action=retry"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#retry_cluster_restore_retry\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Self-Sign the CSR
    # Self-signs the previously generated CSR. This action is similar to the import certificate action, but instead of using a public certificate signed by a CA, the self_sign POST action uses a certificate that is signed with NSX's own private key. 
    # @param csr_id CSR this certificate is associated with
    # @param days_valid Number of days the certificate will be valid, default 10 years
    # @param [Hash] opts the optional parameters
    # @return [Certificate]
    def self_sign_certificate_self_sign(csr_id, days_valid, opts = {})
      data, _status_code, _headers = self_sign_certificate_self_sign_with_http_info(csr_id, days_valid, opts)
      return data
    end

    # Self-Sign the CSR
    # Self-signs the previously generated CSR. This action is similar to the import certificate action, but instead of using a public certificate signed by a CA, the self_sign POST action uses a certificate that is signed with NSX&#39;s own private key. 
    # @param csr_id CSR this certificate is associated with
    # @param days_valid Number of days the certificate will be valid, default 10 years
    # @param [Hash] opts the optional parameters
    # @return [Array<(Certificate, Fixnum, Hash)>] Certificate data, response status code and response headers
    def self_sign_certificate_self_sign_with_http_info(csr_id, days_valid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.self_sign_certificate_self_sign ..."
      end
      # verify the required parameter 'csr_id' is set
      if @api_client.config.client_side_validation && csr_id.nil?
        fail ArgumentError, "Missing the required parameter 'csr_id' when calling NsxComponentAdministrationApi.self_sign_certificate_self_sign"
      end
      # verify the required parameter 'days_valid' is set
      if @api_client.config.client_side_validation && days_valid.nil?
        fail ArgumentError, "Missing the required parameter 'days_valid' when calling NsxComponentAdministrationApi.self_sign_certificate_self_sign"
      end
      if @api_client.config.client_side_validation && days_valid > 10000
        fail ArgumentError, 'invalid value for "days_valid" when calling NsxComponentAdministrationApi.self_sign_certificate_self_sign, must be smaller than or equal to 10000.'
      end

      if @api_client.config.client_side_validation && days_valid < 1
        fail ArgumentError, 'invalid value for "days_valid" when calling NsxComponentAdministrationApi.self_sign_certificate_self_sign, must be greater than or equal to 1.'
      end

      # resource path
      local_var_path = "/trust-management/csrs/{csr-id}?action=self_sign".sub('{' + 'csr-id' + '}', csr_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'days_valid'] = days_valid

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Certificate')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#self_sign_certificate_self_sign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Enable or disable  Mandatory Access Control
    # Enable or disable  Mandatory Access Control
    # @param mandatory_access_control_properties 
    # @param [Hash] opts the optional parameters
    # @return [MandatoryAccessControlProperties]
    def set_node_mandatory_access_control(mandatory_access_control_properties, opts = {})
      data, _status_code, _headers = set_node_mandatory_access_control_with_http_info(mandatory_access_control_properties, opts)
      return data
    end

    # Enable or disable  Mandatory Access Control
    # Enable or disable  Mandatory Access Control
    # @param mandatory_access_control_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(MandatoryAccessControlProperties, Fixnum, Hash)>] MandatoryAccessControlProperties data, response status code and response headers
    def set_node_mandatory_access_control_with_http_info(mandatory_access_control_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.set_node_mandatory_access_control ..."
      end
      # verify the required parameter 'mandatory_access_control_properties' is set
      if @api_client.config.client_side_validation && mandatory_access_control_properties.nil?
        fail ArgumentError, "Missing the required parameter 'mandatory_access_control_properties' when calling NsxComponentAdministrationApi.set_node_mandatory_access_control"
      end
      # resource path
      local_var_path = "/node/hardening-policy/mandatory-access-control"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(mandatory_access_control_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'MandatoryAccessControlProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#set_node_mandatory_access_control\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Set RabbitMQ management port
    # Set RabbitMQ management port
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def set_rabbit_mq_management_port(opts = {})
      set_rabbit_mq_management_port_with_http_info(opts)
      return nil
    end

    # Set RabbitMQ management port
    # Set RabbitMQ management port
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def set_rabbit_mq_management_port_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.set_rabbit_mq_management_port ..."
      end
      # resource path
      local_var_path = "/node/rabbitmq-management-port"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#set_rabbit_mq_management_port\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Suspend any running restore operation
    # Suspend any currently running restore operation. The restore operation is made up of a number of steps. When this call is issued, any currently running step is allowed to finish (successfully or with errors), and the next step (and therefore the entire restore operation) is suspended until a subsequent resume or cancel call is issued. This operation is only valid when a GET cluster/restore/status returns a status with value RUNNING. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [ClusterRestoreStatus]
    def suspend_cluster_restore_suspend(opts = {})
      data, _status_code, _headers = suspend_cluster_restore_suspend_with_http_info(opts)
      return data
    end

    # Suspend any running restore operation
    # Suspend any currently running restore operation. The restore operation is made up of a number of steps. When this call is issued, any currently running step is allowed to finish (successfully or with errors), and the next step (and therefore the entire restore operation) is suspended until a subsequent resume or cancel call is issued. This operation is only valid when a GET cluster/restore/status returns a status with value RUNNING. Otherwise, a 409 response is returned. 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ClusterRestoreStatus, Fixnum, Hash)>] ClusterRestoreStatus data, response status code and response headers
    def suspend_cluster_restore_suspend_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.suspend_cluster_restore_suspend ..."
      end
      # resource path
      local_var_path = "/cluster/restore?action=suspend"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ClusterRestoreStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#suspend_cluster_restore_suspend\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update AAA provider vIDM properties
    # Update AAA provider vIDM properties
    # @param node_auth_provider_vidm_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeAuthProviderVidmProperties]
    def update_auth_provider_vidm(node_auth_provider_vidm_properties, opts = {})
      data, _status_code, _headers = update_auth_provider_vidm_with_http_info(node_auth_provider_vidm_properties, opts)
      return data
    end

    # Update AAA provider vIDM properties
    # Update AAA provider vIDM properties
    # @param node_auth_provider_vidm_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeAuthProviderVidmProperties, Fixnum, Hash)>] NodeAuthProviderVidmProperties data, response status code and response headers
    def update_auth_provider_vidm_with_http_info(node_auth_provider_vidm_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_auth_provider_vidm ..."
      end
      # verify the required parameter 'node_auth_provider_vidm_properties' is set
      if @api_client.config.client_side_validation && node_auth_provider_vidm_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_auth_provider_vidm_properties' when calling NsxComponentAdministrationApi.update_auth_provider_vidm"
      end
      # resource path
      local_var_path = "/node/aaa/providers/vidm"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_auth_provider_vidm_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeAuthProviderVidmProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_auth_provider_vidm\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update CRL for the Given CRL ID
    # Updates an existing CRL.
    # @param crl_id ID of CRL to update
    # @param crl 
    # @param [Hash] opts the optional parameters
    # @return [Crl]
    def update_crl(crl_id, crl, opts = {})
      data, _status_code, _headers = update_crl_with_http_info(crl_id, crl, opts)
      return data
    end

    # Update CRL for the Given CRL ID
    # Updates an existing CRL.
    # @param crl_id ID of CRL to update
    # @param crl 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Crl, Fixnum, Hash)>] Crl data, response status code and response headers
    def update_crl_with_http_info(crl_id, crl, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_crl ..."
      end
      # verify the required parameter 'crl_id' is set
      if @api_client.config.client_side_validation && crl_id.nil?
        fail ArgumentError, "Missing the required parameter 'crl_id' when calling NsxComponentAdministrationApi.update_crl"
      end
      # verify the required parameter 'crl' is set
      if @api_client.config.client_side_validation && crl.nil?
        fail ArgumentError, "Missing the required parameter 'crl' when calling NsxComponentAdministrationApi.update_crl"
      end
      # resource path
      local_var_path = "/trust-management/crls/{crl-id}".sub('{' + 'crl-id' + '}', crl_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(crl)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Crl')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_crl\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Replace file contents
    # Replace file contents
    # @param file_name Name of the file to replace
    # @param [Hash] opts the optional parameters
    # @return [FileProperties]
    def update_file(file_name, opts = {})
      data, _status_code, _headers = update_file_with_http_info(file_name, opts)
      return data
    end

    # Replace file contents
    # Replace file contents
    # @param file_name Name of the file to replace
    # @param [Hash] opts the optional parameters
    # @return [Array<(FileProperties, Fixnum, Hash)>] FileProperties data, response status code and response headers
    def update_file_with_http_info(file_name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_file ..."
      end
      # verify the required parameter 'file_name' is set
      if @api_client.config.client_side_validation && file_name.nil?
        fail ArgumentError, "Missing the required parameter 'file_name' when calling NsxComponentAdministrationApi.update_file"
      end
      # resource path
      local_var_path = "/node/file-store/{file-name}/data".sub('{' + 'file-name' + '}', file_name.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/octet-stream'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'FileProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update NSX Management nodes global configuration
    # Modifies the NSX Management nodes global configuration.
    # @param management_config 
    # @param [Hash] opts the optional parameters
    # @return [ManagementConfig]
    def update_management_config(management_config, opts = {})
      data, _status_code, _headers = update_management_config_with_http_info(management_config, opts)
      return data
    end

    # Update NSX Management nodes global configuration
    # Modifies the NSX Management nodes global configuration.
    # @param management_config 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ManagementConfig, Fixnum, Hash)>] ManagementConfig data, response status code and response headers
    def update_management_config_with_http_info(management_config, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_management_config ..."
      end
      # verify the required parameter 'management_config' is set
      if @api_client.config.client_side_validation && management_config.nil?
        fail ArgumentError, "Missing the required parameter 'management_config' when calling NsxComponentAdministrationApi.update_management_config"
      end
      # resource path
      local_var_path = "/configs/management"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(management_config)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ManagementConfig')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_management_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the NSX Manager's Network Interface
    # Updates the specified interface properties. You cannot change the properties <code>ip_configuration</code>, <code>ip_addresses</code>, or <code>plane</code>. NSX Manager must have a static IP address. You must use NSX CLI to configure a controller or an edge node. 
    # @param interface_id ID of interface to update
    # @param node_network_interface_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeNetworkInterfaceProperties]
    def update_node_interface(interface_id, node_network_interface_properties, opts = {})
      data, _status_code, _headers = update_node_interface_with_http_info(interface_id, node_network_interface_properties, opts)
      return data
    end

    # Update the NSX Manager&#39;s Network Interface
    # Updates the specified interface properties. You cannot change the properties &lt;code&gt;ip_configuration&lt;/code&gt;, &lt;code&gt;ip_addresses&lt;/code&gt;, or &lt;code&gt;plane&lt;/code&gt;. NSX Manager must have a static IP address. You must use NSX CLI to configure a controller or an edge node. 
    # @param interface_id ID of interface to update
    # @param node_network_interface_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNetworkInterfaceProperties, Fixnum, Hash)>] NodeNetworkInterfaceProperties data, response status code and response headers
    def update_node_interface_with_http_info(interface_id, node_network_interface_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_node_interface ..."
      end
      # verify the required parameter 'interface_id' is set
      if @api_client.config.client_side_validation && interface_id.nil?
        fail ArgumentError, "Missing the required parameter 'interface_id' when calling NsxComponentAdministrationApi.update_node_interface"
      end
      # verify the required parameter 'node_network_interface_properties' is set
      if @api_client.config.client_side_validation && node_network_interface_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_network_interface_properties' when calling NsxComponentAdministrationApi.update_node_interface"
      end
      # resource path
      local_var_path = "/node/network/interfaces/{interface-id}".sub('{' + 'interface-id' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_network_interface_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNetworkInterfaceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_node_interface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the NSX Manager's Name Servers
    # Modifies the list of servers that the NSX Manager node uses to look up IP addresses associated with given domain names. If DHCP is configured, this method returns a 409 CONFLICT error, because DHCP manages the list of name servers. 
    # @param node_name_servers_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeNameServersProperties]
    def update_node_name_servers(node_name_servers_properties, opts = {})
      data, _status_code, _headers = update_node_name_servers_with_http_info(node_name_servers_properties, opts)
      return data
    end

    # Update the NSX Manager&#39;s Name Servers
    # Modifies the list of servers that the NSX Manager node uses to look up IP addresses associated with given domain names. If DHCP is configured, this method returns a 409 CONFLICT error, because DHCP manages the list of name servers. 
    # @param node_name_servers_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNameServersProperties, Fixnum, Hash)>] NodeNameServersProperties data, response status code and response headers
    def update_node_name_servers_with_http_info(node_name_servers_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_node_name_servers ..."
      end
      # verify the required parameter 'node_name_servers_properties' is set
      if @api_client.config.client_side_validation && node_name_servers_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_name_servers_properties' when calling NsxComponentAdministrationApi.update_node_name_servers"
      end
      # resource path
      local_var_path = "/node/network/name-servers"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_name_servers_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNameServersProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_node_name_servers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update node properties
    # Modifies NSX Manager appliance properties. Modifiable properties include the timezone, message of the day (motd), and hostname. The NSX Manager node_version, system_time, and kernel_version are read only and cannot be modified with this method. 
    # @param node_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeProperties]
    def update_node_properties(node_properties, opts = {})
      data, _status_code, _headers = update_node_properties_with_http_info(node_properties, opts)
      return data
    end

    # Update node properties
    # Modifies NSX Manager appliance properties. Modifiable properties include the timezone, message of the day (motd), and hostname. The NSX Manager node_version, system_time, and kernel_version are read only and cannot be modified with this method. 
    # @param node_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProperties, Fixnum, Hash)>] NodeProperties data, response status code and response headers
    def update_node_properties_with_http_info(node_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_node_properties ..."
      end
      # verify the required parameter 'node_properties' is set
      if @api_client.config.client_side_validation && node_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_properties' when calling NsxComponentAdministrationApi.update_node_properties"
      end
      # resource path
      local_var_path = "/node"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_node_properties\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the NSX Manager's Search Domains
    # Modifies the list of domain names that the NSX Manager node uses to complete unqualified host names. If DHCP is configured, this method returns a 409 CONFLICT error, because DHCP manages the list of name servers. 
    # @param node_search_domains_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeSearchDomainsProperties]
    def update_node_search_domains(node_search_domains_properties, opts = {})
      data, _status_code, _headers = update_node_search_domains_with_http_info(node_search_domains_properties, opts)
      return data
    end

    # Update the NSX Manager&#39;s Search Domains
    # Modifies the list of domain names that the NSX Manager node uses to complete unqualified host names. If DHCP is configured, this method returns a 409 CONFLICT error, because DHCP manages the list of name servers. 
    # @param node_search_domains_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSearchDomainsProperties, Fixnum, Hash)>] NodeSearchDomainsProperties data, response status code and response headers
    def update_node_search_domains_with_http_info(node_search_domains_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_node_search_domains ..."
      end
      # verify the required parameter 'node_search_domains_properties' is set
      if @api_client.config.client_side_validation && node_search_domains_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_search_domains_properties' when calling NsxComponentAdministrationApi.update_node_search_domains"
      end
      # resource path
      local_var_path = "/node/network/search-domains"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_search_domains_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSearchDomainsProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_node_search_domains\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update node user
    # Updates attributes of an existing NSX Manager appliance user. This method cannot be used to add a new user. Modifiable attributes include the username, full name of the user, and password. If you specify a password in a PUT request, it is not returned in the response. Nor is it returned in a GET request. 
    # @param userid User id of the user
    # @param node_user_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeUserProperties]
    def update_node_user(userid, node_user_properties, opts = {})
      data, _status_code, _headers = update_node_user_with_http_info(userid, node_user_properties, opts)
      return data
    end

    # Update node user
    # Updates attributes of an existing NSX Manager appliance user. This method cannot be used to add a new user. Modifiable attributes include the username, full name of the user, and password. If you specify a password in a PUT request, it is not returned in the response. Nor is it returned in a GET request. 
    # @param userid User id of the user
    # @param node_user_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeUserProperties, Fixnum, Hash)>] NodeUserProperties data, response status code and response headers
    def update_node_user_with_http_info(userid, node_user_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_node_user ..."
      end
      # verify the required parameter 'userid' is set
      if @api_client.config.client_side_validation && userid.nil?
        fail ArgumentError, "Missing the required parameter 'userid' when calling NsxComponentAdministrationApi.update_node_user"
      end
      # verify the required parameter 'node_user_properties' is set
      if @api_client.config.client_side_validation && node_user_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_user_properties' when calling NsxComponentAdministrationApi.update_node_user"
      end
      # resource path
      local_var_path = "/node/users/{userid}".sub('{' + 'userid' + '}', userid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_user_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeUserProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_node_user\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update NTP service properties
    # Update NTP service properties
    # @param node_ntp_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeNtpServiceProperties]
    def update_ntp_service(node_ntp_service_properties, opts = {})
      data, _status_code, _headers = update_ntp_service_with_http_info(node_ntp_service_properties, opts)
      return data
    end

    # Update NTP service properties
    # Update NTP service properties
    # @param node_ntp_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeNtpServiceProperties, Fixnum, Hash)>] NodeNtpServiceProperties data, response status code and response headers
    def update_ntp_service_with_http_info(node_ntp_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_ntp_service ..."
      end
      # verify the required parameter 'node_ntp_service_properties' is set
      if @api_client.config.client_side_validation && node_ntp_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_ntp_service_properties' when calling NsxComponentAdministrationApi.update_ntp_service"
      end
      # resource path
      local_var_path = "/node/services/ntp"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_ntp_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeNtpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_ntp_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a Principal Identity's certificate
    # Update a principal identity's certificate 
    # @param update_principal_identity_certificate_request 
    # @param [Hash] opts the optional parameters
    # @return [PrincipalIdentity]
    def update_principal_identity_certificate_update_certificate(update_principal_identity_certificate_request, opts = {})
      data, _status_code, _headers = update_principal_identity_certificate_update_certificate_with_http_info(update_principal_identity_certificate_request, opts)
      return data
    end

    # Update a Principal Identity&#39;s certificate
    # Update a principal identity&#39;s certificate 
    # @param update_principal_identity_certificate_request 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PrincipalIdentity, Fixnum, Hash)>] PrincipalIdentity data, response status code and response headers
    def update_principal_identity_certificate_update_certificate_with_http_info(update_principal_identity_certificate_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_principal_identity_certificate_update_certificate ..."
      end
      # verify the required parameter 'update_principal_identity_certificate_request' is set
      if @api_client.config.client_side_validation && update_principal_identity_certificate_request.nil?
        fail ArgumentError, "Missing the required parameter 'update_principal_identity_certificate_request' when calling NsxComponentAdministrationApi.update_principal_identity_certificate_update_certificate"
      end
      # resource path
      local_var_path = "/trust-management/principal-identities?action=update_certificate"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(update_principal_identity_certificate_request)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PrincipalIdentity')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_principal_identity_certificate_update_certificate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update service properties
    # Update service properties
    # @param node_proton_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeProtonServiceProperties]
    def update_proton_service(node_proton_service_properties, opts = {})
      data, _status_code, _headers = update_proton_service_with_http_info(node_proton_service_properties, opts)
      return data
    end

    # Update service properties
    # Update service properties
    # @param node_proton_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeProtonServiceProperties, Fixnum, Hash)>] NodeProtonServiceProperties data, response status code and response headers
    def update_proton_service_with_http_info(node_proton_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_proton_service ..."
      end
      # verify the required parameter 'node_proton_service_properties' is set
      if @api_client.config.client_side_validation && node_proton_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_proton_service_properties' when calling NsxComponentAdministrationApi.update_proton_service"
      end
      # resource path
      local_var_path = "/node/services/manager"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_proton_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeProtonServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_proton_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update http service properties
    # Update http service properties
    # @param node_http_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeHttpServiceProperties]
    def update_proxy_service(node_http_service_properties, opts = {})
      data, _status_code, _headers = update_proxy_service_with_http_info(node_http_service_properties, opts)
      return data
    end

    # Update http service properties
    # Update http service properties
    # @param node_http_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeHttpServiceProperties, Fixnum, Hash)>] NodeHttpServiceProperties data, response status code and response headers
    def update_proxy_service_with_http_info(node_http_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_proxy_service ..."
      end
      # verify the required parameter 'node_http_service_properties' is set
      if @api_client.config.client_side_validation && node_http_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_http_service_properties' when calling NsxComponentAdministrationApi.update_proxy_service"
      end
      # resource path
      local_var_path = "/node/services/http"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_http_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeHttpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_proxy_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update NSX install-upgrade service properties
    # Update NSX install-upgrade service properties
    # @param node_install_upgrade_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeInstallUpgradeServiceProperties]
    def update_repository_service(node_install_upgrade_service_properties, opts = {})
      data, _status_code, _headers = update_repository_service_with_http_info(node_install_upgrade_service_properties, opts)
      return data
    end

    # Update NSX install-upgrade service properties
    # Update NSX install-upgrade service properties
    # @param node_install_upgrade_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeInstallUpgradeServiceProperties, Fixnum, Hash)>] NodeInstallUpgradeServiceProperties data, response status code and response headers
    def update_repository_service_with_http_info(node_install_upgrade_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_repository_service ..."
      end
      # verify the required parameter 'node_install_upgrade_service_properties' is set
      if @api_client.config.client_side_validation && node_install_upgrade_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_install_upgrade_service_properties' when calling NsxComponentAdministrationApi.update_repository_service"
      end
      # resource path
      local_var_path = "/node/services/install-upgrade"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_install_upgrade_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeInstallUpgradeServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_repository_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update SNMP service properties
    # Update SNMP service properties
    # @param node_snmp_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeSnmpServiceProperties]
    def update_snmp_service(node_snmp_service_properties, opts = {})
      data, _status_code, _headers = update_snmp_service_with_http_info(node_snmp_service_properties, opts)
      return data
    end

    # Update SNMP service properties
    # Update SNMP service properties
    # @param node_snmp_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSnmpServiceProperties, Fixnum, Hash)>] NodeSnmpServiceProperties data, response status code and response headers
    def update_snmp_service_with_http_info(node_snmp_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_snmp_service ..."
      end
      # verify the required parameter 'node_snmp_service_properties' is set
      if @api_client.config.client_side_validation && node_snmp_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_snmp_service_properties' when calling NsxComponentAdministrationApi.update_snmp_service"
      end
      # resource path
      local_var_path = "/node/services/snmp"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_snmp_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSnmpServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_snmp_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update ssh service properties
    # Update ssh service properties
    # @param node_ssh_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [NodeSshServiceProperties]
    def update_ssh_service(node_ssh_service_properties, opts = {})
      data, _status_code, _headers = update_ssh_service_with_http_info(node_ssh_service_properties, opts)
      return data
    end

    # Update ssh service properties
    # Update ssh service properties
    # @param node_ssh_service_properties 
    # @param [Hash] opts the optional parameters
    # @return [Array<(NodeSshServiceProperties, Fixnum, Hash)>] NodeSshServiceProperties data, response status code and response headers
    def update_ssh_service_with_http_info(node_ssh_service_properties, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: NsxComponentAdministrationApi.update_ssh_service ..."
      end
      # verify the required parameter 'node_ssh_service_properties' is set
      if @api_client.config.client_side_validation && node_ssh_service_properties.nil?
        fail ArgumentError, "Missing the required parameter 'node_ssh_service_properties' when calling NsxComponentAdministrationApi.update_ssh_service"
      end
      # resource path
      local_var_path = "/node/services/ssh"

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(node_ssh_service_properties)
      auth_names = ['BasicAuth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NodeSshServiceProperties')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: NsxComponentAdministrationApi#update_ssh_service\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end
