{
  "typeName" : "AWS::ConnectCampaignsV2::Campaign",
  "description" : "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect-campaigns",
  "definitions" : {
    "CampaignName" : {
      "type" : "string",
      "maxLength" : 127,
      "minLength" : 1,
      "description" : "Campaign name"
    },
    "CampaignType" : {
      "type" : "string",
      "enum" : [ "MANAGED", "JOURNEY" ],
      "description" : "Campaign type"
    },
    "InstanceId" : {
      "type" : "string",
      "maxLength" : 256,
      "minLength" : 0,
      "description" : "Amazon Connect Instance Id",
      "pattern" : "^[a-zA-Z0-9_\\-.]*$"
    },
    "Capacity" : {
      "type" : "number",
      "maximum" : 1,
      "minimum" : 0.01,
      "description" : "Allocates outbound capacity for the specific channel of this campaign between multiple active campaigns"
    },
    "TimeoutDuration" : {
      "type" : "integer",
      "maximum" : 300,
      "minimum" : 1,
      "description" : "Timeout duration for a preview contact in seconds"
    },
    "RingTimeout" : {
      "type" : "integer",
      "maximum" : 60,
      "minimum" : 15,
      "description" : "Maximum ring time for outbound calls in seconds"
    },
    "QueueId" : {
      "type" : "string",
      "maxLength" : 500,
      "description" : "The queue for the call"
    },
    "ContactFlowId" : {
      "type" : "string",
      "maxLength" : 500,
      "description" : "The identifier of the contact flow for the outbound call"
    },
    "SourcePhoneNumber" : {
      "type" : "string",
      "maxLength" : 100,
      "description" : "The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue."
    },
    "Arn" : {
      "type" : "string",
      "maxLength" : 500,
      "minLength" : 20,
      "description" : "Arn",
      "pattern" : "^arn:.*$"
    },
    "EmailAddress" : {
      "type" : "string",
      "maxLength" : 255,
      "minLength" : 1,
      "description" : "Email address used for Email messages",
      "pattern" : "^[\\w-\\.\\+]+@([\\w-]+\\.)+[\\w-]{2,4}$"
    },
    "SourceEmailAddressDisplayName" : {
      "type" : "string",
      "maxLength" : 256,
      "minLength" : 0,
      "description" : "The name of the source email address display name"
    },
    "BandwidthAllocation" : {
      "type" : "number",
      "maximum" : 1,
      "minimum" : 0,
      "description" : "The bandwidth allocation of a queue resource."
    },
    "TimeStamp" : {
      "type" : "string",
      "description" : "Timestamp with no UTC offset or timezone",
      "maxLength" : 100
    },
    "TimeZone" : {
      "type" : "string",
      "description" : "Time Zone Id in the IANA format"
    },
    "Iso8601Duration" : {
      "type" : "string",
      "description" : "Time duration in ISO 8601 format",
      "maxLength" : 50,
      "minLength" : 0,
      "pattern" : "^P(?:([-+]?[0-9]+)D)?(T(?:([-+]?[0-9]+)H)?(?:([-+]?[0-9]+)M)?(?:([-+]?[0-9]+)(?:[.,]([0-9]{0,9}))?S)?)?$"
    },
    "Iso8601Date" : {
      "type" : "string",
      "description" : "Date in ISO 8601 format, e.g. 2024-01-01",
      "pattern" : "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "Iso8601Time" : {
      "type" : "string",
      "description" : "Time in ISO 8601 format, e.g. T23:11",
      "pattern" : "^T\\d{2}:\\d{2}$"
    },
    "DayOfWeek" : {
      "type" : "string",
      "description" : "Day of week",
      "enum" : [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ]
    },
    "AgentAction" : {
      "type" : "string",
      "description" : "Actions that can performed on a contact by an agent",
      "enum" : [ "DISCARD" ]
    },
    "AgentActions" : {
      "type" : "array",
      "insertionOrder" : false,
      "description" : "Actions that can be performed by agent during preview phase",
      "items" : {
        "$ref" : "#/definitions/AgentAction"
      }
    },
    "TimeoutConfig" : {
      "type" : "object",
      "description" : "Timeout Config for preview contacts",
      "properties" : {
        "DurationInSeconds" : {
          "$ref" : "#/definitions/TimeoutDuration"
        }
      }
    },
    "PredictiveConfig" : {
      "type" : "object",
      "description" : "Predictive config",
      "properties" : {
        "BandwidthAllocation" : {
          "$ref" : "#/definitions/BandwidthAllocation"
        }
      },
      "required" : [ "BandwidthAllocation" ],
      "additionalProperties" : false
    },
    "ProgressiveConfig" : {
      "type" : "object",
      "description" : "Progressive config",
      "properties" : {
        "BandwidthAllocation" : {
          "$ref" : "#/definitions/BandwidthAllocation"
        }
      },
      "required" : [ "BandwidthAllocation" ],
      "additionalProperties" : false
    },
    "AgentlessConfig" : {
      "type" : "object",
      "description" : "Agentless config",
      "required" : [ ],
      "additionalProperties" : false
    },
    "PreviewConfig" : {
      "type" : "object",
      "description" : "Preview config",
      "properties" : {
        "BandwidthAllocation" : {
          "$ref" : "#/definitions/BandwidthAllocation"
        },
        "TimeoutConfig" : {
          "$ref" : "#/definitions/TimeoutConfig"
        },
        "AgentActions" : {
          "$ref" : "#/definitions/AgentActions"
        }
      },
      "required" : [ "BandwidthAllocation", "TimeoutConfig" ],
      "additionalProperties" : false
    },
    "TelephonyOutboundMode" : {
      "type" : "object",
      "description" : "Telephony Outbound Mode",
      "properties" : {
        "ProgressiveConfig" : {
          "$ref" : "#/definitions/ProgressiveConfig"
        },
        "PredictiveConfig" : {
          "$ref" : "#/definitions/PredictiveConfig"
        },
        "AgentlessConfig" : {
          "$ref" : "#/definitions/AgentlessConfig"
        },
        "PreviewConfig" : {
          "$ref" : "#/definitions/PreviewConfig"
        }
      },
      "oneOf" : [ {
        "required" : [ "ProgressiveConfig" ]
      }, {
        "required" : [ "PredictiveConfig" ]
      }, {
        "required" : [ "AgentlessConfig" ]
      }, {
        "required" : [ "PreviewConfig" ]
      } ],
      "additionalProperties" : false
    },
    "AnswerMachineDetectionConfig" : {
      "type" : "object",
      "description" : "The configuration used for answering machine detection during outbound calls",
      "properties" : {
        "EnableAnswerMachineDetection" : {
          "type" : "boolean",
          "description" : "Flag to decided whether outbound calls should have answering machine detection enabled or not"
        },
        "AwaitAnswerMachinePrompt" : {
          "type" : "boolean",
          "description" : "Enables detection of prompts (e.g., beep after after a voicemail greeting)"
        }
      },
      "required" : [ "EnableAnswerMachineDetection" ],
      "additionalProperties" : false
    },
    "TelephonyOutboundConfig" : {
      "type" : "object",
      "description" : "Default Telephone Outbound config",
      "properties" : {
        "ConnectContactFlowId" : {
          "$ref" : "#/definitions/ContactFlowId"
        },
        "ConnectSourcePhoneNumber" : {
          "$ref" : "#/definitions/SourcePhoneNumber"
        },
        "AnswerMachineDetectionConfig" : {
          "$ref" : "#/definitions/AnswerMachineDetectionConfig"
        },
        "RingTimeout" : {
          "$ref" : "#/definitions/RingTimeout"
        }
      },
      "required" : [ "ConnectContactFlowId" ],
      "additionalProperties" : false
    },
    "TelephonyChannelSubtypeConfig" : {
      "type" : "object",
      "description" : "Telephony Channel Subtype config",
      "properties" : {
        "Capacity" : {
          "$ref" : "#/definitions/Capacity"
        },
        "ConnectQueueId" : {
          "$ref" : "#/definitions/QueueId"
        },
        "OutboundMode" : {
          "$ref" : "#/definitions/TelephonyOutboundMode"
        },
        "DefaultOutboundConfig" : {
          "$ref" : "#/definitions/TelephonyOutboundConfig"
        }
      },
      "required" : [ "OutboundMode", "DefaultOutboundConfig" ],
      "additionalProperties" : false
    },
    "SmsOutboundMode" : {
      "type" : "object",
      "description" : "SMS Outbound Mode",
      "properties" : {
        "AgentlessConfig" : {
          "$ref" : "#/definitions/AgentlessConfig"
        }
      },
      "additionalProperties" : false
    },
    "SmsOutboundConfig" : {
      "type" : "object",
      "description" : "Default SMS outbound config",
      "properties" : {
        "ConnectSourcePhoneNumberArn" : {
          "$ref" : "#/definitions/Arn"
        },
        "WisdomTemplateArn" : {
          "$ref" : "#/definitions/Arn"
        }
      },
      "required" : [ "ConnectSourcePhoneNumberArn", "WisdomTemplateArn" ],
      "additionalProperties" : false
    },
    "SmsChannelSubtypeConfig" : {
      "type" : "object",
      "description" : "SMS Channel Subtype config",
      "properties" : {
        "Capacity" : {
          "$ref" : "#/definitions/Capacity"
        },
        "OutboundMode" : {
          "$ref" : "#/definitions/SmsOutboundMode"
        },
        "DefaultOutboundConfig" : {
          "$ref" : "#/definitions/SmsOutboundConfig"
        }
      },
      "required" : [ "OutboundMode", "DefaultOutboundConfig" ],
      "additionalProperties" : false
    },
    "EmailOutboundMode" : {
      "type" : "object",
      "description" : "Email Outbound Mode",
      "properties" : {
        "AgentlessConfig" : {
          "$ref" : "#/definitions/AgentlessConfig"
        }
      },
      "additionalProperties" : false
    },
    "EmailOutboundConfig" : {
      "type" : "object",
      "description" : "Default Email outbound config",
      "properties" : {
        "ConnectSourceEmailAddress" : {
          "$ref" : "#/definitions/EmailAddress"
        },
        "SourceEmailAddressDisplayName" : {
          "$ref" : "#/definitions/SourceEmailAddressDisplayName"
        },
        "WisdomTemplateArn" : {
          "$ref" : "#/definitions/Arn"
        }
      },
      "required" : [ "ConnectSourceEmailAddress", "WisdomTemplateArn" ],
      "additionalProperties" : false
    },
    "EmailChannelSubtypeConfig" : {
      "type" : "object",
      "description" : "Email Channel Subtype config",
      "properties" : {
        "Capacity" : {
          "$ref" : "#/definitions/Capacity"
        },
        "OutboundMode" : {
          "$ref" : "#/definitions/EmailOutboundMode"
        },
        "DefaultOutboundConfig" : {
          "$ref" : "#/definitions/EmailOutboundConfig"
        }
      },
      "required" : [ "OutboundMode", "DefaultOutboundConfig" ],
      "additionalProperties" : false
    },
    "WhatsAppOutboundMode" : {
      "type" : "object",
      "description" : "WhatsApp Outbound Mode",
      "properties" : {
        "AgentlessConfig" : {
          "$ref" : "#/definitions/AgentlessConfig"
        }
      },
      "additionalProperties" : false
    },
    "WhatsAppOutboundConfig" : {
      "type" : "object",
      "description" : "Default WhatsApp outbound config",
      "properties" : {
        "ConnectSourcePhoneNumberArn" : {
          "$ref" : "#/definitions/Arn"
        },
        "WisdomTemplateArn" : {
          "$ref" : "#/definitions/Arn"
        }
      },
      "required" : [ "ConnectSourcePhoneNumberArn", "WisdomTemplateArn" ],
      "additionalProperties" : false
    },
    "WhatsAppChannelSubtypeConfig" : {
      "type" : "object",
      "description" : "WhatsApp Channel Subtype config",
      "properties" : {
        "Capacity" : {
          "$ref" : "#/definitions/Capacity"
        },
        "OutboundMode" : {
          "$ref" : "#/definitions/WhatsAppOutboundMode"
        },
        "DefaultOutboundConfig" : {
          "$ref" : "#/definitions/WhatsAppOutboundConfig"
        }
      },
      "required" : [ "OutboundMode", "DefaultOutboundConfig" ],
      "additionalProperties" : false
    },
    "ChannelSubtypeConfig" : {
      "type" : "object",
      "description" : "The possible types of channel subtype config parameters",
      "properties" : {
        "Telephony" : {
          "$ref" : "#/definitions/TelephonyChannelSubtypeConfig"
        },
        "Sms" : {
          "$ref" : "#/definitions/SmsChannelSubtypeConfig"
        },
        "Email" : {
          "$ref" : "#/definitions/EmailChannelSubtypeConfig"
        },
        "WhatsApp" : {
          "$ref" : "#/definitions/WhatsAppChannelSubtypeConfig"
        }
      },
      "anyOf" : [ {
        "required" : [ "Telephony" ]
      }, {
        "required" : [ "Sms" ]
      }, {
        "required" : [ "Email" ]
      }, {
        "required" : [ "WhatsApp" ]
      } ],
      "additionalProperties" : false
    },
    "Source" : {
      "type" : "object",
      "description" : "The possible source of the campaign",
      "properties" : {
        "CustomerProfilesSegmentArn" : {
          "$ref" : "#/definitions/Arn"
        },
        "EventTrigger" : {
          "$ref" : "#/definitions/EventTrigger"
        }
      },
      "oneOf" : [ {
        "required" : [ "CustomerProfilesSegmentArn" ]
      }, {
        "required" : [ "EventTrigger" ]
      } ],
      "additionalProperties" : false
    },
    "EventTrigger" : {
      "type" : "object",
      "description" : "The event trigger of the campaign",
      "properties" : {
        "CustomerProfilesDomainArn" : {
          "$ref" : "#/definitions/Arn"
        }
      },
      "additionalProperties" : false
    },
    "TimeRange" : {
      "type" : "object",
      "description" : "Time range in 24 hour format",
      "properties" : {
        "StartTime" : {
          "$ref" : "#/definitions/Iso8601Time"
        },
        "EndTime" : {
          "$ref" : "#/definitions/Iso8601Time"
        }
      },
      "required" : [ "StartTime", "EndTime" ],
      "additionalProperties" : false
    },
    "TimeRangeList" : {
      "type" : "array",
      "description" : "List of time range",
      "items" : {
        "$ref" : "#/definitions/TimeRange"
      },
      "insertionOrder" : false
    },
    "DailyHour" : {
      "type" : "object",
      "description" : "Daily Hour",
      "properties" : {
        "Key" : {
          "$ref" : "#/definitions/DayOfWeek"
        },
        "Value" : {
          "$ref" : "#/definitions/TimeRangeList"
        }
      },
      "additionalProperties" : false
    },
    "DailyHours" : {
      "type" : "array",
      "uniqueItems" : true,
      "insertionOrder" : false,
      "description" : "Daily Hours map",
      "items" : {
        "$ref" : "#/definitions/DailyHour"
      }
    },
    "OpenHours" : {
      "type" : "object",
      "description" : "Open Hours config",
      "properties" : {
        "DailyHours" : {
          "$ref" : "#/definitions/DailyHours"
        }
      },
      "required" : [ "DailyHours" ],
      "additionalProperties" : false
    },
    "RestrictedPeriod" : {
      "type" : "object",
      "description" : "Restricted period",
      "properties" : {
        "Name" : {
          "type" : "string",
          "maxLength" : 127,
          "description" : "The name of a restricted period"
        },
        "StartDate" : {
          "$ref" : "#/definitions/Iso8601Date"
        },
        "EndDate" : {
          "$ref" : "#/definitions/Iso8601Date"
        }
      },
      "required" : [ "StartDate", "EndDate" ],
      "additionalProperties" : false
    },
    "RestrictedPeriodList" : {
      "type" : "array",
      "description" : "List of restricted period",
      "items" : {
        "$ref" : "#/definitions/RestrictedPeriod"
      },
      "insertionOrder" : false
    },
    "RestrictedPeriods" : {
      "type" : "object",
      "description" : "Restricted period config",
      "properties" : {
        "RestrictedPeriodList" : {
          "$ref" : "#/definitions/RestrictedPeriodList"
        }
      },
      "oneOf" : [ {
        "required" : [ "RestrictedPeriodList" ]
      } ],
      "additionalProperties" : false
    },
    "TimeWindow" : {
      "type" : "object",
      "description" : "Time window config",
      "properties" : {
        "OpenHours" : {
          "$ref" : "#/definitions/OpenHours"
        },
        "RestrictedPeriods" : {
          "$ref" : "#/definitions/RestrictedPeriods"
        }
      },
      "required" : [ "OpenHours" ],
      "additionalProperties" : false
    },
    "Schedule" : {
      "type" : "object",
      "description" : "Campaign schedule",
      "properties" : {
        "StartTime" : {
          "$ref" : "#/definitions/TimeStamp"
        },
        "EndTime" : {
          "$ref" : "#/definitions/TimeStamp"
        },
        "RefreshFrequency" : {
          "$ref" : "#/definitions/Iso8601Duration"
        }
      },
      "required" : [ "StartTime", "EndTime" ],
      "additionalProperties" : false
    },
    "LocalTimeZoneDetectionType" : {
      "type" : "string",
      "description" : "Local TimeZone Detection method",
      "enum" : [ "ZIP_CODE", "AREA_CODE" ]
    },
    "LocalTimeZoneDetectionScope" : {
      "type" : "string",
      "description" : "Local TimeZone Detection scope",
      "enum" : [ "PRIMARY_ONLY", "ALL_AVAILABLE" ]
    },
    "LocalTimeZoneDetection" : {
      "type" : "array",
      "description" : "Local TimeZone Detection method list",
      "items" : {
        "$ref" : "#/definitions/LocalTimeZoneDetectionType"
      },
      "insertionOrder" : false
    },
    "LocalTimeZoneConfig" : {
      "type" : "object",
      "description" : "Local time zone config",
      "properties" : {
        "DefaultTimeZone" : {
          "$ref" : "#/definitions/TimeZone"
        },
        "LocalTimeZoneDetection" : {
          "$ref" : "#/definitions/LocalTimeZoneDetection"
        },
        "LocalTimeZoneDetectionScope" : {
          "$ref" : "#/definitions/LocalTimeZoneDetectionScope"
        }
      },
      "additionalProperties" : false
    },
    "CommunicationTimeConfig" : {
      "type" : "object",
      "description" : "Campaign communication time config",
      "properties" : {
        "LocalTimeZoneConfig" : {
          "$ref" : "#/definitions/LocalTimeZoneConfig"
        },
        "Telephony" : {
          "$ref" : "#/definitions/TimeWindow"
        },
        "Sms" : {
          "$ref" : "#/definitions/TimeWindow"
        },
        "Email" : {
          "$ref" : "#/definitions/TimeWindow"
        },
        "WhatsApp" : {
          "$ref" : "#/definitions/TimeWindow"
        }
      },
      "required" : [ "LocalTimeZoneConfig" ],
      "additionalProperties" : false
    },
    "CommunicationLimitTimeUnit" : {
      "type" : "string",
      "description" : "The communication limit time unit",
      "enum" : [ "DAY" ]
    },
    "CommunicationLimit" : {
      "type" : "object",
      "description" : "Communication Limit",
      "properties" : {
        "MaxCountPerRecipient" : {
          "type" : "integer",
          "minimum" : 1
        },
        "Frequency" : {
          "type" : "integer",
          "minimum" : 1
        },
        "Unit" : {
          "$ref" : "#/definitions/CommunicationLimitTimeUnit"
        }
      },
      "required" : [ "MaxCountPerRecipient", "Frequency", "Unit" ],
      "additionalProperties" : false
    },
    "CommunicationLimitList" : {
      "type" : "array",
      "description" : "List of communication limit",
      "items" : {
        "$ref" : "#/definitions/CommunicationLimit"
      },
      "insertionOrder" : false
    },
    "CommunicationLimits" : {
      "type" : "object",
      "description" : "Communication limits",
      "properties" : {
        "CommunicationLimitList" : {
          "$ref" : "#/definitions/CommunicationLimitList"
        }
      },
      "additionalProperties" : false
    },
    "InstanceLimitsHandling" : {
      "type" : "string",
      "description" : "Enumeration of Instance Limits handling in a Campaign",
      "enum" : [ "OPT_IN", "OPT_OUT" ]
    },
    "CommunicationLimitsConfig" : {
      "type" : "object",
      "description" : "Communication limits config",
      "properties" : {
        "AllChannelsSubtypes" : {
          "$ref" : "#/definitions/CommunicationLimits"
        },
        "InstanceLimitsHandling" : {
          "$ref" : "#/definitions/InstanceLimitsHandling"
        }
      },
      "additionalProperties" : false
    },
    "Tag" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "type" : "string",
          "description" : "The key name of the tag."
        },
        "Value" : {
          "type" : "string",
          "description" : "The value for the tag."
        }
      },
      "required" : [ "Key", "Value" ],
      "additionalProperties" : false
    },
    "EntryLimitsConfig" : {
      "type" : "object",
      "description" : "Entry limits config for a campaign",
      "properties" : {
        "MaxEntryCount" : {
          "type" : "integer",
          "minimum" : 0,
          "description" : "Maximum number of entries per participant. 0 indicates unlimited entries."
        },
        "MinEntryInterval" : {
          "$ref" : "#/definitions/Iso8601Duration",
          "description" : "Minimum time interval between entries for the same participant in ISO 8601 duration format"
        }
      },
      "required" : [ "MaxEntryCount", "MinEntryInterval" ],
      "additionalProperties" : false
    }
  },
  "properties" : {
    "Arn" : {
      "type" : "string",
      "maxLength" : 256,
      "minLength" : 0,
      "description" : "Amazon Connect Campaign Arn",
      "pattern" : "^arn:aws[-a-z0-9]*:connect-campaigns:[-a-z0-9]*:[0-9]{12}:campaign/[-a-zA-Z0-9]*$"
    },
    "Name" : {
      "$ref" : "#/definitions/CampaignName"
    },
    "Type" : {
      "$ref" : "#/definitions/CampaignType"
    },
    "ConnectInstanceId" : {
      "$ref" : "#/definitions/InstanceId"
    },
    "ChannelSubtypeConfig" : {
      "$ref" : "#/definitions/ChannelSubtypeConfig"
    },
    "Source" : {
      "$ref" : "#/definitions/Source"
    },
    "ConnectCampaignFlowArn" : {
      "$ref" : "#/definitions/Arn"
    },
    "Schedule" : {
      "$ref" : "#/definitions/Schedule"
    },
    "CommunicationTimeConfig" : {
      "$ref" : "#/definitions/CommunicationTimeConfig"
    },
    "CommunicationLimitsOverride" : {
      "$ref" : "#/definitions/CommunicationLimitsConfig"
    },
    "EntryLimitsConfig" : {
      "$ref" : "#/definitions/EntryLimitsConfig"
    },
    "Tags" : {
      "type" : "array",
      "maxItems" : 50,
      "uniqueItems" : true,
      "insertionOrder" : false,
      "description" : "One or more tags.",
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    }
  },
  "tagging" : {
    "taggable" : true,
    "tagOnCreate" : true,
    "tagUpdatable" : true,
    "cloudFormationSystemTags" : true,
    "tagProperty" : "/properties/Tags",
    "permissions" : [ "connect-campaigns:UntagResource", "connect-campaigns:TagResource" ]
  },
  "required" : [ "Name", "ConnectInstanceId" ],
  "readOnlyProperties" : [ "/properties/Arn" ],
  "createOnlyProperties" : [ "/properties/ConnectInstanceId" ],
  "primaryIdentifier" : [ "/properties/Arn" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "connect-campaigns:CreateCampaign", "connect-campaigns:DescribeCampaign", "connect-campaigns:TagResource", "connect:DescribeContactFlow", "connect:DescribeEmailAddress", "connect:DescribeInstance", "connect:DescribePhoneNumber", "connect:DescribeQueue", "profile:GetSegmentDefinition", "wisdom:GetMessageTemplate" ]
    },
    "read" : {
      "permissions" : [ "connect-campaigns:DescribeCampaign" ]
    },
    "delete" : {
      "permissions" : [ "connect-campaigns:DeleteCampaign", "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", "connect-campaigns:DeleteCampaignCommunicationTime", "connect-campaigns:DeleteCampaignEntryLimits" ]
    },
    "list" : {
      "handlerSchema" : {
        "properties" : {
          "ConnectInstanceId" : {
            "$ref" : "resource-schema.json#/properties/ConnectInstanceId"
          }
        },
        "required" : [ "ConnectInstanceId" ]
      },
      "permissions" : [ "connect-campaigns:ListCampaigns" ]
    },
    "update" : {
      "permissions" : [ "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", "connect-campaigns:DeleteCampaignCommunicationTime", "connect-campaigns:DeleteCampaignEntryLimits", "connect-campaigns:UpdateCampaignChannelSubtypeConfig", "connect-campaigns:UpdateCampaignCommunicationLimits", "connect-campaigns:UpdateCampaignCommunicationTime", "connect-campaigns:UpdateCampaignEntryLimits", "connect-campaigns:UpdateCampaignName", "connect-campaigns:UpdateCampaignFlowAssociation", "connect-campaigns:UpdateCampaignSchedule", "connect-campaigns:UpdateCampaignSource", "connect-campaigns:TagResource", "connect-campaigns:UntagResource", "connect-campaigns:DescribeCampaign", "connect:DescribeContactFlow", "connect:DescribeEmailAddress", "connect:DescribePhoneNumber", "connect:DescribeQueue", "profile:GetSegmentDefinition", "wisdom:GetMessageTemplate" ]
    }
  },
  "additionalProperties" : false
}