{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-nimblestudio-studiocomponent.json",
  "title": "AWSNimbleStudioStudioComponentProperties",
  "description": "Represents a studio component that connects a non-Nimble Studio resource in your account to your studio. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-nimblestudio-studiocomponent.json",
    "sourceSha256": "07b5b49537f19af6f2f59d7e445b469e1420904508233e9ec1583991abb0c1e8"
  },
  "type": "object",
  "properties": {
    "Configuration": {
      "$ref": "#/$defs/StudioComponentConfiguration"
    },
    "Description": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 256,
          "minLength": 0
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "<p>The description.</p>"
    },
    "Ec2SecurityGroupIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 30,
      "minItems": 0,
      "description": "<p>The EC2 security groups that control access to the studio component.</p>"
    },
    "InitializationScripts": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/StudioComponentInitializationScript"
      },
      "description": "<p>Initialization scripts for studio components.</p>"
    },
    "Name": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64,
          "minLength": 0
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "<p>The name for the studio component.</p>"
    },
    "RuntimeRoleArn": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 2048,
          "minLength": 0
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "ScriptParameters": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ScriptParameterKeyValue"
      },
      "maxItems": 30,
      "minItems": 0,
      "description": "<p>Parameters for the studio component scripts.</p>"
    },
    "SecureInitializationRoleArn": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 2048,
          "minLength": 0
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "StudioId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "<p>The studio ID. </p>"
    },
    "Subtype": {
      "$ref": "#/$defs/StudioComponentSubtype"
    },
    "Tags": {
      "$ref": "#/$defs/Tags"
    },
    "Type": {
      "$ref": "#/$defs/StudioComponentType"
    }
  },
  "typeName": "AWS::NimbleStudio::StudioComponent",
  "$defs": {
    "ActiveDirectoryComputerAttribute": {
      "type": "object",
      "description": "<p>An LDAP attribute of an Active Directory computer account, in the form of a name:value\n            pair.</p>",
      "properties": {
        "Name": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 40,
              "minLength": 1
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The name for the LDAP attribute.</p>"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 64,
              "minLength": 1
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The value for the LDAP attribute.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentActiveDirectoryComputerAttributeDefinition",
      "additionalProperties": false
    },
    "ActiveDirectoryConfiguration": {
      "type": "object",
      "description": "<p>The configuration for a Microsoft Active Directory (Microsoft AD) studio\n            resource.</p>",
      "properties": {
        "ComputerAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ActiveDirectoryComputerAttribute"
          },
          "maxItems": 50,
          "minItems": 0,
          "description": "<p>A collection of custom attributes for an Active Directory computer.</p>"
        },
        "DirectoryId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The directory ID of the Directory Service for Microsoft Active Directory to access\n            using this studio component.</p>"
        },
        "OrganizationalUnitDistinguishedName": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The distinguished name (DN) and organizational unit (OU) of an Active Directory\n            computer.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentActiveDirectoryConfigurationDefinition",
      "additionalProperties": false
    },
    "ComputeFarmConfiguration": {
      "type": "object",
      "description": "<p>The configuration for a render farm that is associated with a studio resource.</p>",
      "properties": {
        "ActiveDirectoryUser": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The name of an Active Directory user that is used on ComputeFarm worker\n            instances.</p>"
        },
        "Endpoint": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The endpoint of the ComputeFarm that is accessed by the studio component\n            resource.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentComputeFarmConfigurationDefinition",
      "additionalProperties": false
    },
    "LaunchProfilePlatform": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "LINUX",
            "WINDOWS"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSNimbleStudioStudioComponentLaunchProfilePlatformDefinition"
    },
    "LicenseServiceConfiguration": {
      "type": "object",
      "description": "<p>The configuration for a license service that is associated with a studio\n            resource.</p>",
      "properties": {
        "Endpoint": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The endpoint of the license service that is accessed by the studio component\n            resource.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentLicenseServiceConfigurationDefinition",
      "additionalProperties": false
    },
    "ScriptParameterKeyValue": {
      "type": "object",
      "description": "<p>A parameter for a studio component script, in the form of a key:value pair.</p>",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 64,
              "minLength": 1,
              "pattern": "^[a-zA-Z_][a-zA-Z0-9_]+$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>A script parameter key.</p>"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 256,
              "minLength": 1
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>A script parameter value.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentScriptParameterKeyValueDefinition",
      "additionalProperties": false
    },
    "SharedFileSystemConfiguration": {
      "type": "object",
      "description": "<p>The configuration for a shared file storage system that is associated with a studio\n            resource.</p>",
      "properties": {
        "Endpoint": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The endpoint of the shared file system that is accessed by the studio component\n            resource.</p>"
        },
        "FileSystemId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The unique identifier for a file system.</p>"
        },
        "LinuxMountPoint": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 128,
              "minLength": 0,
              "pattern": "^(/?|(\\$HOME)?(/[^/\\n\\s\\\\]+)*)$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The mount location for a shared file system on a Linux virtual workstation.</p>"
        },
        "ShareName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The name of the file share.</p>"
        },
        "WindowsMountDrive": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^[A-Z]$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The mount location for a shared file system on a Windows virtual workstation.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentSharedFileSystemConfigurationDefinition",
      "additionalProperties": false
    },
    "StudioComponentConfiguration": {
      "description": "<p>The configuration of the studio component, based on component type.</p>",
      "oneOf": [
        {
          "type": "object",
          "title": "ActiveDirectoryConfiguration",
          "properties": {
            "ActiveDirectoryConfiguration": {
              "$ref": "#/$defs/ActiveDirectoryConfiguration"
            }
          },
          "required": [
            "ActiveDirectoryConfiguration"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "ComputeFarmConfiguration",
          "properties": {
            "ComputeFarmConfiguration": {
              "$ref": "#/$defs/ComputeFarmConfiguration"
            }
          },
          "required": [
            "ComputeFarmConfiguration"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "LicenseServiceConfiguration",
          "properties": {
            "LicenseServiceConfiguration": {
              "$ref": "#/$defs/LicenseServiceConfiguration"
            }
          },
          "required": [
            "LicenseServiceConfiguration"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "SharedFileSystemConfiguration",
          "properties": {
            "SharedFileSystemConfiguration": {
              "$ref": "#/$defs/SharedFileSystemConfiguration"
            }
          },
          "required": [
            "SharedFileSystemConfiguration"
          ],
          "additionalProperties": false
        }
      ],
      "title": "AWSNimbleStudioStudioComponentStudioComponentConfigurationDefinition"
    },
    "StudioComponentInitializationScript": {
      "type": "object",
      "description": "<p>Initialization scripts for studio components.</p>",
      "properties": {
        "LaunchProfileProtocolVersion": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 10,
              "minLength": 0,
              "pattern": "^2021\\-03\\-31$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The version number of the protocol that is used by the launch profile. The only valid\n            version is \"2021-03-31\".</p>"
        },
        "Platform": {
          "$ref": "#/$defs/LaunchProfilePlatform"
        },
        "RunContext": {
          "$ref": "#/$defs/StudioComponentInitializationScriptRunContext"
        },
        "Script": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 5120,
              "minLength": 1
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "<p>The initialization script.</p>"
        }
      },
      "title": "AWSNimbleStudioStudioComponentStudioComponentInitializationScriptDefinition",
      "additionalProperties": false
    },
    "StudioComponentInitializationScriptRunContext": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "SYSTEM_INITIALIZATION",
            "USER_INITIALIZATION"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSNimbleStudioStudioComponentStudioComponentInitializationScriptRunContextDefinition"
    },
    "StudioComponentSubtype": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "AWS_MANAGED_MICROSOFT_AD",
            "AMAZON_FSX_FOR_WINDOWS",
            "AMAZON_FSX_FOR_LUSTRE",
            "CUSTOM"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSNimbleStudioStudioComponentStudioComponentSubtypeDefinition"
    },
    "StudioComponentType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "ACTIVE_DIRECTORY",
            "SHARED_FILE_SYSTEM",
            "COMPUTE_FARM",
            "LICENSE_SERVICE",
            "CUSTOM"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSNimbleStudioStudioComponentStudioComponentTypeDefinition"
    },
    "Tags": {
      "type": "object",
      "additionalProperties": false,
      "title": "AWSNimbleStudioStudioComponentTagsDefinition",
      "patternProperties": {
        ".+": {
          "type": "string"
        }
      }
    }
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio",
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/StudioComponentId",
    "/properties/StudioId"
  ],
  "required": [
    "StudioId",
    "Name",
    "Type"
  ],
  "readOnlyProperties": [
    "/properties/StudioComponentId"
  ],
  "createOnlyProperties": [
    "/properties/StudioId",
    "/properties/Subtype",
    "/properties/Tags"
  ]
}
