{
  "description": "NotebookInstanceLifecycleConfig is the Schema for the NotebookInstanceLifecycleConfigs 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": "NotebookInstanceLifecycleConfigSpec defines the desired state of NotebookInstanceLifecycleConfig.",
      "properties": {
        "notebookInstanceLifecycleConfigName": {
          "description": "The name of the lifecycle configuration.\n\nRegex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*$`",
          "type": "string"
        },
        "onCreate": {
          "description": "A shell script that runs only once, when you create a notebook instance.\nThe shell script must be a base64-encoded string.",
          "items": {
            "description": "Contains the notebook instance lifecycle configuration script.\n\nEach lifecycle configuration script has a limit of 16384 characters.\n\nThe value of the $PATH environment variable that is available to both scripts\nis /sbin:bin:/usr/sbin:/usr/bin.\n\nView Amazon CloudWatch Logs for notebook instance lifecycle configurations\nin log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].\n\nLifecycle configuration scripts cannot run for longer than 5 minutes. If\na script runs for longer than 5 minutes, it fails and the notebook instance\nis not created or started.\n\nFor information about notebook instance lifestyle configurations, see Step\n2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).",
            "properties": {
              "content": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "onStart": {
          "description": "A shell script that runs every time you start a notebook instance, including\nwhen you create the notebook instance. The shell script must be a base64-encoded\nstring.",
          "items": {
            "description": "Contains the notebook instance lifecycle configuration script.\n\nEach lifecycle configuration script has a limit of 16384 characters.\n\nThe value of the $PATH environment variable that is available to both scripts\nis /sbin:bin:/usr/sbin:/usr/bin.\n\nView Amazon CloudWatch Logs for notebook instance lifecycle configurations\nin log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].\n\nLifecycle configuration scripts cannot run for longer than 5 minutes. If\na script runs for longer than 5 minutes, it fails and the notebook instance\nis not created or started.\n\nFor information about notebook instance lifestyle configurations, see Step\n2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).",
            "properties": {
              "content": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "tags": {
          "description": "An array of key-value pairs. You can use tags to categorize your Amazon Web\nServices resources in different ways, for example, by purpose, owner, or\nenvironment. For more information, see Tagging Amazon Web Services Resources\n(https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).",
          "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"
        }
      },
      "required": [
        "notebookInstanceLifecycleConfigName"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "NotebookInstanceLifecycleConfigStatus defines the observed state of NotebookInstanceLifecycleConfig",
      "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": "A timestamp that tells when the lifecycle configuration was created.",
          "format": "date-time",
          "type": "string"
        },
        "lastModifiedTime": {
          "description": "A timestamp that tells when the lifecycle configuration was last modified.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
