/** * Creates Security Group Rule (POST /security-group-rules) * * @param CreateSecurityGroupRule|object|array $request The request object * @return object Returns Security Group Rule object */ public function createSecurityGroupRule($request) { if (!is_array($request)) { $request = get_object_vars($request); } if ($this->hasNetworkSecurityGroupExtension()) { $requestObject = CreateSecurityGroupRule::initArray($request); $result = $this->network->securityGroups->addRule($requestObject); } else { $requestData = array('parent_group_id' => $request['security_group_id'], 'ip_protocol' => !empty($request['protocol']) ? $request['protocol'] : null, 'from_port' => $request['port_range_min'], 'to_port' => $request['port_range_max'], 'cidr' => !empty($request['remote_ip_prefix']) ? $request['remote_ip_prefix'] : null, 'group_id' => !empty($request['remote_group_id']) ? $request['remote_group_id'] : null); $result = $this->servers->securityGroups->addRule($requestData); } return $result; }
/** * Creates Security Group Rule (POST /security-group-rules) * * @param CreateSecurityGroupRule|array $request The request object * @return object Returns Security Group Rule object * @throws RestClientException */ public function createSecurityGroupRule($request) { if (!$request instanceof CreateSecurityGroupRule) { $request = CreateSecurityGroupRule::initArray($request); } return $this->getApiHandler()->createSecurityGroupRule($request); }