initialize(); return $this->serverSideEncryptionConfiguration; } protected function populateResult(Response $response): void { $data = new \SimpleXMLElement($response->getContent()); $this->serverSideEncryptionConfiguration = new ServerSideEncryptionConfiguration([ 'Rules' => $this->populateResultServerSideEncryptionRules($data->Rule), ]); } /** * @return ServerSideEncryptionRule[] */ private function populateResultServerSideEncryptionRules(\SimpleXMLElement $xml): array { $items = []; foreach ($xml as $item) { $items[] = new ServerSideEncryptionRule([ 'ApplyServerSideEncryptionByDefault' => !$item->ApplyServerSideEncryptionByDefault ? null : new ServerSideEncryptionByDefault([ 'SSEAlgorithm' => (string) $item->ApplyServerSideEncryptionByDefault->SSEAlgorithm, 'KMSMasterKeyID' => ($v = $item->ApplyServerSideEncryptionByDefault->KMSMasterKeyID) ? (string) $v : null, ]), 'BucketKeyEnabled' => ($v = $item->BucketKeyEnabled) ? filter_var((string) $v, \FILTER_VALIDATE_BOOLEAN) : null, ]); } return $items; } }