# Copyright (c) 2019 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

# key: The name of the key as defined in galaxy.yml
# description: Comment/info on the key to be used as the generated doc and auto generated skeleton galaxy.yml file
# required: Whether the key is required (default is no)
# type: The type of value that can be set, aligns to the values in the plugin formatter
---
- key: namespace
  description:
  - The namespace of the collection.
  - This can be a company/brand/organization or product namespace under which all content lives.
  - May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with underscores or
    numbers and cannot contain consecutive underscores.
  required: yes
  type: str

- key: name
  description:
  - The name of the collection.
  - Has the same character restrictions as C(namespace).
  required: yes
  type: str

- key: version
  description:
  - The version of the collection.
  - Must be compatible with semantic versioning.
  required: yes
  type: str

- key: readme
  description:
  - The path to the Markdown (.md) readme file.
  - This path is relative to the root of the collection.
  required: yes
  type: str

- key: authors
  description:
  - A list of the collection's content authors.
  - Can be just the name or in the format 'Full Name <email> (url) @nicks:irc/im.site#channel'.
  required: yes
  type: list

- key: description
  description:
  - A short summary description of the collection.
  type: str

- key: license
  description:
  - Either a single license or a list of licenses for content inside of a collection.
  - Ansible Galaxy currently only accepts L(SPDX,https://spdx.org/licenses/) licenses
  - This key is mutually exclusive with C(license_file).
  type: list

- key: license_file
  description:
  - The path to the license file for the collection.
  - This path is relative to the root of the collection.
  - This key is mutually exclusive with C(license).
  type: str

- key: tags
  description:
  - A list of tags you want to associate with the collection for indexing/searching.
  - A tag name has the same character requirements as C(namespace) and C(name).
  type: list

- key: dependencies
  description:
  - Collections that this collection requires to be installed for it to be usable.
  - The key of the dict is the collection label C(namespace.name).
  - The value is a version range
    L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification).
  - Multiple version range specifiers can be set and are separated by C(,).
  type: dict

- key: repository
  description:
  - The URL of the originating SCM repository.
  type: str

- key: documentation
  description:
  - The URL to any online docs.
  type: str

- key: homepage
  description:
  - The URL to the homepage of the collection/project.
  type: str

- key: issues
  description:
  - The URL to the collection issue tracker.
  type: str

- key: build_ignore
  description:
  - A list of file glob-like patterns used to filter any files or directories
    that should not be included in the build artifact.
  - A pattern is matched from the relative path of the file or directory of the
    collection directory.
  - This uses C(fnmatch) to match the files or directories.
  - Some directories and files like C(galaxy.yml), C(*.pyc), C(*.retry), and
    C(.git) are always filtered.
  - Mutually exclusive with C(manifest)
  type: list
  version_added: '2.10'

- key: manifest
  description:
  - A dict controlling use of manifest directives used in building the collection artifact.
  - The key C(directives) is a list of MANIFEST.in style L(directives,https://packaging.python.org/en/latest/guides/using-manifest-in/#manifest-in-commands)
  - The key C(omit_default_directives) is a boolean that controls whether the default directives are used
  - Mutually exclusive with C(build_ignore)
  type: sentinel
  version_added: '2.14'
