openapi: 3.1.0 info: title: Infoblox WAPI (Web API) DHCP API description: RESTful API for managing Infoblox NIOS DDI (DNS, DHCP, IPAM) services, network objects, and configuration. The WAPI uses standard HTTP methods for CRUD operations and supports JSON and XML input and output formats. Authentication is handled via HTTP basic authentication or certificate-based authentication, and sessions can be maintained using cookies returned after initial authentication. The API follows a resource-oriented design where each NIOS object type is accessible as a REST resource. version: '2.12' contact: name: Infoblox Support email: support@infoblox.com url: https://www.infoblox.com/support/ termsOfService: https://www.infoblox.com/company/legal/website-terms-and-conditions/ servers: - url: https://{grid-master}/wapi/v2.12 description: Infoblox NIOS Grid Master variables: grid-master: default: grid-master.example.com description: The hostname or IP address of the Infoblox NIOS Grid Master appliance. security: - basicAuth: [] - cookieAuth: [] tags: - name: DHCP description: Operations for managing DHCP ranges, fixed addresses, leases, and DHCP option configurations. paths: /range: get: operationId: listDHCPRanges summary: Infoblox List DHCP ranges description: Retrieves a list of DHCP range objects. A DHCP range defines a pool of IP addresses from which DHCP clients can obtain leases. tags: - DHCP parameters: - $ref: '#/components/parameters/ReturnFields' - $ref: '#/components/parameters/MaxResults' - name: network in: query description: Filter by the parent network in CIDR notation. schema: type: string - name: start_addr in: query description: Filter by the starting IP address of the range. schema: type: string format: ipv4 - name: end_addr in: query description: Filter by the ending IP address of the range. schema: type: string format: ipv4 - name: network_view in: query description: Filter by the network view name. schema: type: string responses: '200': description: Successfully retrieved list of DHCP ranges. content: application/json: schema: type: array items: $ref: '#/components/schemas/DHCPRange' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createDHCPRange summary: Infoblox Create a DHCP range description: Creates a new DHCP range within a specified network. The range defines a contiguous block of IP addresses available for DHCP allocation. tags: - DHCP requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DHCPRangeCreate' responses: '201': description: Successfully created the DHCP range. content: application/json: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /fixedaddress: get: operationId: listFixedAddresses summary: Infoblox List DHCP fixed addresses description: Retrieves a list of DHCP fixed address reservations. A fixed address maps a specific MAC address to a reserved IP address. tags: - DHCP parameters: - $ref: '#/components/parameters/ReturnFields' - $ref: '#/components/parameters/MaxResults' - name: ipv4addr in: query description: Filter by the reserved IPv4 address. schema: type: string format: ipv4 - name: mac in: query description: Filter by the MAC address. schema: type: string - name: network_view in: query description: Filter by the network view name. schema: type: string responses: '200': description: Successfully retrieved list of fixed addresses. content: application/json: schema: type: array items: $ref: '#/components/schemas/FixedAddress' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createFixedAddress summary: Infoblox Create a DHCP fixed address description: Creates a new DHCP fixed address reservation mapping a MAC address to a specific IPv4 address. tags: - DHCP requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FixedAddressCreate' responses: '201': description: Successfully created the fixed address. content: application/json: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /lease: get: operationId: listDHCPLeases summary: Infoblox List DHCP leases description: Retrieves a list of DHCP lease objects. Leases represent active DHCP address assignments and include information about the client, assigned address, and lease duration. tags: - DHCP parameters: - $ref: '#/components/parameters/ReturnFields' - $ref: '#/components/parameters/MaxResults' - name: address in: query description: Filter by the leased IPv4 address. schema: type: string format: ipv4 - name: network_view in: query description: Filter by the network view name. schema: type: string responses: '200': description: Successfully retrieved list of DHCP leases. content: application/json: schema: type: array items: $ref: '#/components/schemas/DHCPLease' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Authentication failed or credentials were not provided. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request was malformed or contained invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: FixedAddress: type: object properties: _ref: type: string description: The object reference for this fixed address. ipv4addr: type: string format: ipv4 description: The reserved IPv4 address. mac: type: string description: The MAC address of the client. network_view: type: string description: The network view. comment: type: string description: A descriptive comment. maxLength: 256 disable: type: boolean description: Whether the fixed address reservation is disabled. DHCPRangeCreate: type: object required: - start_addr - end_addr properties: network: type: string description: The parent network in CIDR notation. start_addr: type: string format: ipv4 description: The starting IP address. end_addr: type: string format: ipv4 description: The ending IP address. network_view: type: string description: The network view. comment: type: string description: A descriptive comment. maxLength: 256 DHCPRange: type: object properties: _ref: type: string description: The object reference for this DHCP range. network: type: string description: The parent network in CIDR notation. start_addr: type: string format: ipv4 description: The starting IP address of the range. end_addr: type: string format: ipv4 description: The ending IP address of the range. network_view: type: string description: The network view. comment: type: string description: A descriptive comment. maxLength: 256 disable: type: boolean description: Whether the DHCP range is disabled. Error: type: object properties: Error: type: string description: The error type identifier. code: type: string description: The error code. text: type: string description: A human-readable error message. DHCPLease: type: object properties: _ref: type: string description: The object reference for this lease. address: type: string format: ipv4 description: The leased IPv4 address. network_view: type: string description: The network view. binding_state: type: string enum: - ACTIVE - EXPIRED - FREE - RELEASED description: The current state of the DHCP lease. hardware: type: string description: The hardware (MAC) address of the DHCP client. client_hostname: type: string description: The hostname provided by the DHCP client. starts: type: string format: date-time description: The lease start time. ends: type: string format: date-time description: The lease expiration time. FixedAddressCreate: type: object required: - ipv4addr - mac properties: ipv4addr: type: string format: ipv4 description: The IPv4 address to reserve. mac: type: string description: The MAC address of the client. network_view: type: string description: The network view. comment: type: string description: A descriptive comment. maxLength: 256 parameters: ReturnFields: name: _return_fields in: query description: Comma-separated list of field names to include in the response. Use _return_fields+ to add fields to the default set. schema: type: string MaxResults: name: _max_results in: query description: The maximum number of results to return. The default is 1000. Use a negative value to return all results. schema: type: integer default: 1000 securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Authentication using NIOS admin credentials. cookieAuth: type: apiKey in: cookie name: ibapauth description: Session cookie returned after successful authentication. Pass the ibapauth cookie with subsequent requests to maintain an authenticated session. externalDocs: description: Infoblox WAPI Documentation url: https://docs.infoblox.com/space/niosapi/