{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-iotsitewise-accesspolicy.json",
  "title": "AWSIoTSiteWiseAccessPolicyProperties",
  "description": "Resource schema for AWS::IoTSiteWise::AccessPolicy. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-iotsitewise-accesspolicy.json",
    "sourceSha256": "6a68e6ff784ec068d62fde35b7a5a4487f5a58d425637371c92e561d3a9283a7"
  },
  "type": "object",
  "properties": {
    "AccessPolicyIdentity": {
      "description": "The identity for this access policy. Choose either a user or a group but not both.",
      "$ref": "#/$defs/AccessPolicyIdentity"
    },
    "AccessPolicyPermission": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The permission level for this access policy. Valid values are ADMINISTRATOR or VIEWER."
    },
    "AccessPolicyResource": {
      "description": "The AWS IoT SiteWise Monitor resource for this access policy. Choose either portal or project but not both.",
      "$ref": "#/$defs/AccessPolicyResource"
    }
  },
  "typeName": "AWS::IoTSiteWise::AccessPolicy",
  "primaryIdentifier": [
    "/properties/AccessPolicyId"
  ],
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git",
  "additionalProperties": false,
  "readOnlyProperties": [
    "/properties/AccessPolicyArn",
    "/properties/AccessPolicyId"
  ],
  "$defs": {
    "User": {
      "description": "Contains information for a user identity in an access policy.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyUserDefinition",
      "properties": {
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The AWS SSO ID of the user."
        }
      },
      "additionalProperties": false
    },
    "IamUser": {
      "description": "Contains information for an IAM user identity in an access policy.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyIamUserDefinition",
      "properties": {
        "arn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ARN of the IAM user."
        }
      },
      "additionalProperties": false
    },
    "IamRole": {
      "description": "Contains information for an IAM role identity in an access policy.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyIamRoleDefinition",
      "properties": {
        "arn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ARN of the IAM role."
        }
      },
      "additionalProperties": false
    },
    "Portal": {
      "description": "A portal resource.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyPortalDefinition",
      "properties": {
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ID of the portal."
        }
      },
      "additionalProperties": false
    },
    "Project": {
      "description": "A project resource.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyProjectDefinition",
      "properties": {
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ID of the project."
        }
      },
      "additionalProperties": false
    },
    "AccessPolicyIdentity": {
      "description": "The identity for this access policy. Choose either an SSO user or group or an IAM user or role.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyAccessPolicyIdentityDefinition",
      "properties": {
        "User": {
          "$ref": "#/$defs/User"
        },
        "IamUser": {
          "$ref": "#/$defs/IamUser"
        },
        "IamRole": {
          "$ref": "#/$defs/IamRole"
        }
      },
      "additionalProperties": false
    },
    "AccessPolicyResource": {
      "description": "The AWS IoT SiteWise Monitor resource for this access policy. Choose either portal or project but not both.",
      "type": "object",
      "title": "AWSIoTSiteWiseAccessPolicyAccessPolicyResourceDefinition",
      "properties": {
        "Portal": {
          "$ref": "#/$defs/Portal"
        },
        "Project": {
          "$ref": "#/$defs/Project"
        }
      },
      "additionalProperties": false
    }
  },
  "taggable": false,
  "required": [
    "AccessPolicyIdentity",
    "AccessPolicyPermission",
    "AccessPolicyResource"
  ]
}
