=begin #CLOUD API #An enterprise-grade Infrastructure is provided as a Service (IaaS) solution that can be managed through a browser-based \"Data Center Designer\" (DCD) tool or via an easy to use API. The API allows you to perform a variety of management tasks such as spinning up additional servers, adding volumes, adjusting networking, and so forth. It is designed to allow users to leverage the same power and flexibility found within the DCD visual tool. Both tools are consistent with their concepts and lend well to making the experience smooth and intuitive. The version of the OpenAPI document: 6.0-SDK.1 Generated by: https://openapi-generator.tech OpenAPI Generator version: 5.0.1-SNAPSHOT =end require 'cgi' module Ionoscloud class NATGatewaysApi attr_accessor :api_client def initialize(api_client = ApiClient.default) @api_client = api_client end # Remove a NAT gateway # Removes the specified NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [nil] def datacenters_natgateways_delete(datacenter_id, nat_gateway_id, opts = {}) datacenters_natgateways_delete_with_http_info(datacenter_id, nat_gateway_id, opts) nil end # Remove a NAT gateway # Removes the specified NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers def datacenters_natgateways_delete_with_http_info(datacenter_id, nat_gateway_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_delete ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_delete" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_delete" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_delete, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_delete, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_delete", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Retrieve a NAT gateway # Retrieves the attributes of a given NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGateway] def datacenters_natgateways_find_by_nat_gateway_id(datacenter_id, nat_gateway_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_find_by_nat_gateway_id_with_http_info(datacenter_id, nat_gateway_id, opts) data end # Retrieve a NAT gateway # Retrieves the attributes of a given NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers def datacenters_natgateways_find_by_nat_gateway_id_with_http_info(datacenter_id, nat_gateway_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'NatGateway' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_find_by_nat_gateway_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Remove Flow Log from NAT Gateway # This will remove a flow log from the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @return [nil] def datacenters_natgateways_flowlogs_delete(datacenter_id, nat_gateway_id, flow_log_id, opts = {}) datacenters_natgateways_flowlogs_delete_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts) nil end # Remove Flow Log from NAT Gateway # This will remove a flow log from the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers def datacenters_natgateways_flowlogs_delete_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_delete ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete" end # verify the required parameter 'flow_log_id' is set if @api_client.config.client_side_validation && flow_log_id.nil? fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_delete", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Retrieve a Flow Log of the NAT Gateway # This will return a Flow Log of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @return [FlowLog] def datacenters_natgateways_flowlogs_find_by_flow_log_id(datacenter_id, nat_gateway_id, flow_log_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_flowlogs_find_by_flow_log_id_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts) data end # Retrieve a Flow Log of the NAT Gateway # This will return a Flow Log of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers def datacenters_natgateways_flowlogs_find_by_flow_log_id_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id" end # verify the required parameter 'flow_log_id' is set if @api_client.config.client_side_validation && flow_log_id.nil? fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'FlowLog' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_find_by_flow_log_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # List NAT Gateway Flow Logs # You can retrieve a list of Flow Logs of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with limit for pagination) (default to 0) # @option opts [Integer] :limit the maximum number of elements to return (use together with offset for pagination) (default to 1000) # @return [FlowLogs] def datacenters_natgateways_flowlogs_get(datacenter_id, nat_gateway_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_flowlogs_get_with_http_info(datacenter_id, nat_gateway_id, opts) data end # List NAT Gateway Flow Logs # You can retrieve a list of Flow Logs of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with limit for pagination) # @option opts [Integer] :limit the maximum number of elements to return (use together with offset for pagination) # @return [Array<(FlowLogs, Integer, Hash)>] FlowLogs data, response status code and response headers def datacenters_natgateways_flowlogs_get_with_http_info(datacenter_id, nat_gateway_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_get ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0 fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 10000 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be smaller than or equal to 10000.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 1.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil? query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'FlowLogs' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_get", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Partially modify a Flow Log of the NAT Gateway # You can use to partially update a Flow Log of a NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param nat_gateway_flow_log_properties [FlowLogProperties] Properties of a Flow Log to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @return [FlowLog] def datacenters_natgateways_flowlogs_patch(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts = {}) data, _status_code, _headers = datacenters_natgateways_flowlogs_patch_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts) data end # Partially modify a Flow Log of the NAT Gateway # You can use to partially update a Flow Log of a NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param nat_gateway_flow_log_properties [FlowLogProperties] Properties of a Flow Log to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers def datacenters_natgateways_flowlogs_patch_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_patch ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch" end # verify the required parameter 'flow_log_id' is set if @api_client.config.client_side_validation && flow_log_id.nil? fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch" end # verify the required parameter 'nat_gateway_flow_log_properties' is set if @api_client.config.client_side_validation && nat_gateway_flow_log_properties.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log_properties' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log_properties) # return_type return_type = opts[:debug_return_type] || 'FlowLog' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_patch", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Add a NAT Gateways Flow Log # This will add a new Flow Log to the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_flow_log [FlowLog] Flow Log to add on NAT Gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @return [FlowLog] def datacenters_natgateways_flowlogs_post(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts = {}) data, _status_code, _headers = datacenters_natgateways_flowlogs_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts) data end # Add a NAT Gateways Flow Log # This will add a new Flow Log to the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_flow_log [FlowLog] Flow Log to add on NAT Gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers def datacenters_natgateways_flowlogs_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post" end # verify the required parameter 'nat_gateway_flow_log' is set if @api_client.config.client_side_validation && nat_gateway_flow_log.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[: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 = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log) # return_type return_type = opts[:debug_return_type] || 'FlowLog' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Modify a Flow Log of the NAT Gateway # You can use to update a Flow Log of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param nat_gateway_flow_log [FlowLogPut] Modified NAT Gateway Flow Log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @return [FlowLog] def datacenters_natgateways_flowlogs_put(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts = {}) data, _status_code, _headers = datacenters_natgateways_flowlogs_put_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts) data end # Modify a Flow Log of the NAT Gateway # You can use to update a Flow Log of the NAT Gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param flow_log_id [String] The unique ID of the flow log # @param nat_gateway_flow_log [FlowLogPut] Modified NAT Gateway Flow Log # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers def datacenters_natgateways_flowlogs_put_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_put ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put" end # verify the required parameter 'flow_log_id' is set if @api_client.config.client_side_validation && flow_log_id.nil? fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put" end # verify the required parameter 'nat_gateway_flow_log' is set if @api_client.config.client_side_validation && nat_gateway_flow_log.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[: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 = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log) # return_type return_type = opts[:debug_return_type] || 'FlowLog' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_put", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # List NAT Gateways # Retrieve a list of NAT Gateways within the datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGateways] def datacenters_natgateways_get(datacenter_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_get_with_http_info(datacenter_id, opts) data end # List NAT Gateways # Retrieve a list of NAT Gateways within the datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGateways, Integer, Hash)>] NatGateways data, response status code and response headers def datacenters_natgateways_get_with_http_info(datacenter_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_get ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_get" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_get, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_get, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'NatGateways' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_get", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Partially update a NAT gateway # Partially update the attributes of a given NAT gateway # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_properties [NatGatewayProperties] NAT gateway properties to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGateway] def datacenters_natgateways_patch(datacenter_id, nat_gateway_id, nat_gateway_properties, opts = {}) data, _status_code, _headers = datacenters_natgateways_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_properties, opts) data end # Partially update a NAT gateway # Partially update the attributes of a given NAT gateway # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_properties [NatGatewayProperties] NAT gateway properties to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers def datacenters_natgateways_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_properties, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_patch ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_patch" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_patch" end # verify the required parameter 'nat_gateway_properties' is set if @api_client.config.client_side_validation && nat_gateway_properties.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_properties' when calling NATGatewaysApi.datacenters_natgateways_patch" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_patch, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_patch, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_properties) # return_type return_type = opts[:debug_return_type] || 'NatGateway' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_patch", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Create a NAT Gateway # Creates a NAT Gateway within the datacenter. User should be the contract owner or a admin or a user with createInternetAccess privilege # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway [NatGateway] NAT gateway to be created # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGateway] def datacenters_natgateways_post(datacenter_id, nat_gateway, opts = {}) data, _status_code, _headers = datacenters_natgateways_post_with_http_info(datacenter_id, nat_gateway, opts) data end # Create a NAT Gateway # Creates a NAT Gateway within the datacenter. User should be the contract owner or a admin or a user with createInternetAccess privilege # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway [NatGateway] NAT gateway to be created # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers def datacenters_natgateways_post_with_http_info(datacenter_id, nat_gateway, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_post" end # verify the required parameter 'nat_gateway' is set if @api_client.config.client_side_validation && nat_gateway.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway' when calling NATGatewaysApi.datacenters_natgateways_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_post, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[: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']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway) # return_type return_type = opts[:debug_return_type] || 'NatGateway' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Update a NAT gateway # Update the attributes of a given NAT gateway # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway [NatGatewayPut] Modified NAT Gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with limit for pagination) (default to 0) # @option opts [Integer] :limit the maximum number of elements to return (use together with offset for pagination) (default to 1000) # @return [NatGateway] def datacenters_natgateways_put(datacenter_id, nat_gateway_id, nat_gateway, opts = {}) data, _status_code, _headers = datacenters_natgateways_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway, opts) data end # Update a NAT gateway # Update the attributes of a given NAT gateway # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway [NatGatewayPut] Modified NAT Gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with limit for pagination) # @option opts [Integer] :limit the maximum number of elements to return (use together with offset for pagination) # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers def datacenters_natgateways_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_put ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_put" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_put" end # verify the required parameter 'nat_gateway' is set if @api_client.config.client_side_validation && nat_gateway.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway' when calling NATGatewaysApi.datacenters_natgateways_put" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0 fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 10000 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be smaller than or equal to 10000.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be greater than or equal to 1.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil? query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? # header parameters header_params = opts[: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']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway) # return_type return_type = opts[:debug_return_type] || 'NatGateway' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_put", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Remove rule from NAT Gateway # This will remove a rule from the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [nil] def datacenters_natgateways_rules_delete(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {}) datacenters_natgateways_rules_delete_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts) nil end # Remove rule from NAT Gateway # This will remove a rule from the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers def datacenters_natgateways_rules_delete_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_delete ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete" end # verify the required parameter 'nat_gateway_rule_id' is set if @api_client.config.client_side_validation && nat_gateway_rule_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_delete, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_delete, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_delete", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Retrieve a NAT Gateway Rule # Retrieves the attributes of a given NAT gateway rule. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGatewayRule] def datacenters_natgateways_rules_find_by_nat_gateway_rule_id(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_rules_find_by_nat_gateway_rule_id_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts) data end # Retrieve a NAT Gateway Rule # Retrieves the attributes of a given NAT gateway rule. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers def datacenters_natgateways_rules_find_by_nat_gateway_rule_id_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id" end # verify the required parameter 'nat_gateway_rule_id' is set if @api_client.config.client_side_validation && nat_gateway_rule_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'NatGatewayRule' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_find_by_nat_gateway_rule_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # List NAT Gateways Rules # Retrieve a list of rules of a NAT Gateway within the datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGatewayRules] def datacenters_natgateways_rules_get(datacenter_id, nat_gateway_id, opts = {}) data, _status_code, _headers = datacenters_natgateways_rules_get_with_http_info(datacenter_id, nat_gateway_id, opts) data end # List NAT Gateways Rules # Retrieve a list of rules of a NAT Gateway within the datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGatewayRules, Integer, Hash)>] NatGatewayRules data, response status code and response headers def datacenters_natgateways_rules_get_with_http_info(datacenter_id, nat_gateway_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_get ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_get" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_get" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_get, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_get, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'NatGatewayRules' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_get", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Partially modify a rule of the NAT gateway # You can use to partially update a rule of a NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param nat_gateway_rule_properties [NatGatewayRuleProperties] Properties of a NAT gateway rule to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGatewayRule] def datacenters_natgateways_rules_patch(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts = {}) data, _status_code, _headers = datacenters_natgateways_rules_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts) data end # Partially modify a rule of the NAT gateway # You can use to partially update a rule of a NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param nat_gateway_rule_properties [NatGatewayRuleProperties] Properties of a NAT gateway rule to be updated # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers def datacenters_natgateways_rules_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_patch ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch" end # verify the required parameter 'nat_gateway_rule_id' is set if @api_client.config.client_side_validation && nat_gateway_rule_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch" end # verify the required parameter 'nat_gateway_rule_properties' is set if @api_client.config.client_side_validation && nat_gateway_rule_properties.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_properties' when calling NATGatewaysApi.datacenters_natgateways_rules_patch" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_patch, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_patch, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule_properties) # return_type return_type = opts[:debug_return_type] || 'NatGatewayRule' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_patch", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Create a NAT Gateway Rule # Creates a rule within the NAT Gateway of a datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule [NatGatewayRule] NAT gateway rule to be created # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGatewayRule] def datacenters_natgateways_rules_post(datacenter_id, nat_gateway_id, nat_gateway_rule, opts = {}) data, _status_code, _headers = datacenters_natgateways_rules_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule, opts) data end # Create a NAT Gateway Rule # Creates a rule within the NAT Gateway of a datacenter. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule [NatGatewayRule] NAT gateway rule to be created # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers def datacenters_natgateways_rules_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_post" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_post" end # verify the required parameter 'nat_gateway_rule' is set if @api_client.config.client_side_validation && nat_gateway_rule.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule' when calling NATGatewaysApi.datacenters_natgateways_rules_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_post, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[: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']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule) # return_type return_type = opts[:debug_return_type] || 'NatGatewayRule' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Modify a rule of the NAT gateway # You can use to update a rule of the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param nat_gateway_rule [NatGatewayRulePut] Modified NAT Gateway Rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on (default to 0) # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [NatGatewayRule] def datacenters_natgateways_rules_put(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts = {}) data, _status_code, _headers = datacenters_natgateways_rules_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts) data end # Modify a rule of the NAT gateway # You can use to update a rule of the NAT gateway. # @param datacenter_id [String] The unique ID of the datacenter # @param nat_gateway_id [String] The unique ID of the NAT gateway # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule # @param nat_gateway_rule [NatGatewayRulePut] Modified NAT Gateway Rule # @param [Hash] opts the optional parameters # @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) # @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/[ID] - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=... and so on # @option opts [Integer] :x_contract_number Users having more than 1 contract need to provide contract number, against which all API requests should be executed # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers def datacenters_natgateways_rules_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_put ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put" end # verify the required parameter 'nat_gateway_id' is set if @api_client.config.client_side_validation && nat_gateway_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put" end # verify the required parameter 'nat_gateway_rule_id' is set if @api_client.config.client_side_validation && nat_gateway_rule_id.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put" end # verify the required parameter 'nat_gateway_rule' is set if @api_client.config.client_side_validation && nat_gateway_rule.nil? fail ArgumentError, "Missing the required parameter 'nat_gateway_rule' when calling NATGatewaysApi.datacenters_natgateways_rules_put" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_put, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_put, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[: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']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule) # return_type return_type = opts[:debug_return_type] || 'NatGatewayRule' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"NATGatewaysApi.datacenters_natgateways_rules_put", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end end end