GafaelfawrIngress

pydantic model gafaelfawr.models.kubernetes.GafaelfawrIngress

Representation of a GafaelfawrIngress resource.

Parameters:

data (Any)

Show JSON schema
{
   "title": "GafaelfawrIngress",
   "description": "Representation of a ``GafaelfawrIngress`` resource.",
   "type": "object",
   "properties": {
      "metadata": {
         "$ref": "#/$defs/KubernetesMetadata"
      },
      "config": {
         "$ref": "#/$defs/GafaelfawrIngressConfig"
      },
      "template": {
         "$ref": "#/$defs/GafaelfawrIngressTemplate"
      }
   },
   "$defs": {
      "AuthType": {
         "description": "Authentication types for the WWW-Authenticate header.",
         "enum": [
            "basic",
            "bearer"
         ],
         "title": "AuthType",
         "type": "string"
      },
      "GafaelfawrIngressConfig": {
         "description": "Configuration settings for an ingress using Gafaelfawr for auth.",
         "properties": {
            "authCacheDuration": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Authcacheduration"
            },
            "authType": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/AuthType"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "baseUrl": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Baseurl"
            },
            "delegate": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrIngressDelegate"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "loginRedirect": {
               "default": false,
               "title": "Loginredirect",
               "type": "boolean"
            },
            "onlyServices": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Onlyservices"
            },
            "replace403": {
               "default": false,
               "title": "Replace403",
               "type": "boolean"
            },
            "scopes": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrIngressScopesAll"
                  },
                  {
                     "$ref": "#/$defs/GafaelfawrIngressScopesAny"
                  },
                  {
                     "$ref": "#/$defs/GafaelfawrIngressScopesAnonymous"
                  }
               ],
               "title": "Scopes"
            },
            "service": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Service"
            },
            "username": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Username"
            }
         },
         "required": [
            "scopes"
         ],
         "title": "GafaelfawrIngressConfig",
         "type": "object"
      },
      "GafaelfawrIngressDelegate": {
         "description": "Configuration for delegated tokens requested for a service.",
         "properties": {
            "notebook": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrIngressDelegateNotebook"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "internal": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrIngressDelegateInternal"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "minimumLifetime": {
               "anyOf": [
                  {
                     "format": "duration",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Minimumlifetime"
            },
            "useAuthorization": {
               "default": false,
               "title": "Useauthorization",
               "type": "boolean"
            }
         },
         "title": "GafaelfawrIngressDelegate",
         "type": "object"
      },
      "GafaelfawrIngressDelegateInternal": {
         "description": "Configuration for a delegated internal token.",
         "properties": {
            "service": {
               "title": "Service",
               "type": "string"
            },
            "scopes": {
               "items": {
                  "type": "string"
               },
               "title": "Scopes",
               "type": "array"
            }
         },
         "required": [
            "service",
            "scopes"
         ],
         "title": "GafaelfawrIngressDelegateInternal",
         "type": "object"
      },
      "GafaelfawrIngressDelegateNotebook": {
         "description": "Configuration for a delegated notebook token.\n\nNotes\n-----\nThis model is currently empty and represents an empty dict on the\nKubernetes side, but it is still an object for parallelism with\n`GafaelfawrIngressDelegateInternal`. It may have parameters for notebook\ntokens in the future.",
         "properties": {},
         "title": "GafaelfawrIngressDelegateNotebook",
         "type": "object"
      },
      "GafaelfawrIngressMetadata": {
         "description": "Metadata used to create an ``Ingress`` object.",
         "properties": {
            "name": {
               "title": "Name",
               "type": "string"
            },
            "annotations": {
               "additionalProperties": {
                  "type": "string"
               },
               "title": "Annotations",
               "type": "object"
            },
            "labels": {
               "anyOf": [
                  {
                     "additionalProperties": {
                        "type": "string"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Labels"
            }
         },
         "required": [
            "name"
         ],
         "title": "GafaelfawrIngressMetadata",
         "type": "object"
      },
      "GafaelfawrIngressPath": {
         "description": "A path routing rule for an ingress.",
         "properties": {
            "path": {
               "title": "Path",
               "type": "string"
            },
            "pathType": {
               "$ref": "#/$defs/PathType"
            },
            "backend": {
               "$ref": "#/$defs/GafaelfawrIngressPathBackend"
            }
         },
         "required": [
            "path",
            "pathType",
            "backend"
         ],
         "title": "GafaelfawrIngressPath",
         "type": "object"
      },
      "GafaelfawrIngressPathBackend": {
         "description": "Backend that serves a given path.",
         "properties": {
            "service": {
               "$ref": "#/$defs/GafaelfawrIngressPathService"
            }
         },
         "required": [
            "service"
         ],
         "title": "GafaelfawrIngressPathBackend",
         "type": "object"
      },
      "GafaelfawrIngressPathService": {
         "description": "Service that serves a given path.",
         "properties": {
            "name": {
               "title": "Name",
               "type": "string"
            },
            "port": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/GafaelfawrServicePortName"
                  },
                  {
                     "$ref": "#/$defs/GafaelfawrServicePortNumber"
                  }
               ],
               "title": "Port"
            }
         },
         "required": [
            "name",
            "port"
         ],
         "title": "GafaelfawrIngressPathService",
         "type": "object"
      },
      "GafaelfawrIngressRule": {
         "description": "A routing rule for an ingress.",
         "properties": {
            "host": {
               "title": "Host",
               "type": "string"
            },
            "http": {
               "$ref": "#/$defs/GafaelfawrIngressRuleHTTP"
            }
         },
         "required": [
            "host",
            "http"
         ],
         "title": "GafaelfawrIngressRule",
         "type": "object"
      },
      "GafaelfawrIngressRuleHTTP": {
         "description": "Routing rules for HTTP access.",
         "properties": {
            "paths": {
               "items": {
                  "$ref": "#/$defs/GafaelfawrIngressPath"
               },
               "title": "Paths",
               "type": "array"
            }
         },
         "required": [
            "paths"
         ],
         "title": "GafaelfawrIngressRuleHTTP",
         "type": "object"
      },
      "GafaelfawrIngressScopesAll": {
         "additionalProperties": false,
         "description": "Represents scopes where all scopes are required.",
         "properties": {
            "all": {
               "items": {
                  "type": "string"
               },
               "title": "All",
               "type": "array"
            }
         },
         "required": [
            "all"
         ],
         "title": "GafaelfawrIngressScopesAll",
         "type": "object"
      },
      "GafaelfawrIngressScopesAnonymous": {
         "additionalProperties": false,
         "description": "Represents anonymous access.",
         "properties": {
            "anonymous": {
               "const": true,
               "title": "Anonymous",
               "type": "boolean"
            }
         },
         "required": [
            "anonymous"
         ],
         "title": "GafaelfawrIngressScopesAnonymous",
         "type": "object"
      },
      "GafaelfawrIngressScopesAny": {
         "additionalProperties": false,
         "description": "Represents scopes where any scope is sufficient.",
         "properties": {
            "any": {
               "items": {
                  "type": "string"
               },
               "title": "Any",
               "type": "array"
            }
         },
         "required": [
            "any"
         ],
         "title": "GafaelfawrIngressScopesAny",
         "type": "object"
      },
      "GafaelfawrIngressSpec": {
         "description": "Template for ``spec`` portion of ``Ingress`` resource.",
         "properties": {
            "rules": {
               "items": {
                  "$ref": "#/$defs/GafaelfawrIngressRule"
               },
               "title": "Rules",
               "type": "array"
            },
            "tls": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/GafaelfawrIngressTLS"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Tls"
            }
         },
         "required": [
            "rules"
         ],
         "title": "GafaelfawrIngressSpec",
         "type": "object"
      },
      "GafaelfawrIngressTLS": {
         "description": "A TLS certificate rule for an ingress.",
         "properties": {
            "hosts": {
               "items": {
                  "type": "string"
               },
               "title": "Hosts",
               "type": "array"
            },
            "secretName": {
               "title": "Secretname",
               "type": "string"
            }
         },
         "required": [
            "hosts",
            "secretName"
         ],
         "title": "GafaelfawrIngressTLS",
         "type": "object"
      },
      "GafaelfawrIngressTemplate": {
         "description": "Template for ``Ingress`` created from ``GafaelfawrIngress`` resource.",
         "properties": {
            "metadata": {
               "$ref": "#/$defs/GafaelfawrIngressMetadata"
            },
            "spec": {
               "$ref": "#/$defs/GafaelfawrIngressSpec"
            }
         },
         "required": [
            "metadata",
            "spec"
         ],
         "title": "GafaelfawrIngressTemplate",
         "type": "object"
      },
      "GafaelfawrServicePortName": {
         "additionalProperties": false,
         "description": "Port for a service.",
         "properties": {
            "name": {
               "title": "Name",
               "type": "string"
            }
         },
         "required": [
            "name"
         ],
         "title": "GafaelfawrServicePortName",
         "type": "object"
      },
      "GafaelfawrServicePortNumber": {
         "additionalProperties": false,
         "description": "Port for a service.",
         "properties": {
            "number": {
               "title": "Number",
               "type": "integer"
            }
         },
         "required": [
            "number"
         ],
         "title": "GafaelfawrServicePortNumber",
         "type": "object"
      },
      "KubernetesMetadata": {
         "description": "The metadata section of a Kubernetes resource.",
         "properties": {
            "name": {
               "title": "Name",
               "type": "string"
            },
            "namespace": {
               "title": "Namespace",
               "type": "string"
            },
            "annotations": {
               "anyOf": [
                  {
                     "additionalProperties": {
                        "type": "string"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Annotations"
            },
            "labels": {
               "anyOf": [
                  {
                     "additionalProperties": {
                        "type": "string"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Labels"
            },
            "uid": {
               "title": "Uid",
               "type": "string"
            },
            "generation": {
               "title": "Generation",
               "type": "integer"
            }
         },
         "required": [
            "name",
            "namespace",
            "uid",
            "generation"
         ],
         "title": "KubernetesMetadata",
         "type": "object"
      },
      "PathType": {
         "description": "Matching types for paths in ingress rules.",
         "enum": [
            "Exact",
            "ImplementationSpecific",
            "Prefix"
         ],
         "title": "PathType",
         "type": "string"
      }
   },
   "required": [
      "metadata",
      "config",
      "template"
   ]
}

Fields:
field config: GafaelfawrIngressConfig [Required]

Configuration settings for Gafaelfawr for this ingress.

field metadata: KubernetesMetadata [Required]

Metadata section of the Kubernetes resource.

field template: GafaelfawrIngressTemplate [Required]

Template for the Ingress resource to create.

property key: str

A unique key for this custom object.