# Include{groups}
portals:
  open:
# Include{portalLink}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}

  - variable: netbox
    group: App Configuration
    label: Netbox Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: allowed_hosts
          label: Allowed Hosts
          description: This is a list of valid fully-qualified domain names (FQDNs) for the NetBox server. NetBox will not permit write access to the server via any other hostnames. The first FQDN in the list will be treated as the preferred name. (127.0.0.1 and ::1) added automatically
          schema:
            type: list
            default: []
            items:
              - variable: allowed_hosts_entry
                label: Allowed Host
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: allowed_urls_schemes
          label: Allowed URL Schemes
          description: URL schemes that are allowed within links in NetBox.
          schema:
            type: list
            default: []
            items:
              - variable: allowed_url_scheme_entry
                label: Allowed URL Scheme
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: admins
          label: Admins
          description: Specify one or more name and email address tuples representing NetBox administrators. These people will be notified of application errors (assuming correct email settings are provided).
          schema:
            type: list
            default: []
            items:
              - variable: admin_entry
                label: Admin
                schema:
                  type: dict
                  additional_attrs: true
                  attrs:
                    - variable: name
                      label: Name
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: email
                      label: Email
                      schema:
                        type: string
                        required: true
                        default: ""
        - variable: auth_password_validators
          label: Auth Password Validators
          description: Enable any desired validators for local account passwords below. For a list of included validators, please see the Django documentation at https://docs.djangoproject.com/en/stable/topics/auth/passwords/#password-validation.
          schema:
            type: list
            default: []
            items:
              - variable: auth_password_validators_entry
                label: Auth Password Validator
                schema:
                  type: dict
                  additional_attrs: true
                  attrs:
                    - variable: name
                      label: Name
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: options
                      label: Options
                      schema:
                        type: dict
                        additional_attrs: true
                        attrs:
                          - variable: key
                            label: Key
                            schema:
                              type: string
                              required: true
                              default: ""
                          - variable: value
                            label: Value
                            schema:
                              type: string
                              required: true
                              default: ""
        - variable: banner
          label: Banner
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: login
                label: Login Banner
                description: Text to include on the login page above the login form. HTML is allowed
                schema:
                  type: string
                  default: ""
              - variable: top
                label: Top Banner
                description: Optionally display a persistent banner at the top of every page.
                schema:
                  type: string
                  default: ""
              - variable: bottom
                label: Bottom Banner
                description: Optionally display a persistent banner at the bottom of every page.
                schema:
                  type: string
                  default: ""
        - variable: retention
          label: Retention
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: changelog
                label: Changelog
                description: Maximum number of days to retain logged changes. Set to 0 to retain changes indefinitely.
                schema:
                  type: int
                  default: 90
              - variable: job_result
                label: Job Results
                description: Maximum number of days to retain job results (scripts and reports). Set to 0 to retain job results in the database indefinitely.
                schema:
                  type: int
                  default: 90
        - variable: prefer_ipv4
          label: Prefer IPv4
          description: When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default.
          schema:
            type: boolean
            default: false
        - variable: enforce_global_unique
          label: Enforce Global Unique
          description: Enforcement of unique IP space can be toggled on a per-VRF basis. To enforce unique IP space within the global table
          schema:
            type: boolean
            default: true
        - variable: cors_origin_allow_all
          label: CORS Origin Allow All
          description: If CORS_ORIGIN_ALLOW_ALL is set to True, all origins will be allowed. Otherwise, define a list of allowed origins using either CORS_ORIGIN_WHITELIST or CORS_ORIGIN_REGEX_WHITELIST. For more information, see https://github.com/ottoyiu/django-cors-headers
          schema:
            type: boolean
            default: false
            show_subquestions_if: false
            subquestions:
              - variable: cors_origin_whitelist
                label: CORS Origin Whitelist
                description: Example 127.0.0.1
                schema:
                  type: list
                  default: []
                  items:
                    - variable: cors_origin_whitelist_entry
                      label: CORS Origin Whitelist Entry
                      schema:
                        type: string
                        required: true
                        default: ""
              - variable: cors_origin_regex_whitelist
                label: CORS Origin Regex Whitelist
                description: Example r'^(https?://)?(\w+\.)?example\.com$'
                schema:
                  type: list
                  default: []
                  items:
                    - variable: cors_origin_whitelist_entry
                      label: CORS Origin Regex Whitelist Entry
                      schema:
                        type: string
                        required: true
                        default: ""
        - variable: csrf_trusted_origin
          label: CSRF Trusted Origin
          description: Cross-Site-Request-Forgery-Attack settings. If Netbox is sitting behind a reverse proxy, you might need to set this
          schema:
            type: list
            default: []
            items:
              - variable: csrf_trusted_origin_entry
                label: CSRF Trusted Origin Entry
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: csrf_cookie_name
          label: CSRF Cookie Name
          description: The name to use for the csrf token cookie.
          schema:
            type: string
            default: csrftoken
        - variable: session_cookie_name
          label: Session Cookie Name
          description: The name to use for the session cookie.
          schema:
            type: string
            default: sessionid
        - variable: email
          label: Email
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: server
                label: Server
                schema:
                  type: string
                  default: ""
              - variable: port
                label: Port
                schema:
                  type: int
                  default: 587
              - variable: from_email
                label: From Email
                schema:
                  type: string
                  default: ""
              - variable: username
                label: Username
                schema:
                  type: string
                  default: ""
              - variable: password
                label: Password
                schema:
                  type: string
                  private: true
                  default: ""
              - variable: use_ssl
                label: Use SSL
                schema:
                  type: boolean
                  default: false
              - variable: use_tls
                label: Use TLS
                schema:
                  type: boolean
                  default: true
              - variable: timeout
                label: Timeout
                schema:
                  type: int
                  default: 10
        - variable: exempt_view_permissions
          label: Exempt View Permissions
          description: Exempt certain models from the enforcement of view permissions. Models listed here will be viewable by all users and by anonymous users. List models in the form `<app>.<model>`. Add '*' to this list to exempt all models.
          schema:
            type: list
            default: []
            items:
              - variable: exempt_view_permissions_entry
                label: Exempt View Permission
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: http_proxies
          label: HTTP Proxies
          description: HTTP proxies NetBox should use when sending outbound HTTP requests (e.g. for webhooks).
          schema:
            type: list
            default: []
            items:
              - variable: http_proxy_entry
                label: HTTP Proxy Entry
                schema:
                  type: dict
                  additional_attrs: true
                  attrs:
                    - variable: key
                      label: Key
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: url
                      label: URL
                      schema:
                        type: string
                        required: true
                        default: ""
        - variable: internal_ips
          label: Internal IPs
          description: IP addresses recognized as internal to the system. The debugging toolbar will be available only to clients accessing NetBox from an internal IP. (127.0.0.1 and ::1) added automatically
          schema:
            type: list
            default: []
            items:
              - variable: internal_ips_entry
                label: Internal IP
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: login_persistence
          label: Login Persistence
          description: Automatically reset the lifetime of a valid session upon each authenticated request. Enables users to remain authenticated to NetBox indefinitely.
          schema:
            type: boolean
            default: false
        - variable: login_required
          label: Login Required
          description: Setting this to true will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox but not make any changes.
          schema:
            type: boolean
            default: true
        - variable: login_timeout
          label: Login Timeout
          description: The length of time (in seconds) for which a user will remain logged into the web UI before being prompted to re-authenticate.
          schema:
            type: int
            default: 1209600
        - variable: graphql_enabled
          label: Enable GraphQL
          description: Enable GraphQL API.
          schema:
            type: boolean
            default: true
        - variable: maps_url
          label: Maps URl
          description: Maps provider
          schema:
            type: string
            default: https://maps.google.com/?q=
        - variable: max_page_size
          label: Max Page Size
          description: This setting defines the maximum limit of objects an API can request. Setting it to 0 or None will allow an API consumer to request all objects.
          schema:
            type: int
            default: 1000
        - variable: paginate_count
          label: Paginate Count
          description: Determine how many objects to display per page within a list.
          schema:
            type: int
            default: 50
        - variable: powerfeed
          label: Power Feed
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: default_amperage
                label: Default Amperage
                description: The default value for the amperage field when creating new power feeds.
                schema:
                  type: int
                  default: 15
              - variable: default_max_utilization
                label: Default Max Utilization
                description: The default value (percentage) for the max_utilization field when creating new power feeds.
                schema:
                  type: int
                  default: 80
              - variable: default_voltage
                label: Default Voltage
                description: The default value for the voltage field when creating new power feeds.
                schema:
                  type: int
                  default: 120
        - variable: rack
          label: Rack
          description: Rack elevation size defaults, in pixels. For best results, the ratio of width to height should be roughly 10:1.
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: elevation_default_unit_height
                label: Elevation Default Unit Height
                schema:
                  type: int
                  default: 22
              - variable: elevation_default_unit_width
                label: Elevation Default Unit Width
                schema:
                  type: int
                  default: 220
        - variable: napalm
          label: Napalm
          description: Credentials that NetBox will uses to authenticate to devices when connecting via NAPALM.
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: username
                label: Username
                schema:
                  type: string
                  default: ""
              - variable: password
                label: Password
                schema:
                  type: string
                  private: true
                  default: ""
              - variable: timeout
                label: Timeout
                schema:
                  type: int
                  default: 30
              - variable: args
                label: Args
                description: NAPALM optional arguments (see http://napalm.readthedocs.io/en/latest/support/#optional-arguments).
                schema:
                  type: list
                  default: []
                  items:
                    - variable: arg_entry
                      label: Arg Entry
                      schema:
                        type: dict
                        additional_attrs: true
                        attrs:
                          - variable: arg
                            label: Arg
                            schema:
                              type: string
                              required: true
                              default: ""
                          - variable: value
                            label: Value
                            schema:
                              type: string
                              required: true
                              default: ""
        - variable: storage_backend
          label: Storage Backend
          description: By default uploaded media is stored on the local filesystem. Using Django-storages is also supported. Provide the class path of the storage driver in storage_backend and any configuration options in storage_config.
          schema:
            type: string
            default: ""
        - variable: storage_config
          label: Storage Config
          schema:
            show_if: [["storage_backend", "!=", ""]]
            type: list
            default: []
            items:
              - variable: storage_config_entry
                label: Storage Config Entry
                schema:
                  type: dict
                  additional_attrs: true
                  attrs:
                    - variable: key
                      label: Key
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: value
                      label: Value
                      schema:
                        type: string
                        required: true
                        default: ""
        - variable: rq_default_timeout
          label: RQ Default Timeout
          description: Maximum execution time for background tasks, in seconds.
          schema:
            type: int
            required: true
            default: 300
        - variable: remote_auth
          label: Remote Auth
          description: Remote authentication support
          schema:
            type: dict
            additional_attrs: true
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: backend
                      label: Backend
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: header
                      label: Header
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: auto_create_user
                      label: Auto Create User
                      schema:
                        type: boolean
                        default: false
                    - variable: default_groups
                      label: Default Groups
                      schema:
                        type: list
                        default: []
                        items:
                          - variable: default_group_entry
                            label: Default Group
                            schema:
                              type: string
                              required: true
                              default: ""
                    - variable: default_permissions
                      label: Default Permissions
                      schema:
                        type: list
                        default: []
                        items:
                          - variable: default_permissions_entry
                            label: Default Permission Entry
                            schema:
                              type: dict
                              additional_attrs: true
                              attrs:
                                - variable: key
                                  label: Key
                                  schema:
                                    type: string
                                    required: true
                                    default: ""
                                - variable: value
                                  label: Value
                                  schema:
                                    type: string
                                    required: true
                                    default: ""
        - variable: date_time
          label: Date Time
          description: Date/time formatting. See the following link for supported formats https://docs.djangoproject.com/en/stable/ref/templates/builtins/#date
          schema:
            type: dict
            additional_attrs: true
            attrs:
              - variable: date_format
                label: Date Format
                schema:
                  type: string
                  required: true
                  default: N j, Y
              - variable: short_date_format
                label: Short Date Format
                schema:
                  type: string
                  required: true
                  default: Y-m-d
              - variable: time_format
                label: Time Format
                schema:
                  type: string
                  required: true
                  default: g:i a
              - variable: short_time_format
                label: Short Time Format
                schema:
                  type: string
                  required: true
                  default: H:i:s
              - variable: date_time_format
                label: Date Time Format
                schema:
                  type: string
                  required: true
                  default: N j, Y g:i a
              - variable: short_date_time_format
                label: Short Date Time Format
                schema:
                  type: string
                  required: true
                  default: Y-m-d H:i
        - variable: plugins_config
          label: Plugins Config
          description: Plugins configuration settings. These settings are used by various plugins that the user may have installed.
          schema:
            type: list
            default: []
            items:
              - variable: plugin_entry
                label: Plugin Entry
                schema:
                  type: dict
                  additional_attrs: true
                  attrs:
                    - variable: plugin_name
                      label: Plugin Name
                      schema:
                        type: string
                        required: true
                        default: ""
                    - variable: enabled
                      label: Enable Plugin
                      schema:
                        type: boolean
                        default: true
                    - variable: config
                      label: Config
                      schema:
                        type: list
                        default: []
                        items:
                          - variable: config_entry
                            label: Config Entry
                            schema:
                              type: dict
                              additional_attrs: true
                              attrs:
                                - variable: key
                                  label: Key
                                  schema:
                                    type: string
                                    required: true
                                    default: ""
                                - variable: value
                                  label: Value
                                  schema:
                                    type: string
                                    required: true
                                    default: ""
# Include{containerConfig}
# Include{serviceRoot}
        - variable: main
          label: Main Service
          description: The Primary service on which the healthcheck runs, often the webUI
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: main
                      label: Main Service Port Configuration
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: port
                            label: Port
                            description: This port exposes the container port on the service
                            schema:
                              type: int
                              default: 10265
                              required: true
# Include{serviceExpertRoot}
            default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: config
          label: App Config Storage
          description: Stores the Application Configuration.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: reports
          label: App Reports Storage
          description: Stores the Application Reports.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: scripts
          label: App Scripts Storage
          description: Stores the Application Scripts.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: media
          label: App Media Storage
          description: Stores the Application Media.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
        - variable: main
          label: Main Ingress
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressList}

# Include{podSecurityContextRoot}
        - variable: runAsUser
          label: runAsUser
          description: The UserID of the user running the application
          schema:
            type: int
            default: 0
        - variable: runAsGroup
          label: runAsGroup
          description: The groupID this App of the user running the application
          schema:
            type: int
            default: 0
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
        - variable: fsGroup
          label: fsGroup
          description: The group that should own ALL storage.
          schema:
            type: int
            default: 568

# Include{resources}
# Include{metrics}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}
