Interface SecurityGroupExtension

All Known Implementing Classes:
AWSEC2SecurityGroupExtension, AzureComputeSecurityGroupExtension, CloudStackSecurityGroupExtension, EC2SecurityGroupExtension, NeutronSecurityGroupExtension, NovaSecurityGroupExtension, StubSecurityGroupExtension

public interface SecurityGroupExtension
An extension to compute service to allow for the manipulation of SecurityGroups. Implementation is optional by providers.
  • Method Details

    • listSecurityGroups

      Set<SecurityGroup> listSecurityGroups()
      List security groups.
      Returns:
      The set of @{link SecurityGroup}s we have access to.
    • listSecurityGroupsInLocation

      Set<SecurityGroup> listSecurityGroupsInLocation(Location location)
      List security groups in a given @{link Location}.
      Returns:
      The set of @{link SecurityGroup}s we have access to in the given location.
    • listSecurityGroupsForNode

      Set<SecurityGroup> listSecurityGroupsForNode(String id)
      List security groups for a given instance given the instance's ID.
      Returns:
      The set of @{link SecurityGroup}s for the given instance..
    • getSecurityGroupById

      SecurityGroup getSecurityGroupById(String id)
      Get a security group by id.
      Returns:
      The @{link SecurityGroup}, if it exists.
    • createSecurityGroup

      SecurityGroup createSecurityGroup(String name, Location location)
      Create a new @{link SecurityGroup} from the parameters given.
      Parameters:
      name - The name of the security group
      location - The @{link Location} of the security group
      Returns:
      The SecurityGroup that has been created.
    • removeSecurityGroup

      boolean removeSecurityGroup(String id)
      Remove an existing @{link SecurityGroup}, and its permissions.
      Parameters:
      id - The id of the SecurityGroup to delete.
      Returns:
      true if we were able to remove the group, false otherwise.
    • addIpPermission

      SecurityGroup addIpPermission(IpPermission ipPermission, SecurityGroup group)
      Add a @{link IpPermission} to an existing @{link SecurityGroup}. Applies the permission to the security group on the provider.
      Parameters:
      group - The SecurityGroup to add the permission to.
      rule - The IpPermission to add.
      Returns:
      The SecurityGroup with the new permission added, after the permission has been applied on the provider.
    • removeIpPermission

      SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group)
      Remove a @{link IpPermission} from an existing @{link SecurityGroup}. Removes the permission from the security group on the provider.
      Parameters:
      group - The SecurityGroup to remove the permission from.
      rule - The IpPermission to remove.
      Returns:
      The SecurityGroup with the permission removed, after the permission has been removed on the provider.
    • addIpPermission

      SecurityGroup addIpPermission(IpProtocol protocol, int startPort, int endPort, com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs, Iterable<String> ipRanges, Iterable<String> groupIds, SecurityGroup group)
      Add a @{link IpPermission} to an existing @{link SecurityGroup}, based on the parameters given. Applies the permission to the security group on the provider.
      Parameters:
      protocol - The @{link IpProtocol} for the permission.
      startPort - The first port in the range to be opened, or -1 for ICMP.
      endPort - The last port in the range to be opened, or -1 for ICMP.
      tenantIdGroupNamePairs - source of traffic allowed is on basis of another group in a tenant, as opposed to by cidr
      ipRanges - An Iterable of Strings representing the IP range(s) the permission should allow.
      groupIds - An Iterable of @{link SecurityGroup} IDs this permission should allow.
      group - The SecurityGroup to add the permission to.
      Returns:
      The SecurityGroup with the new permission added, after the permission has been applied on the provider.
    • removeIpPermission

      SecurityGroup removeIpPermission(IpProtocol protocol, int startPort, int endPort, com.google.common.collect.Multimap<String,String> tenantIdGroupNamePairs, Iterable<String> ipRanges, Iterable<String> groupIds, SecurityGroup group)
      Remove a @{link IpPermission} from an existing @{link SecurityGroup}, based on the parameters given. Removes the permission from the security group on the provider.
      Parameters:
      protocol - The @{link IpProtocol} for the permission.
      startPort - The first port in the range to be opened, or -1 for ICMP.
      endPort - The last port in the range to be opened, or -1 for ICMP.
      tenantIdGroupNamePairs - source of traffic allowed is on basis of another group in a tenant, as opposed to by cidr
      ipRanges - An Iterable of Strings representing the IP range(s) the permission should allow.
      groupIds - An Iterable of @{link SecurityGroup} IDs this permission should allow.
      group - The SecurityGroup to remove the permission from.
      Returns:
      The SecurityGroup with the permission removed, after the permission has been removed from the provider.
    • supportsTenantIdGroupNamePairs

      boolean supportsTenantIdGroupNamePairs()
      Returns true if this SecurityGroupExtension supports tenant ID + group name pairs.
    • supportsTenantIdGroupIdPairs

      boolean supportsTenantIdGroupIdPairs()
      Returns true if this SecurityGroupExtension supports tenant ID + group ID pairs.
    • supportsGroupIds

      boolean supportsGroupIds()
      Returns true if this SecurityGroupExtension supports group IDs.
    • supportsPortRangesForGroups

      boolean supportsPortRangesForGroups()
      Returns true if this SecurityGroupExtension supports port ranges for group authorization.
    • supportsExclusionCidrBlocks

      @Beta boolean supportsExclusionCidrBlocks()
      Returns true if this SecurityGroupExtension supports exclusion CIDR groups.