{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-dlm-lifecyclepolicy.json",
  "title": "AWSDLMLifecyclePolicyProperties",
  "description": "Resource Type definition for AWS::DLM::LifecyclePolicy. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-dlm-lifecyclepolicy.json",
    "sourceSha256": "76a5aae594d270ca414f480b47996462a40d7402fb21b944fe0c6c8d404ee053"
  },
  "type": "object",
  "properties": {
    "ExecutionRoleArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Description": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "State": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "PolicyDetails": {
      "$ref": "#/$defs/PolicyDetails"
    },
    "Tags": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::DLM::LifecyclePolicy",
  "readOnlyProperties": [
    "/properties/Id",
    "/properties/Arn"
  ],
  "$defs": {
    "Action": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyActionDefinition",
      "properties": {
        "CrossRegionCopy": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/CrossRegionCopyAction"
          }
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "CrossRegionCopy",
        "Name"
      ],
      "additionalProperties": false
    },
    "Parameters": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyParametersDefinition",
      "properties": {
        "ExcludeBootVolume": {
          "type": "boolean"
        },
        "NoReboot": {
          "type": "boolean"
        },
        "ExcludeDataVolumeTags": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      },
      "additionalProperties": false
    },
    "CrossRegionCopyRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyCrossRegionCopyRuleDefinition",
      "properties": {
        "TargetRegion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Target": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DeprecateRule": {
          "$ref": "#/$defs/CrossRegionCopyDeprecateRule"
        },
        "Encrypted": {
          "type": "boolean"
        },
        "CmkArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "RetainRule": {
          "$ref": "#/$defs/CrossRegionCopyRetainRule"
        },
        "CopyTags": {
          "type": "boolean"
        }
      },
      "required": [
        "Encrypted"
      ],
      "additionalProperties": false
    },
    "EncryptionConfiguration": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyEncryptionConfigurationDefinition",
      "properties": {
        "Encrypted": {
          "type": "boolean"
        },
        "CmkArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Encrypted"
      ],
      "additionalProperties": false
    },
    "CrossRegionCopyRetainRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyCrossRegionCopyRetainRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Interval": {
          "type": "integer"
        }
      },
      "required": [
        "IntervalUnit",
        "Interval"
      ],
      "additionalProperties": false
    },
    "ArchiveRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyArchiveRuleDefinition",
      "properties": {
        "RetainRule": {
          "$ref": "#/$defs/ArchiveRetainRule"
        }
      },
      "required": [
        "RetainRule"
      ],
      "additionalProperties": false
    },
    "EventParameters": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyEventParametersDefinition",
      "properties": {
        "DescriptionRegex": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EventType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SnapshotOwner": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "EventType",
        "SnapshotOwner"
      ],
      "additionalProperties": false
    },
    "RetainRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyRetainRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Count": {
          "type": "integer"
        },
        "Interval": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "CrossRegionCopyAction": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyCrossRegionCopyActionDefinition",
      "properties": {
        "Target": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EncryptionConfiguration": {
          "$ref": "#/$defs/EncryptionConfiguration"
        },
        "RetainRule": {
          "$ref": "#/$defs/CrossRegionCopyRetainRule"
        }
      },
      "required": [
        "Target",
        "EncryptionConfiguration"
      ],
      "additionalProperties": false
    },
    "EventSource": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyEventSourceDefinition",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Parameters": {
          "$ref": "#/$defs/EventParameters"
        }
      },
      "required": [
        "Type"
      ],
      "additionalProperties": false
    },
    "DeprecateRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyDeprecateRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Count": {
          "type": "integer"
        },
        "Interval": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "CrossRegionCopyDeprecateRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyCrossRegionCopyDeprecateRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Interval": {
          "type": "integer"
        }
      },
      "required": [
        "IntervalUnit",
        "Interval"
      ],
      "additionalProperties": false
    },
    "ArchiveRetainRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyArchiveRetainRuleDefinition",
      "properties": {
        "RetentionArchiveTier": {
          "$ref": "#/$defs/RetentionArchiveTier"
        }
      },
      "required": [
        "RetentionArchiveTier"
      ],
      "additionalProperties": false
    },
    "CreateRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyCreateRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CronExpression": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Times": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Interval": {
          "type": "integer"
        },
        "Location": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "Schedule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyScheduleDefinition",
      "properties": {
        "ShareRules": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/ShareRule"
          }
        },
        "DeprecateRule": {
          "$ref": "#/$defs/DeprecateRule"
        },
        "TagsToAdd": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Tag"
          }
        },
        "CreateRule": {
          "$ref": "#/$defs/CreateRule"
        },
        "VariableTags": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Tag"
          }
        },
        "FastRestoreRule": {
          "$ref": "#/$defs/FastRestoreRule"
        },
        "ArchiveRule": {
          "$ref": "#/$defs/ArchiveRule"
        },
        "RetainRule": {
          "$ref": "#/$defs/RetainRule"
        },
        "CrossRegionCopyRules": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/CrossRegionCopyRule"
          }
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CopyTags": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "FastRestoreRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyFastRestoreRuleDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Count": {
          "type": "integer"
        },
        "AvailabilityZones": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Interval": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "PolicyDetails": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyPolicyDetailsDefinition",
      "properties": {
        "ResourceTypes": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Schedules": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Schedule"
          }
        },
        "PolicyType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EventSource": {
          "$ref": "#/$defs/EventSource"
        },
        "Parameters": {
          "$ref": "#/$defs/Parameters"
        },
        "Actions": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Action"
          }
        },
        "TargetTags": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/Tag"
          }
        },
        "ResourceLocations": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "RetentionArchiveTier": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyRetentionArchiveTierDefinition",
      "properties": {
        "IntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Count": {
          "type": "integer"
        },
        "Interval": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "Tag": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyTagDefinition",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Key"
      ],
      "additionalProperties": false
    },
    "ShareRule": {
      "type": "object",
      "title": "AWSDLMLifecyclePolicyShareRuleDefinition",
      "properties": {
        "TargetAccounts": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "UnshareIntervalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "UnshareInterval": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false
}
