# Copyright 2020 Canonical Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: legal@canonical.com
#
# To get in touch with the maintainers, please contact:
# osm-charmers@lists.launchpad.net
##

options:
  vca_host:
    type: string
    description: "The VCA host."
    default: "admin"
  vca_port:
    type: int
    description: "The VCA port."
    default: 17070
  vca_user:
    type: string
    description: "The VCA user name."
    default: "admin"
  vca_secret:
    type: string
    description: "The VCA user secret."
    default: "secret"
  vca_pubkey:
    type: string
    description: "The VCA public key."
    default: "secret"
  vca_cacert:
    type: string
    description: "The VCA cacert."
  vca_apiproxy:
    type: string
    description: "The VCA api proxy (native charms)"
    default: ""
  vca_cloud:
    type: string
    description: "The VCA lxd cloud name"
    default: "localhost"
  vca_k8s_cloud:
    type: string
    description: "The VCA K8s cloud name"
    default: "k8scloud"
  database_commonkey:
    description: Database common key
    type: string
    default: osm
  log_level:
    description: "Log Level"
    type: string
    default: "INFO"
  vca_model_config_agent_metadata_url:
    description: The URL of the private stream.
    type: string
  vca_model_config_agent_stream:
    description: |
      The stream to use for deploy/upgrades of agents.
      See additional info below.
    type: string
  vca_model_config_apt_ftp_proxy:
    description: The APT FTP proxy for the model.
    type: string
  vca_model_config_apt_http_proxy:
    description: The APT HTTP proxy for the model.
    type: string
  vca_model_config_apt_https_proxy:
    description: The APT HTTPS proxy for the model.
    type: string
  vca_model_config_apt_mirror:
    description: The APT mirror for the model.
    type: string
  vca_model_config_apt_no_proxy:
    description: The APT no proxy for the model.
    type: string
  vca_model_config_automatically_retry_hooks:
    description: Set the policy on retying failed hooks.
    type: boolean
  vca_model_config_backup_dir:
    description: Backup directory
    type: string
  vca_model_config_cloudinit_userdata:
    description: Cloudinit userdata
    type: string
  vca_model_config_container_image_metadata_url:
    description: |
      Corresponds to 'image-metadata-url' (see below) for cloud-hosted
      KVM guests or LXD containers. Not needed for the localhost cloud.
    type: string
  vca_model_config_container_image_stream:
    description: |
      Corresponds to 'image-stream' (see below) for cloud-hosted KVM
      guests or LXD containers. Not needed for the localhost cloud.
    type: string
  vca_model_config_container_inherit_properties:
    description: |
      Set parameters to be inherited from a machine toits hosted
      containers (KVM or LXD).
    type: string
  vca_model_config_container_networking_method:
    description: |
      The FAN networking mode to use. Default values can be provider-specific.
    type: string
  vca_model_config_default_series:
    description: The default series of Ubuntu to use for deploying charms.
    type: string
  vca_model_config_default_space:
    description: |
      The space used as the default binding when deploying charms.
      Will be "alpha" by default.
    type: string
  vca_model_config_development:
    description: Set whether the model is in development mode.
    type: boolean
  vca_model_config_disable_network_management:
    description: |
      Set whether to give network control to the provider instead
      of Juju controlling configuration.
    type: boolean
  vca_model_config_egress_subnets:
    description: Egress subnets
    type: string
  vca_model_config_enable_os_refresh_update:
    description: |
      Set whether newly provisioned instances should run their
      respective OS's update capability.
    type: boolean
  vca_model_config_enable_os_upgrade:
    description: |
      Set whether newly provisioned instances should run their
      respective OS's upgrade capability.
    type: boolean
  vca_model_config_fan_config:
    description: |
      The FAN overlay and underlay networks in
      CIDR notation (space-separated).
    type: string
  vca_model_config_firewall_mode:
    description: The mode to use for network firewalling.
    type: string
  vca_model_config_ftp_proxy:
    description: |
      The FTP proxy value to configure on instances,
      in the FTP_PROXY environment variable.
    type: string
  vca_model_config_http_proxy:
    description: |
      The HTTP proxy value to configure on instances,
      in the HTTP_PROXY environment variable.
    type: string
  vca_model_config_https_proxy:
    description: |
      The HTTPS proxy value to configure on instances,
      in the HTTPS_PROXY environment variable.
    type: string
  vca_model_config_ignore_machine_addresses:
    description: |
      When true, the machine worker will not look up
      or discover any machine addresses.
    type: boolean
  vca_model_config_image_metadata_url:
    description: |
      The URL at which the metadata used to locate
      OS image ids is located.
    type: string
  vca_model_config_image_stream:
    description: |
      The simplestreams stream used to identify which image
      ids to search when starting an instance.
    type: string
  vca_model_config_juju_ftp_proxy:
    description: The charm-centric FTP proxy value.
    type: string
  vca_model_config_juju_http_proxy:
    description: The charm-centric HTTP proxy value.
    type: string
  vca_model_config_juju_https_proxy:
    description: The charm-centric HTTPS proxy value.
    type: string
  vca_model_config_juju_no_proxy:
    description: The charm-centric no-proxy value.
    type: string
  vca_model_config_logforward_enabled:
    description: Set whether the log forward function is enabled.
    type: boolean
  vca_model_config_logging_config:
    description: |
      The configuration string to use when configuring Juju agent logging
    type: string
  vca_model_config_lxd_snap_channel:
    description: LXD snap channel
    type: string
  vca_model_config_max_action_results_age:
    description: The maximum aget for status action results entries
    type: string
  vca_model_config_max_action_results_size:
    description: The maximum size for status action results entries
    type: string
  vca_model_config_max_status_history_age:
    description: |
      The maximum age for status history entries before they are pruned,
      in a human-readable time format.
    type: string
  vca_model_config_max_status_history_size:
    description: |
      The maximum size for the status history collection,
      in human-readable memory format.
    type: string
  vca_model_config_net_bond_reconfigure_delay:
    description: Net bond reconfigure delay
    type: int
  vca_model_config_no_proxy:
    description: List of domain addresses not to be proxied (comma-separated).
    type: string
  vca_model_config_provisioner_harvest_mode:
    description: Set what to do with unknown machines.
    type: string
  vca_model_config_proxy_ssh:
    description: |
      Set whether SSH commands should be proxied through the API server.
    type: boolean
  vca_model_config_snap_http_proxy:
    description: The snap-centric HTTP proxy value.
    type: string
  vca_model_config_snap_https_proxy:
    description: The snap-centric HTTPS proxy value.
    type: string
  vca_model_config_snap_store_assertions:
    description: |
      The collection of snap store assertions.
      Each entry should contain the snap store ID.
    type: string
  vca_model_config_snap_store_proxy:
    description: The snap store ID.
    type: string
  vca_model_config_snap_store_proxy_url:
    description: The snap store proxy url
    type: string
  vca_model_config_ssl_hostname_verification:
    description: Set whether SSL hostname verification is enabled.
    type: boolean
  vca_model_config_test_mode:
    description: |
      Set whether the model is intended for testing.
      If true, accessing the charm store does not affect
      statistical data of the store.
    type: boolean
  vca_model_config_transmit_vendor_metrics:
    description: |
      Set whether the controller will send metrics collected from
      this model for use in anonymized aggregate analytics.
    type: boolean
  vca_model_config_update_status_hook_interval:
    description: |
      The run frequency of the update-status hook.
      The value has a random +/- 20% offset applied to avoid hooks
      for all units firing at once. Value change only honoured
      during controller and model creation
      (bootstrap --config and add-model --config).
    type: string
