{
  "description": "Project is the Schema for the Projects API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "ProjectSpec defines the desired state of Project.\n\nThe properties of a project as returned by the Search API.",
      "properties": {
        "projectDescription": {
          "description": "A description for the project.\n\nRegex Pattern: `^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*$`",
          "type": "string"
        },
        "projectName": {
          "description": "The name of the project.\n\nRegex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,31}$`",
          "type": "string"
        },
        "serviceCatalogProvisioningDetails": {
          "description": "The product ID and provisioning artifact ID to provision a service catalog.\nThe provisioning artifact ID will default to the latest provisioning artifact\nID of the product, if you don't provide the provisioning artifact ID. For\nmore information, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).",
          "properties": {
            "pathID": {
              "type": "string"
            },
            "productID": {
              "type": "string"
            },
            "provisioningArtifactID": {
              "type": "string"
            },
            "provisioningParameters": {
              "items": {
                "description": "A key value pair used when you provision a project as a service catalog product.\nFor information, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "description": "An array of key-value pairs that you want to use to organize and track your\nAmazon Web Services resource costs. For more information, see Tagging Amazon\nWeb Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\nin the Amazon Web Services General Reference Guide.",
          "items": {
            "description": "A tag object that consists of a key and an optional value, used to manage\nmetadata for SageMaker Amazon Web Services resources.\n\nYou can add tags to notebook instances, training jobs, hyperparameter tuning\njobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations,\nand endpoints. For more information on adding tags to SageMaker resources,\nsee AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).\n\nFor more information on adding metadata to your Amazon Web Services resources\nwith tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).\nFor advice on best practices for managing Amazon Web Services resources with\ntagging, see Tagging Best Practices: Implement an Effective Amazon Web Services\nResource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "templateProviders": {
          "description": "An array of template provider configurations for creating infrastructure\nresources for the project.",
          "items": {
            "description": "Contains configuration details for a template provider. Only one type of\ntemplate provider can be specified.",
            "properties": {
              "cfnTemplateProvider": {
                "description": "The CloudFormation template provider configuration for creating infrastructure\nresources.",
                "properties": {
                  "parameters": {
                    "items": {
                      "description": "A key-value pair that represents a parameter for the CloudFormation stack.",
                      "properties": {
                        "key": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "roleARN": {
                    "type": "string"
                  },
                  "templateName": {
                    "type": "string"
                  },
                  "templateURL": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "projectName"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ProjectStatus defines the observed state of Project",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "creationTime": {
          "description": "The time when the project was created.",
          "format": "date-time",
          "type": "string"
        },
        "projectID": {
          "description": "The ID of the new project.\n\nRegex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*$`",
          "type": "string"
        },
        "projectStatus": {
          "description": "The status of the project.",
          "type": "string"
        },
        "serviceCatalogProvisionedProductDetails": {
          "description": "Information about a provisioned service catalog product.",
          "properties": {
            "provisionedProductID": {
              "type": "string"
            },
            "provisionedProductStatusMessage": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "templateProviderDetails": {
          "description": "An array of template providers associated with the project.",
          "items": {
            "description": "Details about a template provider configuration and associated provisioning\ninformation.",
            "properties": {
              "cfnTemplateProviderDetail": {
                "description": "Details about a CloudFormation template provider configuration and associated\nprovisioning information.",
                "properties": {
                  "parameters": {
                    "items": {
                      "description": "A key-value pair representing a parameter used in the CloudFormation stack.",
                      "properties": {
                        "key": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "roleARN": {
                    "type": "string"
                  },
                  "stackDetail": {
                    "description": "Details about the CloudFormation stack.",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "statusMessage": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "templateName": {
                    "type": "string"
                  },
                  "templateURL": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
