/** * Authorize Security Group Ingress Action Sample * The AuthorizeSecurityGroupIngress operation adds permissions to a security * group. * Permissions are specified by the IP protocol (TCP, UDP or ICMP), the source of * the request (by IP range or an Amazon EC2 user-group pair), the source and * destination port ranges (for TCP and UDP), and the ICMP codes and types (for * ICMP). When authorizing ICMP, -1 can be used as a wildcard in the type and code * fields. * Permission changes are propagated to instances within the security group as * quickly as possible. However, depending on the number of instances, a small * delay might occur. * When authorizing a user/group pair permission, GroupName, * SourceSecurityGroupName and SourceSecurityGroupOwnerId must be specified. When * authorizing a CIDR IP permission, GroupName, IpProtocol, FromPort, ToPort and * CidrIp must be specified. Mixing these two types of parameters is not allowed. * * @param Amazon_EC2_Interface $service instance of Amazon_EC2_Interface * @param mixed $request Amazon_EC2_Model_AuthorizeSecurityGroupIngress or array of parameters */ function invokeAuthorizeSecurityGroupIngress(Amazon_EC2_Interface $service, $request) { try { $response = $service->authorizeSecurityGroupIngress($request); echo "Service Response\n"; echo "=============================================================================\n"; echo " AuthorizeSecurityGroupIngressResponse\n"; if ($response->isSetResponseMetadata()) { echo " ResponseMetadata\n"; $responseMetadata = $response->getResponseMetadata(); if ($responseMetadata->isSetRequestId()) { echo " RequestId\n"; echo " " . $responseMetadata->getRequestId() . "\n"; } } } catch (Amazon_EC2_Exception $ex) { echo "Caught Exception: " . $ex->getMessage() . "\n"; echo "Response Status Code: " . $ex->getStatusCode() . "\n"; echo "Error Code: " . $ex->getErrorCode() . "\n"; echo "Error Type: " . $ex->getErrorType() . "\n"; echo "Request ID: " . $ex->getRequestId() . "\n"; echo "XML: " . $ex->getXML() . "\n"; } }