# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
# ---------------------------------------------------------------------------

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: builds.camel.apache.org
  labels:
    app: "camel-k"
spec:
  group: camel.apache.org
  scope: Namespaced
  versions:
  - name: v1alpha1
    served: true
    storage: false
  - name: v1
    served: true
    storage: true
  names:
    kind: Build
    listKind: BuildList
    plural: builds
    singular: build
  subresources:
    status: {}
  additionalPrinterColumns:
    - name: Phase
      type: string
      description: The build phase
      JSONPath: .status.phase
    - name: Age
      type: date
      description: The time at which the build was created
      JSONPath: .metadata.creationTimestamp
    - name: Started
      type: date
      description: The time at which the build was last (re-)started
      JSONPath: .status.startedAt
    - name: Duration
      type: string
      # Change when CRD uses OpenAPI spec v3
      # https://github.com/OAI/OpenAPI-Specification/issues/845
      # format: duration
      description: The build last execution duration
      JSONPath: .status.duration
    - name: Attempts
      type: integer
      description: The number of execution attempts
      JSONPath: .status.failure.recovery.attempt
