############################# # Common Variables # ############################# # Header Variables ################### x-auth-token: description: | Token used to identify the user from keystone in: header required: false type: string x-auth-all-projects: description: | If enabled this will show results from all projects in Designate in: header required: false type: bool x-auth-sudo-project-id: description: | This allows a user to impersonate another project in: header required: false type: string x-designate-edit-managed-records: description: | If enabled this will all users to edit records flagged as managed in: header required: false type: bool x-openstack-request-id: description: | ID of the request in: header required: false type: string # Path Variables ################# path_zone_id: description: | ID for the zone in: path required: true type: uuid path_recordset_id: description: | ID for the recordset in: path required: true type: uuid # Query Variables ################## limit: description: | Requests a page size of items. Returns a number of items up to a limit value. Use the ``limit`` parameter to make an initial limited request and use the ID of the last-seen item from the response as the ``marker`` parameter value in a subsequent limited request. in: query required: false type: integer marker: description: | The ID of the last-seen item. Use the ``limit`` parameter to make an initial limited request and use the ID of the last-seen item from the response as the ``marker`` parameter value in a subsequent limited request. in: query required: false type: string sort_dir: description: | Sorts the response by the requested sort direction. A valid value is ``asc`` (ascending) or ``desc`` (descending). Default is ``asc``. You can specify multiple pairs of sort key and sort direction query parameters. If you omit the sort direction in a pair, the API uses the natural sorting direction of the server attribute that is provided as the ``sort_key``. in: query required: false type: string sort_key: description: | Sorts the response by the this attribute value. Default is ``id``. You can specify multiple pairs of sort key and sort direction query parameters. If you omit the sort direction in a pair, the API uses the natural sorting direction of the server attribute that is provided as the ``sort_key``. in: query required: false type: string # Body Variables ################# id: description: | ID for the resource in: body required: true type: uuid project_id: description: | ID for the project that owns the resource in: body required: true type: uuid description: description: | Description for the resource. Only showen in API / Horizon in: body required: true type: string version: description: | Version of the resource in: body required: true type: integer created_at: description: | Date / Time when resource was created in: body required: true type: datestamp updated_at: description: | Date / Time when resource last updated in: body required: false type: datestamp status: description: | status of the resource in: body required: true type: enum action: description: | current action in progress on the resource in: body required: true type: enum links: description: | Links to the resource, and other related resources. When a response has been broken into pages, we will include a ``next`` link that should be followed to retrive all results in: body required: true type: object metadata: description: | Returns the ``total_count`` of resources matching this filter in: body required: true type: object ############################# # Zone Variables # ############################# # Header Variables ################### # Path Variables ################# # Query Variables ################## # Filters # 'name', 'type', 'email', 'status', 'description', 'ttl' zone_name_filter: description: | Filter results to only show zones that have a name matching the filter in: query required: false type: string zone_type_filter: description: | Filter results to only show zones that have a type matching the filter in: query required: false type: string zone_email_filter: description: | Filter results to only show zones that have an email matching the filter in: query required: false type: string zone_status_filter: description: | Filter results to only show zones that have a status matching the filter in: query required: false type: string zone_description_filter: description: | Filter results to only show zones that have a description matching the filter in: query required: false type: string zone_ttl_filter: description: | Filter results to only show zones that have a ttl matching the filter in: query required: false type: integer # Body Variables ################# zone_name: description: | DNS Name for the zone in: body required: true type: domainname zone_email: description: | e-mail for the zone. Used in SOA records for the zone in: body required: true type: string zone_email_update: description: | e-mail for the zone. Used in SOA records for the zone in: body required: false type: string zone_ttl: description: | TTL (Time to Live) for the zone. in: body required: false type: integer zone_description: description: | Description for this zone in: body required: false type: string zone_pool_id: description: | ID for the pool hosting this zone in: body required: true type: uuid zone_serial: description: | current serial number for the zone in: body required: true type: integer zone_serial: description: | current serial number for the zone in: body required: true type: integer zone_type: description: | Type of zone. PRIMARY is controlled by Designate, SECONDARY zones are slaved from another DNS Server. Defaults to PRIMARY in: body required: false type: enum zone_masters: description: | For secondary zones. The servers to slave from to get DNS information in: body required: true type: enum zone_transfered_at: description: | For secondary zones. The last time an update was retrived from the master servers in: body required: true type: enum zone_nameserver_hostname: description: | The hostname of the nameserver that the zone should be delegated to in: body required: true type: hostname zone_nameserver_priority: description: | The priority of the nameserver. This is used to determine the order of the the nameserver listings, and which server is used in the SOA record for the zone. in: body required: true type: hostname ############################# # Recordset Variables # ############################# # Header Variables ################### # Path Variables ################# # Query Variables ################## # Filters # 'name', 'type', 'ttl', 'data', 'status', 'description' recordset_name_filter: description: | Filter results to only show recordsets that have a name matching the filter in: query required: false type: string recordset_type_filter: description: | Filter results to only show recordsets that have a type matching the filter in: query required: false type: string recordset_ttl_filter: description: | Filter results to only show recordsets that have a ttl matching the filter in: query required: false type: string recordset_data_filter: description: | Filter results to only show recordsets that have a record with data matching the filter in: query required: false type: string recordset_status_filter: description: | Filter results to only show recordsets that have a status matching the filter in: query required: false type: string recordset_description_filter: description: | Filter results to only show recordsets that have a description matching the filter in: query required: false type: string # Body Variables ################# recordset_name: description: | DNS Name for the recordset in: body required: true type: hostname recordset_zone_id: description: | ID for the zone that contains this recordset in: body required: true type: uuid recordset_zone_name: description: | The name of the zone that contains this recordset in: body required: true type: string recordset_ttl: description: | TTL (Time to Live) for the recordset. in: body required: false type: integer recordset_type: description: | They RRTYPE of the recordset. in: body required: true type: string recordset_records: description: | A list of data for this recordset. Each item will be a separate record in Designate These items should conform to the DNS spec for the record type - e.g. A records must be IPv4 addresses, CNAME records must be a hostname. in: body required: true type: string recordset_description: description: | Description for this recordset in: body required: false type: string ############################# # Zone Import Variables # ############################# # Header Variables ################### # Path Variables ################# path_zone_import_id: description: | ID for this zone import in: path required: true type: uuid # Query Variables ################## # Filters # 'status', 'message', 'zone_id' zone_import_zone_id_filter: description: | Filter results to only show zone_imports that have a ``zone_id`` matching the filter in: query required: false type: uuid zone_import_status_filter: description: | Filter results to only show zone_imports that have a ``status`` matching the filter in: query required: false type: string zone_import_message_filter: description: | Filter results to only show zone_imports that have a ``message`` matching the filter in: query required: false type: string # Body Variables ################# zone_import_id: description: | ID for this zone import in: body required: true type: uuid zone_import_zone_id: description: | ID for the zone that was created by this import in: body required: false type: uuid zone_import_status: description: | Current status of the zone import in: body required: true type: uuid zone_import_message: description: | Message about the current status of the import in: body required: false type: uuid ############################# # Zone Export Variables # ############################# # Header Variables ################### zone_export_accepts: description: > Content-Type that will be accepted by the client. This endpoint will send a response with a ``text/dns`` content-type. If the client does not include a ``Accepts: text/dns`` header in: header required: true type: string # Path Variables ################# path_zone_export_id: description: | ID for this zone export in: path required: true type: uuid # Query Variables ################## # Filters # 'status', 'message', 'zone_id' zone_export_zone_id_filter: description: | Filter results to only show ``zone_exports`` that have a ``zone_id`` matching the filter in: query required: false type: uuid zone_export_status_filter: description: | Filter results to only show ``zone_exports`` that have a ``status`` matching the filter in: query required: false type: string zone_export_message_filter: description: | Filter results to only show ``zone_exports`` that have a ``message`` matching the filter in: query required: false type: string # Body Variables ################# zone_export_id: description: | ID for this zone export in: body required: true type: uuid zone_export_zone_id: description: | ID for the zone that is being exported in: body required: false type: uuid zone_export_status: description: | Current status of the zone export in: body required: true type: string zone_export_message: description: | Message about the current status of the export in: body required: false type: uuid zone_export_location: description: > Where the exported zone is published to. There are currently one placement option available - designate. This will be shown by ``designate://``. As more drivers are added, this will expand to include swift - this will be indicated by location being set to ``swift:////`` This is also allowed be a webserver if the operator implements a different data store, and will be indicted by ``http://`` When a zone export is complete, the location will be updated, and the exported zone file will be available at the location specified. in: body required: false type: string ################################# # Zone Transfer Variables # ################################# # Header Variables ################### # Path Variables ################# path_zone_transfer_request_id: description: | ID for this zone transfer request in: path required: true type: uuid path_zone_transfer_accept_id: description: | ID for this zone transfer accept in: path required: true type: uuid # Query Variables ################## # Filters # 'status' zone_transfer_request_status_filter: description: | Filter results to only show ``zone_transfer_requests`` that have a ``status`` matching the filter in: query required: false type: string # Body Variables ################# zone_transfer_request_id: description: | ID for this zone transfer request in: path required: true type: uuid zone_transfer_accept_id: description: | ID for this zone transfer accept in: path required: true type: uuid zone_transfer_request_target_project_id: description: > A project ID that the request will be limited to. No other project will be allowed to accept this request. in: body required: false type: string zone_transfer_request_status: description: | Current status of the zone transfer request in: body required: true type: string zone_transfer_accept_status: description: | Current status of the zone transfer request in: body required: true type: string zone_transfer_request_key: description: > Key that is used as part of the zone transfer accept process. This is only shown to the creator, and must be communicated out of band. in: body required: true type: string zone_transfer_request_zone_id: description: | ID for the zone that is being exported in: body required: true type: uuid zone_transfer_request_zone_name: description: | the name of the zone that is being exported in: body required: true type: string ############################# # Limits Variables # ############################# # Header Variables ################### # Path Variables ################# # Query Variables ################## # Body Variables ################# max_page_limit: description: | The max amount of items allowed per page in: body required: true type: integer max_recordset_name_length: description: | The max length of a recordset name in: body required: true type: integer max_recordset_records: description: | The max amount of records contained in a recordset in: body required: true type: integer max_zone_name_length: description: | The max length of a zone name in: body required: true type: integer max_zone_records: description: | The max amount of records in a zone in: body required: true type: integer max_zone_recordsets: description: | The max amount of recordsets per zone in: body required: true type: integer max_zones: description: | The max amount of zones for this project in: body required: true type: integer min_ttl: description: | The lowest ttl allowed on this system in: body required: true type: integer ############################# # Pool Variables # ############################# # Header Variables ################### # Path Variables ################# path_pool_id: description: | ID for this pool in: path required: true type: uuid # Query Variables ################## # Body Variables ################# pool_id: description: | ID for this pool in: path required: true type: uuid pool_name: description: | Name for this pool in: path required: true type: string pool_ns_records: description: | Name Servers for this pool. Any zones hosted by this pool should be delegated to these DNS servers in: path required: true type: string pool_attributes: description: > Key:Value pairs of information about this pool. This information can be used by the scheduler to place zones on the correct pools in: path required: true type: object ############################# # Variables # ############################# # Header Variables ################### # Path Variables ################# # Query Variables ################## # Body Variables #################