# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
  name: xobjectstorages.awsblueprints.io
spec:
  claimNames:
    kind: ObjectStorage
    plural: objectstorages
  group: awsblueprints.io
  names:
    kind: XObjectStorage
    plural: xobjectstorages
  connectionSecretKeys:
    - region
    - bucket-name
    - s3-put-policy
  versions:
    - name: v1alpha1
      served: true
      referenceable: true
      schema:
        openAPIV3Schema:
          properties:
            spec:
              description: ObjectStorageSpec defines the desired state of ObjectStorage
              properties:
                resourceConfig:
                  description: ResourceConfig defines general properties of this AWS
                    resource.
                  properties:
                    deletionPolicy:
                      description: Defaults to Delete
                      enum:
                        - Delete
                        - Orphan
                      type: string
                    name:
                      description: Set the name of this resource in AWS to the value
                        provided by this field.
                      type: string
                    providerConfigName:
                      type: string
                    region:
                      type: string
                    tags:
                      items:
                        properties:
                          key:
                            type: string
                          value:
                            type: string
                        required:
                          - key
                          - value
                        type: object
                      type: array
                  required:
                    - providerConfigName
                    - region
                    - tags
                  type: object
              required:
                - resourceConfig
              type: object
            status:
              description: ObjectStorageStatus defines the observed state of ObjectStorage
              properties:
                bucketName:
                  type: string
                bucketArn:
                  type: string
              type: object
          type: object
