---
name: "VM::EC2::SecurityGroup::GroupPermission"
section: "3pm"
platform: "linux"
package: "libvm-ec2-perl"
version: "1.28-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/VM::EC2::SecurityGroup::GroupPermission"
---

# VM::EC2::SecurityGroup::GroupPermission(3pm)

Object describing an authorized group within a security group firewall rule

## NAME

VM::EC2::SecurityGroup::GroupPermission - Object describing an authorized group within a security group firewall rule

## SYNOPSIS

```
  $ec2      = VM::EC2->new(...);
  $sg       = $ec2->describe_security_groups(-name=>'My Group');
  @rules = $sg->ipPermissions;
  $rule  = $rules[0];
  @groups = $rule->groups;
  for my $g (@groups) {
    $userId = $g->userId;
    $name   = $g>groupName;
    $id     = $g->groupId;
    $group_object = $g->security_group;
  }
```

## DESCRIPTION

This object describes a security group whose instances are granted permission to exchange data traffic with another group of instances. It is returned by the **groups()** method of VM::EC2::SecurityGroup::ipPermission.

Note that this object is not the same as a bona fide VM::EC2::SecurityGroup, which has access to the group's firewall rules. This object contains just the name, id and owner of a group used within a firewall rule. For groups that belong to you, you can get the full VM::EC2::SecurityGroup object by calling the **security\_group()** method. These details are not available to groups that belong to other accounts.

## METHODS

### $id = $group-\>groupId

Return the group's unique ID.

### $id = $group-\>userId

Return the account ID of the owner of this group.

### $id = $group-\>groupName

Return this group's name.

### $string = $group-\>short\_name

Return a string for use in string overloading. See "STRING OVERLOADING".

### $sg = $group-\>security\_group

For groups that belong to the current account, calls VM::EC2-\>**describe\_security\_groups()** to turn the group name into a VM::EC2::SecurityGroup. For groups that belong to a different account, will return undef, since **describe\_security\_groups()** on other accounts is not allowed by Amazon.

## STRING OVERLOADING

When used in a string context, this object will interpolate the user id and group name in the form "userId/groupName" for groups that belong to other accounts, and the groupName alone in the case of groups that belong to you.

## SEE ALSO

VM::EC2 VM::EC2::Generic VM::EC2::SecurityGroup VM::EC2::SecurityGroup::IpPermission

## AUTHOR

Lincoln Stein \<lincoln.stein@gmail.com\>.

Copyright (c) 2011 Ontario Institute for Cancer Research

This package and its accompanying libraries is free software; you can redistribute it and/or modify it under the terms of the GPL (either version 1, or at your option, any later version) or the Artistic License 2.0.  Refer to LICENSE for the full license text. In addition, please see DISCLAIMER.txt for disclaimers of warranty.
