{
  "typeName" : "AWS::GroundStation::MissionProfile",
  "description" : "AWS Ground Station Mission Profile resource type for CloudFormation.",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ground-station.git",
  "definitions" : {
    "DataflowEdge" : {
      "type" : "object",
      "properties" : {
        "Source" : {
          "type" : "string"
        },
        "Destination" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Tag" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "type" : "string",
          "pattern" : "^[ a-zA-Z0-9\\+\\-=._:/@]{1,128}$"
        },
        "Value" : {
          "type" : "string",
          "pattern" : "^[ a-zA-Z0-9\\+\\-=._:/@]{1,256}$"
        }
      },
      "additionalProperties" : false,
      "required" : [ "Key", "Value" ]
    }
  },
  "properties" : {
    "Name" : {
      "description" : "A name used to identify a mission profile.",
      "type" : "string",
      "pattern" : "^[ a-zA-Z0-9_:-]{1,256}$"
    },
    "ContactPrePassDurationSeconds" : {
      "description" : "Pre-pass time needed before the contact.",
      "type" : "integer"
    },
    "ContactPostPassDurationSeconds" : {
      "description" : "Post-pass time needed after the contact.",
      "type" : "integer"
    },
    "MinimumViableContactDurationSeconds" : {
      "description" : "Visibilities with shorter duration than the specified minimum viable contact duration will be ignored when searching for available contacts.",
      "type" : "integer"
    },
    "DataflowEdges" : {
      "description" : "",
      "type" : "array",
      "minItems" : 1,
      "items" : {
        "$ref" : "#/definitions/DataflowEdge"
      }
    },
    "TrackingConfigArn" : {
      "type" : "string"
    },
    "Tags" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    },
    "Id" : {
      "type" : "string"
    },
    "Arn" : {
      "type" : "string"
    },
    "Region" : {
      "type" : "string"
    }
  },
  "required" : [ "Name", "MinimumViableContactDurationSeconds", "DataflowEdges", "TrackingConfigArn" ],
  "readOnlyProperties" : [ "/properties/Id", "/properties/Arn", "/properties/Region" ],
  "primaryIdentifier" : [ "/properties/Id", "/properties/Arn" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "groundstation:CreateMissionProfile", "groundstation:GetMissionProfile", "groundstation:TagResource" ]
    },
    "read" : {
      "permissions" : [ "groundstation:GetMissionProfile", "groundstation:ListTagsForResource" ]
    },
    "update" : {
      "permissions" : [ "groundstation:UpdateMissionProfile", "groundstation:GetMissionProfile", "groundstation:ListTagsForResource", "groundstation:TagResource", "groundstation:UntagResource" ]
    },
    "delete" : {
      "permissions" : [ "groundstation:DeleteMissionProfile", "groundstation:GetMissionProfile" ]
    },
    "list" : {
      "permissions" : [ "groundstation:ListMissionProfiles" ]
    }
  },
  "additionalProperties" : false
}