manifest.ymledit

Integration metadata, like version, name, license level, description, category, icon and screenshot mappings, and policy template definitions.

required

Included from the package-spec repository. This will update when the spec is updated.

##
## Describes the specification for the package's main manifest.yml file
##
spec:
  # Everything under here follows JSON schema (https://json-schema.org/), written as YAML for readability
  type: object
  additionalProperties: false
  definitions:
    categories:
      description: Categories to which this package belongs.
      type: array
      items:
        type: string
        enum:
          - aws
          - azure
          - cloud
          - config_management
          - containers
          - crm
          - custom
          - datastore
          - elastic_stack
          - google_cloud
          - kubernetes
          - languages
          - message_queue
          - monitoring
          - network
          - notification
          - os_system
          - productivity
          - security
          - support
          - ticketing
          - version_control
          - web
        examples:
          - web
    icons:
      description: List of icons for by this package.
      type: array
      items:
        type: object
        additionalProperties: false
        properties:
          src:
            description: Relative path to the icon's image file.
            type: string
            format: relative-path
            examples:
              - "/img/logo_apache.svg"
          title:
            description: Title of icon.
            type: string
            examples:
              - "Apache Logo"
          size:
            description: Size of the icon.
            type: string
            examples:
              - "32x32"
          type:
            description: MIME type of the icon image file.
            type: string
            examples:
              - "image/svg+xml"
        required:
          - src
    screenshots:
      description: List of screenshots of Kibana assets created by this package.
      type: array
      items:
        type: object
        additionalProperties: false
        properties:
          src:
            description: Relative path to the screenshot's image file.
            type: string
            format: relative-path
            examples:
              - "/img/apache_httpd_server_status.png"
          title:
            description: Title of screenshot.
            type: string
            examples:
              - "Apache HTTPD Server Status"
          size:
            description: Size of the screenshot.
            type: string
            examples:
              - "1215x1199"
          type:
            description: MIME type of the screenshot image file.
            type: string
            examples:
              - "image/png"
        required:
          - src
          - title
    version:
      type: string
      pattern: '^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$'
      examples:
        - "1.0.0"
        - "1.0.0-SNAPSHOT"
        - "1.0.0-dev.1"
  properties:
    format_version:
      description: The version of the package specification format used by this package.
      $ref: "#/definitions/version"
    name:
      description: The name of the package.
      type: string
      pattern: '^[a-z0-9_]+$'
      examples:
      - apache
    title:
      description: The title of the package.
      type: string
      examples:
      - Apache
    description:
      description: A longer description of the package.
      type: string
      examples:
      - Apache Integration
    version:
      description: The version of the package.
      $ref: "#/definitions/version"
    license:
      description: The license under which the package is being released.
      type: string
      enum:
      - basic
      default: basic
      examples:
      - basic
    type:
      description: The type of package.
      type: string
      enum:
      - integration
      examples:
      - integration
    release:
      description: The stability of the package.
      type: string
      enum:
      - experimental
      - beta
      - ga
      examples:
      - experimental
    categories:
      $ref: "#/definitions/categories"
    conditions:
      description: Conditions under which this package can be installed.
      type: object
      additionalProperties: false
      properties:
        kibana:
          description: Kibana conditions
          type: object
          additionalProperties: false
          properties:
            version:
              type: string
              description: Kibana versions compatible with this package.
              examples:
                - ">=7.9.0"
    policy_templates:
      description: List of policy templates offered by this package.
      type: array
      items:
        type: object
        additionalProperties: false
        properties:
          name:
            description: Name of policy template.
            type: string
            examples:
              - apache
          title:
            description: Title of policy template.
            type: string
            examples:
              - Apache logs and metrics
          categories:
            $ref: "#/definitions/categories"
          description:
            description: Longer description of policy template.
            type: string
            examples:
              - Collect logs and metrics from Apache instances
          data_streams:
            description: List of data streams compatible with the policy template.
            type: array
            items:
              type: string
              description: Data stream name
              format: data-stream-name
              examples:
                - ec2_logs
                - spamfirewall
                - access
          inputs:
            description: List of inputs supported by policy template.
            type: array
            items:
              type: object
              additionalProperties: false
              properties:
                type:
                  description: Type of input.
                  type: string
                title:
                  description: Title of input.
                  type: string
                  examples:
                    - Collect logs from Apache instances
                description:
                  description: Longer description of input.
                  type: string
                  examples:
                    - Collecting Apache access and error logs
                template_path:
                  description: Path of the config template for the input.
                  type: string
                  examples:
                    - ./agent/input/template.yml.hbs
                input_group:
                  description: Name of the input group
                  type: string
                  enum:
                    - logs
                    - metrics
                multi:
                  description: Can input be defined multiple times
                  type: boolean
                  default: false
                vars:
                  $ref: "./data_stream/manifest.spec.yml#/definitions/vars"
              required:
                - type
                - title
                - description
          multiple:
            type: boolean
          icons:
            $ref: "#/definitions/icons"
          screenshots:
            $ref: "#/definitions/screenshots"
          vars:
            $ref: "./data_stream/manifest.spec.yml#/definitions/vars"
        required:
          - name
          - title
          - description
    icons:
      $ref: "#/definitions/icons"
    screenshots:
      $ref: "#/definitions/screenshots"
    vars:
      $ref: "./data_stream/manifest.spec.yml#/definitions/vars"
    owner:
      type: object
      additionalProperties: false
      properties:
        github:
          description: GitHub repository name of package maintainer.
          type: string
          pattern: '^(([a-zA-Z0-9-]+)|([a-zA-Z0-9-]+\/[a-zA-Z0-9-]+))$'
      required:
      - github
    elasticsearch:
      description: Elasticsearch requirements
      type: object
      additionalProperties: false
      properties:
        privileges:
          description: Elasticsearch privilege requirements
          type: object
          additionalProperties: false
          properties:
            cluster:
              # Available cluster privileges are available at https://www.elastic.co/guide/en/elasticsearch/reference/7.16/security-privileges.html#privileges-list-cluster
              description: Elasticsearch cluster privilege requirements
              type: array
              items:
                type: string
  required:
  - format_version
  - name
  - title
  - description
  - version
  - release
  - owner