Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
vendor /
google /
cloud-core /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
Batch
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Compute
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Exception
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iam
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iterator
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Lock
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Logger
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
LongRunning
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Report
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Testing
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Upload
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
AnonymousCredentials.php
2.4
KB
-rw-r--r--
2026-03-17 23:07
ApiHelperTrait.php
8.01
KB
-rw-r--r--
2026-03-17 23:07
ArrayTrait.php
3.45
KB
-rw-r--r--
2026-03-17 23:07
Blob.php
2.02
KB
-rw-r--r--
2026-03-17 23:07
ClientTrait.php
8.36
KB
-rw-r--r--
2026-03-17 23:07
ConcurrencyControlTrait.php
1.35
KB
-rw-r--r--
2026-03-17 23:07
DebugInfoTrait.php
1.28
KB
-rw-r--r--
2026-03-17 23:07
DetectProjectIdTrait.php
2.98
KB
-rw-r--r--
2026-03-17 23:07
Duration.php
2.1
KB
-rw-r--r--
2026-03-17 23:07
EmulatorTrait.php
2.74
KB
-rw-r--r--
2026-03-17 23:07
ExponentialBackoff.php
4.71
KB
-rw-r--r--
2026-03-17 23:07
GeoPoint.php
5.99
KB
-rw-r--r--
2026-03-17 23:07
GrpcRequestWrapper.php
4.59
KB
-rw-r--r--
2026-03-17 23:07
GrpcTrait.php
8.92
KB
-rw-r--r--
2026-03-17 23:07
InsecureCredentialsWrapper.php
982
B
-rw-r--r--
2026-03-17 23:07
Int64.php
1.7
KB
-rw-r--r--
2026-03-17 23:07
JsonTrait.php
2.15
KB
-rw-r--r--
2026-03-17 23:07
OptionsValidator.php
4
KB
-rw-r--r--
2026-03-17 23:07
PhpArray.php
7.2
KB
-rw-r--r--
2026-03-17 23:07
RequestBuilder.php
5.18
KB
-rw-r--r--
2026-03-17 23:07
RequestHandler.php
4.18
KB
-rw-r--r--
2026-03-17 23:07
RequestProcessorTrait.php
4.47
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapper.php
20.98
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapperTrait.php
6.94
KB
-rw-r--r--
2026-03-17 23:07
RestTrait.php
4.78
KB
-rw-r--r--
2026-03-17 23:07
Retry.php
3.33
KB
-rw-r--r--
2026-03-17 23:07
RetryDeciderTrait.php
2.79
KB
-rw-r--r--
2026-03-17 23:07
ServiceBuilder.php
14.2
KB
-rw-r--r--
2026-03-17 23:07
SysvTrait.php
1.81
KB
-rw-r--r--
2026-03-17 23:07
TimeTrait.php
4.46
KB
-rw-r--r--
2026-03-17 23:07
Timestamp.php
4.02
KB
-rw-r--r--
2026-03-17 23:07
TimestampTrait.php
1.53
KB
-rw-r--r--
2026-03-17 23:07
UriTrait.php
1.78
KB
-rw-r--r--
2026-03-17 23:07
ValidateTrait.php
2.27
KB
-rw-r--r--
2026-03-17 23:07
ValueMapperTrait.php
1.74
KB
-rw-r--r--
2026-03-17 23:07
WhitelistTrait.php
1.13
KB
-rw-r--r--
2026-03-17 23:07
Save
Rename
<?php /** * Copyright 2025 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Cloud\Core; use Google\ApiCore\ArrayTrait; use Google\ApiCore\Options\CallOptions; use Google\ApiCore\Serializer; use Google\Protobuf\Internal\Message; use LogicException; /** * Helper used to validate options * * @internal */ class OptionsValidator { use ArrayTrait; /** * @param ?Serializer $serializer use a serializer to decode protobuf messages * instead of calling {@see Message::mergeFromJsonString()}. */ public function __construct( private ?Serializer $serializer = null ) { } /** * Validate an array of options based on the supplied `$optionTypes`. * $optionTypes can be an array of string keys, a protobuf Message classname, or a * the CallOptions classname. Parameters are split and returned in the order * that the options types are provided. * * - If the option type is an array, any keys in $options matching the string values * of the array are returned. * - If the option type is {@see Message}, any keys matching getters will be set on the message. * - If the option type is string, and that string is a valid {@see CallOptions} option, those * options will be returned in an array * * ``` * [$customOps, $commitRequest, $callOptions] = $optionsValidator->vaidateOptions( * $options, * ['customOp1', 'customOp2'], * new CommitRequest(), * CallOptions::class, * ); * ``` * * @param array $options * @param array|Message|string ...$optionTypes * @return array * @throws LogicException when a value exists which is not supported by any of the `$optionTypes`. */ public function validateOptions(array $options, array|Message|string ...$optionTypes): array { $splitOptions = []; foreach ($optionTypes as $optionType) { if (is_array($optionType)) { $splitOptions[] = $this->pluckArray($optionType, $options); } elseif ($optionType === CallOptions::class) { $callOptionKeys = array_keys((new CallOptions([]))->toArray()); $splitOptions[] = $this->pluckArray($callOptionKeys, $options); } elseif ($optionType instanceof Message) { $messageKeys = array_map( fn ($method) => lcfirst(substr($method, 3)), array_filter( get_class_methods($optionType), fn ($m) => 0 === strpos($m, 'get') ) ); $messageOptions = $this->pluckArray($messageKeys, $options); if ($this->serializer) { $optionType = $this->serializer->decodeMessage($optionType, $messageOptions); } else { $optionType->mergeFromJsonString(json_encode($messageOptions, JSON_FORCE_OBJECT)); } $splitOptions[] = $optionType; } elseif (is_string($optionType)) { $splitOptions[] = $this->pluck($optionType, $options, false); } else { throw new LogicException(sprintf('Invalid option type: %s', $optionType)); } } if (!empty($options)) { throw new LogicException( 'Unexpected option(s) provided: ' . implode(', ', array_keys($options)) ); } return $splitOptions; } }