Scalr\Service\Aws\Ec2\V20140615\Ec2Api::describeAvailabilityZones PHP Метод

describeAvailabilityZones() публичный Метод

Describes one or more of the Availability Zones that are currently available to the account. The results include zones only for the region you're currently using. Note! Availability Zones are not the same across accounts.The Availability Zone us-east-1a for account A is not necessarily the same as us-east-1a for account B. Zone assignments are mapped independently for each account.
public describeAvailabilityZones ( ListDataType $zoneName = null, Scalr\Service\Aws\Ec2\DataType\AvailabilityZoneFilterList $filter = null ) : Scalr\Service\Aws\Ec2\DataType\AvailabilityZoneList
$zoneName Scalr\Service\Aws\DataType\ListDataType optional Zone Name List to filter.
$filter Scalr\Service\Aws\Ec2\DataType\AvailabilityZoneFilterList optional Filter to apply.
Результат Scalr\Service\Aws\Ec2\DataType\AvailabilityZoneList Returns the list of Availability Zones
    public function describeAvailabilityZones(ListDataType $zoneName = null, AvailabilityZoneFilterList $filter = null)
    {
        $result = null;
        $isSoap = $this->client->getType() == Aws::CLIENT_SOAP;
        $options = array();
        if ($zoneName !== null) {
            if ($isSoap) {
                foreach ($zoneName as $v) {
                    $options['availabilityZoneSet']['item'][] = array('zoneName' => $v);
                }
            } else {
                $options = $zoneName->getQueryArrayBare('ZoneName');
            }
        }
        if ($filter !== null) {
            if ($isSoap) {
                foreach ($filter as $v) {
                    $vals = array();
                    foreach ($v->value as $vs) {
                        $vals[] = array('value' => $vs);
                    }
                    $t = array('name' => $v->name, 'valueSet' => array('item' => $vals));
                    $options['filterSet']['item'][] = $t;
                }
            } else {
                $options = array_merge($options, $filter->getQueryArrayBare('Filter'));
            }
        }
        $response = $this->client->call(ucfirst(__FUNCTION__), $options);
        if ($response->getError() === false) {
            //Success
            $sxml = simplexml_load_string($response->getRawContent());
            unset($response);
            if (!empty($sxml->availabilityZoneInfo->item)) {
                $result = new AvailabilityZoneList();
                $result->setEc2($this->ec2)->setRequestId((string) $sxml->requestId);
                foreach ($sxml->availabilityZoneInfo->item as $v) {
                    $zname = (string) $v->zoneName;
                    $item = $this->ec2->getEntityManagerEnabled() ? $this->ec2->availabilityZone->get($zname) : null;
                    if ($item === null) {
                        $item = new AvailabilityZoneData();
                        $item->setEc2($this->ec2);
                        $bAttach = true;
                    } else {
                        $bAttach = false;
                    }
                    $messageList = new AvailabilityZoneMessageList();
                    $messageList->setEc2($this->ec2);
                    if (!empty($v->messageSet->item)) {
                        foreach ($v->messageSet->item as $m) {
                            $message = new AvailabilityZoneMessageData();
                            $message->setEc2($this->ec2);
                            $message->message = (string) $m->message;
                            $messageList->append($message);
                            unset($message);
                        }
                    }
                    $item->zoneName = $zname;
                    $item->zoneState = (string) $v->zoneState;
                    $item->regionName = (string) $v->regionName;
                    $item->setMessageSet($messageList);
                    $result->append($item);
                    if ($bAttach && $this->ec2->getEntityManagerEnabled()) {
                        $this->getEntityManager()->attach($item);
                    }
                    unset($item);
                }
            }
        }
        return $result;
    }
Ec2Api