{
  "additionalProperties" : false,
  "createOnlyProperties" : [ "/properties/Name" ],
  "definitions" : {
    "EndPoint" : {
      "additionalProperties" : false,
      "properties" : {
        "KinesisStreamConfig" : {
          "$ref" : "#/definitions/KinesisStreamConfig",
          "description" : "Contains information about the Amazon Kinesis data stream where you are sending real-time log data in a real-time log configuration."
        },
        "StreamType" : {
          "type" : "string",
          "description" : "The type of data stream where you are sending real-time log data. The only valid value is ``Kinesis``."
        }
      },
      "required" : [ "KinesisStreamConfig", "StreamType" ],
      "type" : "object",
      "description" : "Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration."
    },
    "KinesisStreamConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "RoleArn" : {
          "type" : "string",
          "description" : "The Amazon Resource Name (ARN) of an IAMlong (IAM) role that CloudFront can use to send real-time log data to your Kinesis data stream.\n For more information the IAM role, see [Real-time log configuration IAM role](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) in the *Amazon CloudFront Developer Guide*."
        },
        "StreamArn" : {
          "type" : "string",
          "description" : "The Amazon Resource Name (ARN) of the Kinesis data stream where you are sending real-time log data."
        }
      },
      "required" : [ "RoleArn", "StreamArn" ],
      "type" : "object",
      "description" : "Contains information about the Amazon Kinesis data stream where you are sending real-time log data."
    }
  },
  "description" : "A real-time log configuration.",
  "handlers" : {
    "create" : {
      "permissions" : [ "cloudfront:CreateRealtimeLogConfig", "iam:PassRole" ]
    },
    "delete" : {
      "permissions" : [ "cloudfront:DeleteRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig" ]
    },
    "list" : {
      "permissions" : [ "cloudfront:ListRealtimeLogConfigs" ]
    },
    "read" : {
      "permissions" : [ "cloudfront:GetRealtimeLogConfig" ]
    },
    "update" : {
      "permissions" : [ "cloudfront:UpdateRealtimeLogConfig", "cloudfront:GetRealtimeLogConfig", "iam:PassRole" ]
    }
  },
  "primaryIdentifier" : [ "/properties/Arn" ],
  "properties" : {
    "Arn" : {
      "type" : "string",
      "description" : ""
    },
    "EndPoints" : {
      "items" : {
        "$ref" : "#/definitions/EndPoint"
      },
      "minItems" : 1,
      "type" : "array",
      "uniqueItems" : false,
      "description" : "Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration."
    },
    "Fields" : {
      "items" : {
        "type" : "string"
      },
      "minItems" : 1,
      "type" : "array",
      "uniqueItems" : false,
      "description" : "A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream.\n For more information about fields, see [Real-time log configuration fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) in the *Amazon CloudFront Developer Guide*."
    },
    "Name" : {
      "type" : "string",
      "description" : "The unique name of this real-time log configuration."
    },
    "SamplingRate" : {
      "maximum" : 100,
      "minimum" : 1,
      "multipleOf" : 1.0,
      "type" : "number",
      "description" : "The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive."
    }
  },
  "readOnlyProperties" : [ "/properties/Arn" ],
  "required" : [ "Name", "EndPoints", "Fields", "SamplingRate" ],
  "tagging" : {
    "cloudFormationSystemTags" : false,
    "tagOnCreate" : false,
    "tagUpdatable" : false,
    "taggable" : false
  },
  "typeName" : "AWS::CloudFront::RealtimeLogConfig"
}