public static function toGetBucketInfo()

in src/Transform/BucketBasic.php [347:391]


    public static function toGetBucketInfo(OperationOutput $output): Models\GetBucketInfoResult
    {
        $result = new Models\GetBucketInfoResult();
        $customDeserializer = [
            static function (Models\GetBucketInfoResult $result, OperationOutput $output) {
                $body = $output->getBody() != null ? $output->getBody()->getContents() : '';
                Functions::assertXmlRoot($body, 'BucketInfo');
                $xml = Utils::parseXml($body);
                Functions::assertXmlNodeExist($xml->Bucket, 'Bucket');
                $info = new Models\BucketInfo();
                $xml = $xml->Bucket;
                $info->name = Functions::tryToString($xml->Name);
                $info->accessMonitor = Functions::tryToString($xml->AccessMonitor);
                $info->location = Functions::tryToString($xml->Location);
                $info->creationDate = Functions::tryToDatetime($xml->CreationDate, 'Y-m-d\TH:i:s.000\Z');
                $info->extranetEndpoint = Functions::tryToString($xml->ExtranetEndpoint);
                $info->intranetEndpoint = Functions::tryToString($xml->IntranetEndpoint);
                $info->acl = isset($xml->AccessControlList) ? Functions::tryToString($xml->AccessControlList->Grant) : null;
                $info->dataRedundancyType = Functions::tryToString($xml->DataRedundancyType);
                $info->owner = isset($xml->Owner) ? new Models\Owner(
                    Functions::tryToString($xml->Owner->ID),
                    Functions::tryToString($xml->Owner->DisplayName)
                ) : null;
                $info->storageClass = Functions::tryToString($xml->StorageClass);
                $info->resourceGroupId = Functions::tryToString($xml->ResourceGroupId);
                $info->sseRule = isset($xml->ServerSideEncryptionRule) ? new Models\ServerSideEncryptionRuleInfo(
                    Functions::tryToString($xml->ServerSideEncryptionRule->KMSMasterKeyID),
                    Functions::tryToString($xml->ServerSideEncryptionRule->SSEAlgorithm),
                    Functions::tryToString($xml->ServerSideEncryptionRule->KMSDataEncryption),
                ) : null;
                $info->versioning = Functions::tryToString($xml->Versioning);
                $info->transferAcceleration = Functions::tryToString($xml->TransferAcceleration);
                $info->crossRegionReplication = Functions::tryToString($xml->CrossRegionReplication);
                $info->bucketPolicy = isset($xml->BucketPolicy) ? new Models\BucketPolicy(
                    Functions::tryToString($xml->BucketPolicy->LogBucket),
                    Functions::tryToString($xml->BucketPolicy->LogPrefix)
                ) : null;
                $info->comment = Functions::tryToString($xml->Comment);
                $info->blockPublicAccess = Functions::tryToBool($xml->BlockPublicAccess);
                $result->bucketInfo = $info;
            },
        ];
        Deserializer::deserializeOutput($result, $output, $customDeserializer);
        return $result;
    }