certwrangler.solvers.lexicon module#

pydantic model certwrangler.solvers.lexicon.LexiconSolver[source]#

Bases: Solver

Solver powered by lexicon.

A full list of available providers and options is available at: https://dns-lexicon.readthedocs.io/en/latest/configuration_reference.html

Show Entity Relationship Diagram

digraph "Entity Relationship Diagram created by erdantic" { graph [fontcolor=gray66, fontname="Times New Roman,Times,Liberation Serif,serif", fontsize=9, nodesep=0.5, rankdir=LR, ranksep=1.5 ]; node [fontname="Times New Roman,Times,Liberation Serif,serif", fontsize=14, label="\N", shape=plain ]; edge [dir=both]; "certwrangler.solvers.lexicon.LexiconSolver" [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>LexiconSolver</b></td></tr><tr><td>driver</td><td port="driver">Literal['lexicon']</td></tr><tr><td>zones</td><td port="zones">list[str]</td></tr><tr><td>provider_name</td><td port="provider_name">str</td></tr><tr><td>provider_options</td><td port="provider_options">dict[str, Any]</td></tr></table>>, tooltip="certwrangler.solvers.lexicon.LexiconSolver&#xA;&#xA;Solver powered by lexicon.&#xA;&#xA;A full list of available providers and options \ is available at:&#xA;https://dns-lexicon.readthedocs.io/en/latest/configuration_reference.html&#xA;"]; }

Show JSON schema
{
   "title": "LexiconSolver",
   "description": "Solver powered by lexicon.\n\nA full list of available providers and options is available at:\nhttps://dns-lexicon.readthedocs.io/en/latest/configuration_reference.html",
   "type": "object",
   "properties": {
      "driver": {
         "const": "lexicon",
         "title": "Driver",
         "type": "string"
      },
      "zones": {
         "description": "A list of DNS zones this solver should be used for.",
         "items": {
            "pattern": "^(?:(\\*\\.|[a-zA-Z0-9])(?:[a-zA-Z0-9-_]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z0-9][A-Za-z0-9-_]{0,61}[A-Za-z]$",
            "type": "string"
         },
         "title": "Zones",
         "type": "array"
      },
      "provider_name": {
         "description": "The name of the lexicon provider to use.",
         "title": "Provider Name",
         "type": "string"
      },
      "provider_options": {
         "additionalProperties": true,
         "description": "Provider-specific options.",
         "title": "Provider Options",
         "type": "object"
      }
   },
   "required": [
      "driver",
      "zones",
      "provider_name"
   ]
}

Fields:
Validators:

field driver: Literal['lexicon'] [Required]#
field provider_name: str [Required]#

The name of the lexicon provider to use.

field provider_options: Dict[str, Any] [Optional]#

Provider-specific options.

create(name: str, domain: str, content: str) None[source]#

Create a TXT record based on the lexicon config.

Raises:

SolverError – Raised on failures creating the DNS record.

delete(name: str, domain: str, content: str) None[source]#

Delete a TXT record based on the lexicon config.

Raises:

SolverError – Raised on failures deleting the DNS record.

_build_config(action: str, name: str, domain: str, content: str) Dict[str, Any][source]#

Generate the needed lexicon config for the request based on the action and the provider_options.