

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::CodeGuruProfiler::ProfilingGroup
<a name="aws-resource-codeguruprofiler-profilinggroup"></a>

Creates a profiling group.

## Syntax
<a name="aws-resource-codeguruprofiler-profilinggroup-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-codeguruprofiler-profilinggroup-syntax.json"></a>

```
{
  "Type" : "AWS::CodeGuruProfiler::ProfilingGroup",
  "Properties" : {
      "[AgentPermissions](#cfn-codeguruprofiler-profilinggroup-agentpermissions)" : AgentPermissions,
      "[AnomalyDetectionNotificationConfiguration](#cfn-codeguruprofiler-profilinggroup-anomalydetectionnotificationconfiguration)" : [ Channel, ... ],
      "[ComputePlatform](#cfn-codeguruprofiler-profilinggroup-computeplatform)" : String,
      "[ProfilingGroupName](#cfn-codeguruprofiler-profilinggroup-profilinggroupname)" : String,
      "[Tags](#cfn-codeguruprofiler-profilinggroup-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-codeguruprofiler-profilinggroup-syntax.yaml"></a>

```
Type: AWS::CodeGuruProfiler::ProfilingGroup
Properties:
  [AgentPermissions](#cfn-codeguruprofiler-profilinggroup-agentpermissions): 
    AgentPermissions
  [AnomalyDetectionNotificationConfiguration](#cfn-codeguruprofiler-profilinggroup-anomalydetectionnotificationconfiguration): 
    - Channel
  [ComputePlatform](#cfn-codeguruprofiler-profilinggroup-computeplatform): String
  [ProfilingGroupName](#cfn-codeguruprofiler-profilinggroup-profilinggroupname): String
  [Tags](#cfn-codeguruprofiler-profilinggroup-tags): 
    - Tag
```

## Properties
<a name="aws-resource-codeguruprofiler-profilinggroup-properties"></a>

`AgentPermissions`  <a name="cfn-codeguruprofiler-profilinggroup-agentpermissions"></a>
The agent permissions attached to this profiling group. This action group grants `ConfigureAgent` and `PostAgentProfile` permissions to perform actions required by the profiling agent. The Json consists of key `Principals`.  
*Principals*: A list of string ARNs for the roles and users you want to grant access to the profiling group. Wildcards are not supported in the ARNs. You are allowed to provide up to 50 ARNs. An empty list is not permitted. This is a required key.   
For more information, see [Resource-based policies in CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) in the *Amazon CodeGuru Profiler user guide*, [ConfigureAgent](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), and [PostAgentProfile](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html).  
*Required*: No  
*Type*: [AgentPermissions](aws-properties-codeguruprofiler-profilinggroup-agentpermissions.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AnomalyDetectionNotificationConfiguration`  <a name="cfn-codeguruprofiler-profilinggroup-anomalydetectionnotificationconfiguration"></a>
Adds anomaly notifications for a profiling group.  
*Required*: No  
*Type*: Array of [Channel](aws-properties-codeguruprofiler-profilinggroup-channel.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ComputePlatform`  <a name="cfn-codeguruprofiler-profilinggroup-computeplatform"></a>
 The compute platform of the profiling group. Use `AWSLambda` if your application runs on AWS Lambda. Use `Default` if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. If not specified, `Default` is used. This property is immutable.  
*Required*: No  
*Type*: String  
*Allowed values*: `Default | AWSLambda`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ProfilingGroupName`  <a name="cfn-codeguruprofiler-profilinggroup-profilinggroupname"></a>
The name of the profiling group.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[\w-]+$`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-codeguruprofiler-profilinggroup-tags"></a>
 A list of tags to add to the created profiling group.   
*Required*: No  
*Type*: Array of [Tag](aws-properties-codeguruprofiler-profilinggroup-tag.md)  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-codeguruprofiler-profilinggroup-return-values"></a>

### Ref
<a name="aws-resource-codeguruprofiler-profilinggroup-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the name of the profiling group.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-codeguruprofiler-profilinggroup-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-codeguruprofiler-profilinggroup-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The full Amazon Resource Name (ARN) for that profiling group.

## Examples
<a name="aws-resource-codeguruprofiler-profilinggroup--examples"></a>



**Topics**
+ [CodeGuru Profiler profiling group resource configuration](#aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_configuration)
+ [CodeGuru Profiler profiling group resource with compute platform](#aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_compute_platform)
+ [CodeGuru Profiler profiling group resource with notifications](#aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_notifications)
+ [CodeGuru Profiler profiling group configuration](#aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_configuration)

### CodeGuru Profiler profiling group resource configuration
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_configuration"></a>

The following is an example of the profiling group resource with the profiling group name and agent permissions properties.

#### JSON
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_configuration--json"></a>

```
"MyProfilingGroupWithAgentPermissions": {
  "Type": "AWS::CodeGuruProfiler::ProfilingGroup",
  "Properties": {
    "ProfilingGroupName": "MyProfilingGroup",
    "AgentPermissions": {
      "Principals": [
          "arn:aws:iam::1233456789012:role/agent-permissions-role-1", 
          "arn:aws:iam::1233456789012:role/agent-permissions-role-2"
      ]
    }
  }
}
```

#### YAML
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_configuration--yaml"></a>

```
MyProfilingGroupWithAgentPermissions:
  Type: AWS::CodeGuruProfiler::ProfilingGroup
  Properties:
    ProfilingGroupName: "MyProfilingGroup"
    AgentPermissions:
      Principals:
        - "arn:aws:iam::1233456789012:role/agent-permissions-role-1"
        - "arn:aws:iam::1233456789012:role/agent-permissions-role-2"
```

### CodeGuru Profiler profiling group resource with compute platform
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_compute_platform"></a>

The following is an example of the profiling group resource that runs on AWS Lambda.

#### JSON
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_compute_platform--json"></a>

```
"MyProfilingGroupWithComputePlatform": {
  "Type": "AWS::CodeGuruProfiler::ProfilingGroup",
  "Properties": {
    "ProfilingGroupName": "MyProfilingGroup",
    "ComputePlatform": "AWSLambda"
  }
}
```

#### YAML
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_compute_platform--yaml"></a>

```
MyProfilingGroupWithComputePlatform:
  Type: AWS::CodeGuruProfiler::ProfilingGroup
  Properties:
    ProfilingGroupName: "MyProfilingGroup"
    ComputePlatform: "AWSLambda"
```

### CodeGuru Profiler profiling group resource with notifications
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_notifications"></a>

The following is an example of the a notification configuration for a profiling group.

#### JSON
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_notifications--json"></a>

```
"MyProfilingGroupWithNotificationChannelConfiguration": {
  "Type": "AWS::CodeGuruProfiler::ProfilingGroup",
  "Properties": {
    "ProfilingGroupName": "MyProfilingGroup",
    "AnomalyDetectionNotificationConfiguration": [
        {
            "channelUri": "SOME_SNS_TOPIC_ARN",
            "channelId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        }
    ]
  }
}
```

#### YAML
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_resource_with_notifications--yaml"></a>

```
MyProfilingGroupWithNotificationChannelConfiguration:
  Type: AWS::CodeGuruProfiler::ProfilingGroup
  Properties:
    ProfilingGroupName: MyProfilingGroup
    AnomalyDetectionNotificationConfiguration:
    - channelUri: SOME_SNS_TOPIC_ARN
      channelId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
```

### CodeGuru Profiler profiling group configuration
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_configuration"></a>

The following is an example of a profiling group that runs on AWS Lambda. This profiling group has enabled agent permissions. Notifications have also been configured with `AnomalyDetectionConfiguration`.

#### JSON
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_configuration--json"></a>

```
"MyProfilingGroupWithAgentPermissions": {
  "Type": "AWS::CodeGuruProfiler::ProfilingGroup",
  "Properties": {
    "ProfilingGroupName": "MyProfilingGroup",
    "ComputePlatform": "AWSLambda",
    "AgentPermissions": {
      "Principals": [
          "arn:aws:iam::1233456789012:role/agent-permissions-role-1", 
          "arn:aws:iam::1233456789012:role/agent-permissions-role-2"
      ]
    },
    "AnomalyDetectionNotificationConfiguration": [
        {
            "channelUri": "SOME_SNS_TOPIC_ARN",
            "channelId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        }
    ]
  }
}
```

#### YAML
<a name="aws-resource-codeguruprofiler-profilinggroup--examples--CodeGuru_Profiler_profiling_group_configuration--yaml"></a>

```
MyProfilingGroup:
  Type: AWS::CodeGuruProfiler::ProfilingGroup
  Properties:
    ProfilingGroupName: "MyProfilingGroup"
    ComputePlatform: "AWSLambda"
    AgentPermissions:
      Principals:
        - "arn:aws:iam::1233456789012:role/agent-permissions-role-1"
        - "arn:aws:iam::1233456789012:role/agent-permissions-role-2"
    AnomalyDetectionNotificationConfiguration:
    - channelUri: SOME_SNS_TOPIC_ARN
      channelId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
```

# AWS::CodeGuruProfiler::ProfilingGroup AgentPermissions
<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions"></a>

<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions-description"></a>The `AgentPermissions` property type specifies Property description not available. for an [AWS::CodeGuruProfiler::ProfilingGroup](aws-resource-codeguruprofiler-profilinggroup.md).

## Syntax
<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions-syntax.json"></a>

```
{
  "[Principals](#cfn-codeguruprofiler-profilinggroup-agentpermissions-principals)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions-syntax.yaml"></a>

```
  [Principals](#cfn-codeguruprofiler-profilinggroup-agentpermissions-principals): 
    - String
```

## Properties
<a name="aws-properties-codeguruprofiler-profilinggroup-agentpermissions-properties"></a>

`Principals`  <a name="cfn-codeguruprofiler-profilinggroup-agentpermissions-principals"></a>
Property description not available.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodeGuruProfiler::ProfilingGroup Channel
<a name="aws-properties-codeguruprofiler-profilinggroup-channel"></a>

Notification medium for users to get alerted for events that occur in application profile. We support SNS topic as a notification channel.

## Syntax
<a name="aws-properties-codeguruprofiler-profilinggroup-channel-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-codeguruprofiler-profilinggroup-channel-syntax.json"></a>

```
{
  "[channelId](#cfn-codeguruprofiler-profilinggroup-channel-channelid)" : String,
  "[channelUri](#cfn-codeguruprofiler-profilinggroup-channel-channeluri)" : String
}
```

### YAML
<a name="aws-properties-codeguruprofiler-profilinggroup-channel-syntax.yaml"></a>

```
  [channelId](#cfn-codeguruprofiler-profilinggroup-channel-channelid): String
  [channelUri](#cfn-codeguruprofiler-profilinggroup-channel-channeluri): String
```

## Properties
<a name="aws-properties-codeguruprofiler-profilinggroup-channel-properties"></a>

`channelId`  <a name="cfn-codeguruprofiler-profilinggroup-channel-channelid"></a>
The channel ID.  
*Required*: No  
*Type*: String  
*Pattern*: `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`channelUri`  <a name="cfn-codeguruprofiler-profilinggroup-channel-channeluri"></a>
The channel URI.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^arn:aws([-\w]*):[a-z-]+:(([a-z]+-)+[0-9]+)?:([0-9]{12}):[^.]+$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodeGuruProfiler::ProfilingGroup Tag
<a name="aws-properties-codeguruprofiler-profilinggroup-tag"></a>

<a name="aws-properties-codeguruprofiler-profilinggroup-tag-description"></a>The `Tag` property type specifies Property description not available. for an [AWS::CodeGuruProfiler::ProfilingGroup](aws-resource-codeguruprofiler-profilinggroup.md).

## Syntax
<a name="aws-properties-codeguruprofiler-profilinggroup-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-codeguruprofiler-profilinggroup-tag-syntax.json"></a>

```
{
  "[Key](#cfn-codeguruprofiler-profilinggroup-tag-key)" : String,
  "[Value](#cfn-codeguruprofiler-profilinggroup-tag-value)" : String
}
```

### YAML
<a name="aws-properties-codeguruprofiler-profilinggroup-tag-syntax.yaml"></a>

```
  [Key](#cfn-codeguruprofiler-profilinggroup-tag-key): String
  [Value](#cfn-codeguruprofiler-profilinggroup-tag-value): String
```

## Properties
<a name="aws-properties-codeguruprofiler-profilinggroup-tag-properties"></a>

`Key`  <a name="cfn-codeguruprofiler-profilinggroup-tag-key"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-codeguruprofiler-profilinggroup-tag-value"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)