---
title: Amazon AWS EC2
slug: connectors/amazon-aws-ec2
docTags: 
createdAt: 2026-06-09T16:30:21.171Z
---

The Amazon AWS EC2 connector facilitates automation and management of EC2 instances and related resources within the AWS cloud environment.

Amazon AWS EC2 is a web service that provides secure, resizable compute capacity in the cloud. This connector enables seamless integration with Swimlane Turbine, allowing users to automate EC2 operations such as instance management, security group configuration, and network access control. By leveraging this integration, Swimlane Turbine end-users can enhance cloud security, streamline instance management, and automate network access controls, thereby improving operational efficiency and reducing manual intervention.

## Prerequisites

Before you can use the Amazon AWS EC2 connector for Turbine, you'll need access to the AWS API. This requires the following:

- AWS authentication using the following parameter:
  - Region Name: The specific AWS region where your resources are located.

## Asset Setup

This integration authenticates with AWS EC2 using the following input values:

### Requirements

- AWS Access Key ID: A long-term AWS access key ID with access to Athena.
- AWS Secret Key ID: A long-term secret access key associated with the above AccessKey ID.
- Region Name: The AWS region.
- Role ARN: An ARN of an AWS IAM Role to assume. This is optional.
- External ID: An External ID to use when assuming the role. This is optional.

### Obtaining AWS Credentials

To use this integration, you will need to have an AWS account and obtain the necessary AWS credentials. You can obtain these credentials by following the steps below:

- Log in to your AWS account and navigate to the IAM console.
- In the left navigation pane, click on the "Users" tab and select the user for which you want to create credentials.
- Click on the "Security credentials" tab, and then click on the "Create access key".
- Make sure to save the access key ID and secret access key in a secure location, as you will not be able to see the secret access key again after this step.
- If you want to use an AWS IAM Role, you will need to have the ARN of the role and an optional External ID, if one was specified by the AWS account administrator.

## Notes

[AWS Account and Access Keys](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html)

[Boto3 EC2 Documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#ec2)

# Configurations

## AWS EC2 Authentication

Authenticates using AWS credentials

### Configuration Parameters

| **Parameter**       | **Description**                                                                                                                                                                                                                                                      | **Type** | **Required** |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------ |
| access\_key         | AWS Access Key, see [https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html](https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html) for more information.                                                                 | string   | Optional     |
| secret\_key         | AWS Secret Key, see [https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html](https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html) for more information.                                                                 | string   | Optional     |
| region\_name        | The AWS Region where you want to create new connections                                                                                                                                                                                                              | string   | Required     |
| role\_arn           | Optional Role ARN to assume. Leave blank unless tasks need to assume a different role. See [https://docs.aws.amazon.com/STS/latest/APIReference/API\_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) for more information. | string   | Optional     |
| external\_id        | External ID to assume IAM Role. Optional value used for assuming roles. Can be added, or removed in `Trusted Relationships` of target role.                                                                                                                          | string   | Optional     |
| session\_token      | Use if a session token is provided when switching roles                                                                                                                                                                                                              | string   | Optional     |
| verify\_ssl         | Verify SSL certificate when making requests to AWS.                                                                                                                                                                                                                  | boolean  | Optional     |
| role\_session\_name | Defaults to `SessionFromSwimlane_<HASH>` when no value is provide                                                                                                                                                                                                    | string   | Optional     |

# Actions

## Allow IP in Network ACLs

Grant access to a specified IP address by updating the Network ACLs in Amazon AWS EC2. Requires the IP address as input.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                        |
| ----------------- | -------- | ------------ | -------------------------------------- |
| `ip_address`      | string   | Required     | Parameter for Allow IP in Network ACLs |

### Input Example

`{"ip_address":"192.168.1.1"}`

### Output

| **Parameter** | **Type** | **Description**                      |
| ------------- | -------- | ------------------------------------ |
| `success`     | boolean  | Whether the operation was successful |

### Output Example

`{"success":true}`

## Block IP in Network ACLs

Block a specified IP address using Amazon AWS EC2 Network Access Control Lists (ACLs). Requires an IP address as input.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                        |
| ----------------- | -------- | ------------ | -------------------------------------- |
| `ip_address`      | string   | Required     | Parameter for Block IP in Network ACLs |

### Input Example

`{"ip_address":"192.168.1.1"}`

### Output

| **Parameter** | **Type** | **Description**                      |
| ------------- | -------- | ------------------------------------ |
| `success`     | boolean  | Whether the operation was successful |

### Output Example

`{"success":true}`

## Create Instance

Launch a specified number of Amazon AWS EC2 instances with required permissions, monitoring options, and instance counts.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name**                             | **Type** | **Required** | **Description**               |
| --------------------------------------------- | -------- | ------------ | ----------------------------- |
| `BlockDeviceMappings`                         | array    | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.DeviceName`              | string   | Optional     | Name of the resource          |
| `BlockDeviceMappings.VirtualName`             | string   | Optional     | Name of the resource          |
| `BlockDeviceMappings.Ebs`                     | object   | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.DeleteOnTermination` | boolean  | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.Iops`                | number   | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.SnapshotId`          | string   | Optional     | Unique identifier             |
| `BlockDeviceMappings.Ebs.VolumeSize`          | number   | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.VolumeType`          | string   | Optional     | Type of the resource          |
| `BlockDeviceMappings.Ebs.KmsKeyId`            | string   | Optional     | Unique identifier             |
| `BlockDeviceMappings.Ebs.Throughput`          | number   | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.OutpostArn`          | string   | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.Ebs.Encrypted`           | boolean  | Optional     | Parameter for Create Instance |
| `BlockDeviceMappings.NoDevice`                | string   | Optional     | Parameter for Create Instance |
| `ImageId`                                     | string   | Optional     | Unique identifier             |
| `InstanceType`                                | string   | Optional     | Type of the resource          |
| `Ipv6AddressCount`                            | number   | Optional     | Count value                   |
| `Ipv6Addresses`                               | array    | Optional     | Parameter for Create Instance |
| `Ipv6Addresses.Ipv6Address`                   | string   | Optional     | Parameter for Create Instance |
| `Ipv6Addresses.IsPrimaryIpv6`                 | boolean  | Optional     | Parameter for Create Instance |
| `KernelId`                                    | string   | Optional     | Unique identifier             |
| `KeyName`                                     | string   | Optional     | Name of the resource          |
| `MaxCount`                                    | number   | Required     | Count value                   |
| `MinCount`                                    | number   | Required     | Count value                   |
| `Monitoring`                                  | object   | Required     | Parameter for Create Instance |

### Input Example

`{"ImageId":"string","InstanceType":"a1.medium","Ipv6AddressCount":123,"Ipv6Addresses":[{"Ipv6Address":"string","IsPrimaryIpv6":true}],"KernelId":"string","KeyName":"string","MaxCount":123,"MinCount":123,"Monitoring":{"Enabled":true},"Placement":{"AvailabilityZone":"string","Affinity":"string","GroupName":"string","PartitionNumber":123,"HostId":"string","Tenancy":"default","SpreadDomain":"string","HostResourceGroupArn":"string","GroupId":"string"},"RamdiskId":"string","SecurityGroupIds":["string"],"SecurityGroups":["string"],"SubnetId":"string","UserData":"string","AdditionalInfo":"string","ClientToken":"string","DisableApiTermination":true,"DryRun":true,"EbsOptimized":true,"IamInstanceProfile":{"Arn":"string","Name":"string"},"InstanceInitiatedShutdownBehavior":"stop","NetworkInterfaces":[{"AssociatePublicIpAddress":true,"DeleteOnTermination":true,"Description":"string","DeviceIndex":123,"Groups":["string"],"Ipv6AddressCount":123,"Ipv6Addresses":[{"Ipv6Address":"string","IsPrimaryIpv6":true}],"NetworkInterfaceId":"string","PrivateIpAddress":"string","PrivateIpAddresses":[{"Primary":true,"PrivateIpAddress":"string"}],"SecondaryPrivateIpAddressCount":123,"SubnetId":"string","AssociateCarrierIpAddress":true,"InterfaceType":"string","NetworkCardIndex":123,"Ipv4Prefixes":[{"Ipv4Prefix":"string"}],"Ipv4PrefixCount":123,"Ipv6Prefixes":[{"Ipv6Prefix":"string"}],"Ipv6PrefixCount":123,"PrimaryIpv6":true}],"PrivateIpAddress":"string","ElasticGpuSpecification":[{"Type":"string"}],"ElasticInferenceAccelerators":[{"Type":"string","Count":123}],"TagSpecifications":[{"ResourceType":"capacity-reservation","Tags":[{"Key":"string","Value":"string"}]}],"LaunchTemplate":{"LaunchTemplateId":"string","LaunchTemplateName":"string","Version":"string"},"InstanceMarketOptions":{"MarketType":"spot","SpotOptions":{"MaxPrice":"string","SpotInstanceType":"one-time","BlockDurationMinutes":123,"ValidUntil":"string","InstanceInterruptionBehavior":"hibernate"}},"CreditSpecification":{"CpuCredits":"string"},"CpuOptions":{"CoreCount":123,"ThreadsPerCore":123,"AmdSevSnp":"enabled"},"CapacityReservationSpecification":{"CapacityReservationPreference":"open","CapacityReservationTarget":{"CapacityReservationId":"string","CapacityReservationResourceGroupArn":"string"}},"HibernationOptions":{"Configured":true},"LicenseSpecifications":[{"LicenseConfigurationArn":"string"}],"MetadataOptions":{"HttpTokens":"optional","HttpPutResponseHopLimit":123,"HttpEndpoint":"disabled","HttpProtocolIpv6":"disabled","InstanceMetadataTags":"disabled"},"EnclaveOptions":{"Enabled":true},"PrivateDnsNameOptions":{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":true},"MaintenanceOptions":{"AutoRecovery":"disabled"},"DisableApiStop":true,"EnablePrimaryIpv6":true}`

### Output

| **Parameter**                              | **Type** | **Description**                                        |
| ------------------------------------------ | -------- | ------------------------------------------------------ |
| `Groups`                                   | array    | Output field: Groups                                   |
| `Groups.GroupName`                         | string   | Name of the resource                                   |
| `Groups.GroupId`                           | string   | Unique identifier                                      |
| `Instances`                                | array    | Output field: Instances                                |
| `Instances.AmiLaunchIndex`                 | number   | Output field: Instances.AmiLaunchIndex                 |
| `Instances.ImageId`                        | string   | Unique identifier                                      |
| `Instances.InstanceId`                     | string   | Unique identifier                                      |
| `Instances.InstanceType`                   | string   | Type of the resource                                   |
| `Instances.KeyName`                        | string   | Name of the resource                                   |
| `Instances.LaunchTime`                     | string   | Time value                                             |
| `Instances.Monitoring`                     | object   | Output field: Instances.Monitoring                     |
| `Instances.Monitoring.State`               | string   | Output field: Instances.Monitoring.State               |
| `Instances.Placement`                      | object   | Output field: Instances.Placement                      |
| `Instances.Placement.AvailabilityZone`     | string   | Output field: Instances.Placement.AvailabilityZone     |
| `Instances.Placement.Affinity`             | string   | Output field: Instances.Placement.Affinity             |
| `Instances.Placement.GroupName`            | string   | Name of the resource                                   |
| `Instances.Placement.PartitionNumber`      | number   | Output field: Instances.Placement.PartitionNumber      |
| `Instances.Placement.HostId`               | string   | Unique identifier                                      |
| `Instances.Placement.Tenancy`              | string   | Output field: Instances.Placement.Tenancy              |
| `Instances.Placement.SpreadDomain`         | string   | Output field: Instances.Placement.SpreadDomain         |
| `Instances.Placement.HostResourceGroupArn` | string   | Output field: Instances.Placement.HostResourceGroupArn |
| `Instances.Placement.GroupId`              | string   | Unique identifier                                      |
| `Instances.Platform`                       | string   | Output field: Instances.Platform                       |
| `Instances.PrivateDnsName`                 | string   | Name of the resource                                   |
| `Instances.PrivateIpAddress`               | string   | Output field: Instances.PrivateIpAddress               |

### Output Example

`{"Groups":[{"GroupName":"string","GroupId":"string"}],"Instances":[{"AmiLaunchIndex":123,"ImageId":"string","InstanceId":"string","InstanceType":"a1.medium","KeyName":"string","LaunchTime":"datetime(2015, 1, 1)","Monitoring":{},"Placement":{},"Platform":"Windows","PrivateDnsName":"string","PrivateIpAddress":"string","ProductCodes":[],"PublicDnsName":"string","PublicIpAddress":"string","RamdiskId":"string"}],"OwnerId":"string","RequesterId":"string","ReservationId":"string"}`

## Create Security Group

Create a new security group in Amazon AWS EC2 with specified name and description.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name**                | **Type** | **Required** | **Description**                     |
| -------------------------------- | -------- | ------------ | ----------------------------------- |
| `Description`                    | string   | Required     | Parameter for Create Security Group |
| `GroupName`                      | string   | Required     | Name of the resource                |
| `VpcId`                          | string   | Optional     | Unique identifier                   |
| `TagSpecifications`              | array    | Optional     | Parameter for Create Security Group |
| `TagSpecifications.ResourceType` | string   | Optional     | Type of the resource                |
| `TagSpecifications.Tags`         | array    | Optional     | Parameter for Create Security Group |
| `TagSpecifications.Tags.Key`     | string   | Optional     | Parameter for Create Security Group |
| `TagSpecifications.Tags.Value`   | string   | Optional     | Value for the parameter             |
| `DryRun`                         | boolean  | Optional     | Parameter for Create Security Group |

### Input Example

`{"Description":"string","GroupName":"string","VpcId":"string","TagSpecifications":[{"ResourceType":"capacity-reservation","Tags":[{"Key":"string","Value":"string"}]}],"DryRun":true}`

### Output

| **Parameter** | **Type** | **Description**         |
| ------------- | -------- | ----------------------- |
| `GroupId`     | string   | Unique identifier       |
| `Tags`        | array    | Output field: Tags      |
| `Tags.Key`    | string   | Output field: Tags.Key  |
| `Tags.Value`  | string   | Value for the parameter |

### Output Example

`{"GroupId":"string","Tags":[{"Key":"string","Value":"string"}]}`

## Delete Security Group

Remove a specified security group from Amazon AWS EC2, ensuring no instances are associated with it before deletion.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                     |
| ----------------- | -------- | ------------ | ----------------------------------- |
| `GroupId`         | string   | Optional     | Unique identifier                   |
| `GroupName`       | string   | Optional     | Name of the resource                |
| `DryRun`          | boolean  | Optional     | Parameter for Delete Security Group |

### Input Example

`{"GroupId":"string","GroupName":"string","DryRun":true}`

### Output

| **Parameter**      | **Type** | **Description** |
| ------------------ | -------- | --------------- |
| `ResponseMetadata` | object   | Response data   |

### Output Example

`{"ResponseMetadata":{}}`

## Get Instances Info

Retrieves details for specified Amazon AWS EC2 instances or all instances if no specific criteria are provided.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                  |
| ----------------- | -------- | ------------ | -------------------------------- |
| `Filters`         | array    | Optional     | Parameter for Get Instances Info |
| `Filters.Name`    | string   | Optional     | Name of the resource             |
| `Filters.Values`  | array    | Optional     | Value for the parameter          |
| `InstanceIds`     | array    | Optional     | Unique identifier                |
| `DryRun`          | boolean  | Optional     | Parameter for Get Instances Info |
| `MaxResults`      | number   | Optional     | Result of the operation          |
| `NextToken`       | string   | Optional     | Parameter for Get Instances Info |

### Input Example

`{"Filters":[{"Name":"string","Values":["string"]}],"InstanceIds":["string"],"DryRun":true,"MaxResults":123,"NextToken":"string"}`

### Output

| **Parameter**                                           | **Type** | **Description**                                                     |
| ------------------------------------------------------- | -------- | ------------------------------------------------------------------- |
| `Reservations`                                          | array    | Output field: Reservations                                          |
| `Reservations.Groups`                                   | array    | Output field: Reservations.Groups                                   |
| `Reservations.Groups.GroupName`                         | string   | Name of the resource                                                |
| `Reservations.Groups.GroupId`                           | string   | Unique identifier                                                   |
| `Reservations.Instances`                                | array    | Output field: Reservations.Instances                                |
| `Reservations.Instances.AmiLaunchIndex`                 | number   | Output field: Reservations.Instances.AmiLaunchIndex                 |
| `Reservations.Instances.ImageId`                        | string   | Unique identifier                                                   |
| `Reservations.Instances.InstanceId`                     | string   | Unique identifier                                                   |
| `Reservations.Instances.InstanceType`                   | string   | Type of the resource                                                |
| `Reservations.Instances.KernelId`                       | string   | Unique identifier                                                   |
| `Reservations.Instances.KeyName`                        | string   | Name of the resource                                                |
| `Reservations.Instances.LaunchTime`                     | string   | Time value                                                          |
| `Reservations.Instances.Monitoring`                     | object   | Output field: Reservations.Instances.Monitoring                     |
| `Reservations.Instances.Monitoring.State`               | string   | Output field: Reservations.Instances.Monitoring.State               |
| `Reservations.Instances.Placement`                      | object   | Output field: Reservations.Instances.Placement                      |
| `Reservations.Instances.Placement.AvailabilityZone`     | string   | Output field: Reservations.Instances.Placement.AvailabilityZone     |
| `Reservations.Instances.Placement.Affinity`             | string   | Output field: Reservations.Instances.Placement.Affinity             |
| `Reservations.Instances.Placement.GroupName`            | string   | Name of the resource                                                |
| `Reservations.Instances.Placement.PartitionNumber`      | number   | Output field: Reservations.Instances.Placement.PartitionNumber      |
| `Reservations.Instances.Placement.HostId`               | string   | Unique identifier                                                   |
| `Reservations.Instances.Placement.Tenancy`              | string   | Output field: Reservations.Instances.Placement.Tenancy              |
| `Reservations.Instances.Placement.SpreadDomain`         | string   | Output field: Reservations.Instances.Placement.SpreadDomain         |
| `Reservations.Instances.Placement.HostResourceGroupArn` | string   | Output field: Reservations.Instances.Placement.HostResourceGroupArn |
| `Reservations.Instances.Placement.GroupId`              | string   | Unique identifier                                                   |
| `Reservations.Instances.Platform`                       | string   | Output field: Reservations.Instances.Platform                       |

### Output Example

`{"Reservations":[{"Groups":[],"Instances":[],"OwnerId":"string","RequesterId":"string","ReservationId":"string"}],"NextToken":"string"}`

## List Security Groups

Retrieve details of specified or all security groups associated with your Amazon AWS EC2 account.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                                                                               |
| ----------------- | -------- | ------------ | --------------------------------------------------------------------------------------------- |
| `Filters`         | array    | Optional     | Parameter for List Security Groups                                                            |
| `Filters.Name`    | string   | Optional     | Name of the resource                                                                          |
| `Filters.Values`  | array    | Optional     | Value for the parameter                                                                       |
| `GroupIds`        | array    | Optional     | Unique identifier                                                                             |
| `GroupNames`      | array    | Optional     | Name of the resource                                                                          |
| `DryRun`          | boolean  | Optional     | Parameter for List Security Groups                                                            |
| `MaxResults`      | number   | Optional     | The maximum number of items to return for this request. This value can be between 5 and 1000. |
| `NextToken`       | string   | Optional     | Parameter for List Security Groups                                                            |

### Input Example

`{"Filters":[{"Name":"string","Values":["string"]}],"GroupIds":["string"],"GroupNames":["string"],"DryRun":true}`

### Output

| **Parameter**                                                          | **Type** | **Description**                                                   |
| ---------------------------------------------------------------------- | -------- | ----------------------------------------------------------------- |
| `SecurityGroups`                                                       | array    | Output field: SecurityGroups                                      |
| `SecurityGroups.Description`                                           | string   | Output field: SecurityGroups.Description                          |
| `SecurityGroups.GroupName`                                             | string   | Name of the resource                                              |
| `SecurityGroups.IpPermissions`                                         | array    | Output field: SecurityGroups.IpPermissions                        |
| `SecurityGroups.IpPermissions.FromPort`                                | number   | Output field: SecurityGroups.IpPermissions.FromPort               |
| `SecurityGroups.IpPermissions.IpProtocol`                              | string   | Output field: SecurityGroups.IpPermissions.IpProtocol             |
| `SecurityGroups.IpPermissions.IpRanges`                                | array    | Output field: SecurityGroups.IpPermissions.IpRanges               |
| `SecurityGroups.IpPermissions.IpRanges.CidrIp`                         | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.IpRanges.Description`                    | string   | Output field: SecurityGroups.IpPermissions.IpRanges.Description   |
| `SecurityGroups.IpPermissions.Ipv6Ranges`                              | array    | Output field: SecurityGroups.IpPermissions.Ipv6Ranges             |
| `SecurityGroups.IpPermissions.Ipv6Ranges.CidrIpv6`                     | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.Ipv6Ranges.Description`                  | string   | Output field: SecurityGroups.IpPermissions.Ipv6Ranges.Description |
| `SecurityGroups.IpPermissions.PrefixListIds`                           | array    | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.PrefixListIds.Description`               | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.PrefixListIds.PrefixListId`              | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.ToPort`                                  | number   | Output field: SecurityGroups.IpPermissions.ToPort                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs`                        | array    | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.Description`            | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.GroupId`                | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.GroupName`              | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.PeeringStatus`          | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.UserId`                 | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.VpcId`                  | string   | Unique identifier                                                 |
| `SecurityGroups.IpPermissions.UserIdGroupPairs.VpcPeeringConnectionId` | string   | Unique identifier                                                 |
| `SecurityGroups.OwnerId`                                               | string   | Unique identifier                                                 |

### Output Example

`{"SecurityGroups":[{"Description":"string","GroupName":"string","IpPermissions":[],"OwnerId":"string","GroupId":"string","IpPermissionsEgress":[],"Tags":[],"VpcId":"string"}],"NextToken":"string"}`

## Quarantine Instance

Isolate an Amazon AWS EC2 instance by modifying its Security Groups. Requires 'instance\_id' and 'vpc\_id'.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**   |
| ----------------- | -------- | ------------ | ----------------- |
| `instance_id`     | string   | Required     | Unique identifier |
| `vpc_id`          | string   | Required     | Unique identifier |

### Input Example

`{"instance_id":"string","vpc_id":"string"}`

### Output

| **Parameter** | **Type** | **Description**                      |
| ------------- | -------- | ------------------------------------ |
| `success`     | boolean  | Whether the operation was successful |
| `group_name`  | string   | Name of the resource                 |

### Output Example

`{"success":true,"group_name":"string"}`

## Snapshot Instance

Create a snapshot of an Amazon AWS EC2 instance using the specified instance ID.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**   |
| ----------------- | -------- | ------------ | ----------------- |
| `instance_id`     | string   | Required     | Unique identifier |

### Input Example

`{"instance_id":"string"}`

### Output

| **Parameter**          | **Type** | **Description**                    |
| ---------------------- | -------- | ---------------------------------- |
| `snapshot`             | array    | Output field: snapshot             |
| `snapshot.Description` | string   | Output field: snapshot.Description |
| `snapshot.Tags`        | object   | Output field: snapshot.Tags        |
| `snapshot.Tags.type`   | number   | Type of the resource               |
| `snapshot.Tags.name`   | string   | Name of the resource               |
| `snapshot.Encrypted`   | boolean  | Output field: snapshot.Encrypted   |
| `snapshot.VolumeId`    | string   | Unique identifier                  |
| `snapshot.State`       | string   | Output field: snapshot.State       |
| `snapshot.VolumeSize`  | number   | Output field: snapshot.VolumeSize  |
| `snapshot.Progress`    | string   | Output field: snapshot.Progress    |
| `snapshot.StartTime`   | string   | Time value                         |
| `snapshot.OwnerId`     | string   | Unique identifier                  |
| `snapshot.SnapshotId`  | string   | Unique identifier                  |

### Output Example

`{"snapshot":[{"Description":"string","Tags":{},"Encrypted":true,"VolumeId":"string","State":"string","VolumeSize":1024,"Progress":"string","StartTime":"string","OwnerId":"string","SnapshotId":"string"}]}`

## Start Instance

Initiate the start process for a previously stopped Amazon EBS-backed EC2 instance using the 'InstanceIds' parameter.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**              |
| ----------------- | -------- | ------------ | ---------------------------- |
| `InstanceIds`     | array    | Required     | Unique identifier            |
| `AdditionalInfo`  | string   | Optional     | Parameter for Start Instance |
| `DryRun`          | boolean  | Optional     | Parameter for Start Instance |

### Input Example

`{"InstanceIds":["string"],"AdditionalInfo":"string","DryRun":true}`

### Output

| **Parameter**                          | **Type** | **Description**                                    |
| -------------------------------------- | -------- | -------------------------------------------------- |
| `StartingInstances`                    | array    | Output field: StartingInstances                    |
| `StartingInstances.CurrentState`       | object   | Output field: StartingInstances.CurrentState       |
| `StartingInstances.CurrentState.Code`  | number   | Output field: StartingInstances.CurrentState.Code  |
| `StartingInstances.CurrentState.Name`  | string   | Name of the resource                               |
| `StartingInstances.InstanceId`         | string   | Unique identifier                                  |
| `StartingInstances.PreviousState`      | object   | Output field: StartingInstances.PreviousState      |
| `StartingInstances.PreviousState.Code` | number   | Output field: StartingInstances.PreviousState.Code |
| `StartingInstances.PreviousState.Name` | string   | Name of the resource                               |

### Output Example

`{"StartingInstances":[{"CurrentState":{},"InstanceId":"string","PreviousState":{}}]}`

## Stop Instance

Stop an Amazon EBS-backed instance by specifying the required InstanceIds.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                                                                |
| ----------------- | -------- | ------------ | ------------------------------------------------------------------------------ |
| `InstanceIds`     | array    | Required     | Unique identifier                                                              |
| `DryRun`          | boolean  | Optional     | Parameter for Stop Instance                                                    |
| `Hibernate`       | boolean  | Optional     | Hibernates the instance if the instance was enabled for hibernation at launch. |
| `Force`           | boolean  | Optional     | Forces the instances to stop.                                                  |

### Input Example

`{"InstanceIds":["string"],"DryRun":true}`

### Output

| **Parameter**                          | **Type** | **Description**                                    |
| -------------------------------------- | -------- | -------------------------------------------------- |
| `StoppingInstances`                    | array    | Output field: StoppingInstances                    |
| `StoppingInstances.CurrentState`       | object   | Output field: StoppingInstances.CurrentState       |
| `StoppingInstances.CurrentState.Code`  | number   | Output field: StoppingInstances.CurrentState.Code  |
| `StoppingInstances.CurrentState.Name`  | string   | Name of the resource                               |
| `StoppingInstances.InstanceId`         | string   | Unique identifier                                  |
| `StoppingInstances.PreviousState`      | object   | Output field: StoppingInstances.PreviousState      |
| `StoppingInstances.PreviousState.Code` | number   | Output field: StoppingInstances.PreviousState.Code |
| `StoppingInstances.PreviousState.Name` | string   | Name of the resource                               |

### Output Example

`{"StoppingInstances":[{"CurrentState":{},"InstanceId":"string","PreviousState":{}}]}`

## Update Security Group

Add or remove a security rule in an Amazon AWS EC2 Security Group by specifying direction, ports, protocol, and IP range.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name**   | **Type** | **Required** | **Description**                     |
| ------------------- | -------- | ------------ | ----------------------------------- |
| `group_id`          | string   | Required     | Unique identifier                   |
| `ingress_or_egress` | string   | Required     | Parameter for Update Security Group |
| `add_or_delete`     | string   | Required     | Parameter for Update Security Group |
| `from_port`         | number   | Required     | Parameter for Update Security Group |
| `to_port`           | number   | Required     | Parameter for Update Security Group |
| `ip_protocol`       | string   | Required     | Parameter for Update Security Group |
| `cidr`              | string   | Required     | Unique identifier                   |
| `description`       | string   | Optional     | Parameter for Update Security Group |

### Input Example

`{"group_id":"string","ingress_or_egress":"string","add_or_delete":"string","from_port":1234,"to_port":1234,"ip_protocol":"string","cidr":"string","description":"string"}`

### Output

| **Parameter** | **Type** | **Description** |
| ------------- | -------- | --------------- |
| `metadata`    | string   | Response data   |

### Output Example

`{"success":true}`

# Response Headers

| **Header**   | **Description**                                       | **Example**                   |
| ------------ | ----------------------------------------------------- | ----------------------------- |
| Content-Type | The media type of the resource                        | application/json              |
| Date         | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |
