v2.1.3
This commit is contained in:
parent
3daee2df53
commit
19ef0566df
610 changed files with 21958 additions and 3112 deletions
|
|
@ -1,3 +1,11 @@
|
||||||
|
= 2.1.3 =
|
||||||
|
|
||||||
|
* Fixed nonce handling in manual quota refresh to correctly handle false values returned by filter_input().
|
||||||
|
* Fixed admin notices display to skip non-array notice entries.
|
||||||
|
* Fixed input normalization for recipients, attachments, and headers to properly skip non-string values instead of attempting unsafe casts.
|
||||||
|
* Removed unused internal method (dead code cleanup).
|
||||||
|
* Updated compatibility: tested up to WordPress 7.1.
|
||||||
|
|
||||||
= 2.1.2 =
|
= 2.1.2 =
|
||||||
|
|
||||||
* Fixed charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
|
* Fixed charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
|
||||||
|
|
|
||||||
400
class-robotstxt-updater.php
Normal file
400
class-robotstxt-updater.php
Normal file
|
|
@ -0,0 +1,400 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Generic JSON-based updater for ROBOTSTXT plugins.
|
||||||
|
*
|
||||||
|
* This file is designed to be copied to any ROBOTSTXT plugin.
|
||||||
|
* It auto-configures itself by reading the plugin headers.
|
||||||
|
*
|
||||||
|
* @package ROBOTSTXT
|
||||||
|
* @version 1.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! class_exists( 'Robotstxt_Updater' ) ) {
|
||||||
|
/**
|
||||||
|
* Class Robotstxt_Updater
|
||||||
|
*
|
||||||
|
* Generic updater that works with any plugin.
|
||||||
|
* Reads plugin headers and constructs update URL automatically.
|
||||||
|
*/
|
||||||
|
class Robotstxt_Updater {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin file path.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $plugin_file_path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin basename (e.g., 'my-plugin/my-plugin.php').
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $plugin_basename;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin slug (directory name).
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $plugin_slug;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remote JSON URL.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $json_url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cache key.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $cache_key;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin headers.
|
||||||
|
*
|
||||||
|
* @var array<string, string|bool>
|
||||||
|
*/
|
||||||
|
private array $plugin_data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the updater.
|
||||||
|
*
|
||||||
|
* Usage in your main plugin file:
|
||||||
|
* require_once __DIR__ . '/robotstxt-updater.php';
|
||||||
|
* Robotstxt_Updater::init( __FILE__ );
|
||||||
|
*
|
||||||
|
* @param string $plugin_file_path Absolute path to the main plugin file.
|
||||||
|
*/
|
||||||
|
public static function init( string $plugin_file_path ): void {
|
||||||
|
$instance = new self( $plugin_file_path );
|
||||||
|
$instance->register();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param string $plugin_file_path Absolute path to the main plugin file.
|
||||||
|
*/
|
||||||
|
private function __construct( string $plugin_file_path ) {
|
||||||
|
$this->plugin_file_path = $plugin_file_path;
|
||||||
|
$this->plugin_basename = plugin_basename( $plugin_file_path );
|
||||||
|
$this->plugin_slug = dirname( $this->plugin_basename );
|
||||||
|
$this->plugin_data = $this->get_plugin_data();
|
||||||
|
$this->json_url = $this->build_json_url();
|
||||||
|
$this->cache_key = 'robotstxt_updater_' . md5( $this->plugin_basename );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register WordPress hooks.
|
||||||
|
*/
|
||||||
|
private function register(): void {
|
||||||
|
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'inject_update_info' ) );
|
||||||
|
add_filter( 'plugins_api', array( $this, 'provide_plugin_details' ), 10, 3 );
|
||||||
|
add_action( 'admin_init', array( $this, 'handle_cache_clear' ) );
|
||||||
|
add_action( 'robotstxt_updater_clear_cache', array( $this, 'clear_cache' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get plugin headers.
|
||||||
|
*
|
||||||
|
* @return array<string, string|bool> Plugin data.
|
||||||
|
*/
|
||||||
|
private function get_plugin_data(): array {
|
||||||
|
if ( ! function_exists( 'get_plugin_data' ) ) {
|
||||||
|
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
return get_plugin_data( $this->plugin_file_path, false, false );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build JSON URL from plugin headers.
|
||||||
|
*
|
||||||
|
* Tries to use "Gitea Plugin URI" header to construct the URL.
|
||||||
|
* Falls back to Plugin URI if Gitea URI is not available.
|
||||||
|
*
|
||||||
|
* @return string JSON URL.
|
||||||
|
*/
|
||||||
|
private function build_json_url(): string {
|
||||||
|
// Try Gitea Plugin URI (format: "OWNER/REPO" or full URL).
|
||||||
|
$gitea_uri_raw = $this->plugin_data['Gitea Plugin URI'] ?? '';
|
||||||
|
if ( ! empty( $gitea_uri_raw ) && is_string( $gitea_uri_raw ) ) {
|
||||||
|
$gitea_uri = $gitea_uri_raw;
|
||||||
|
|
||||||
|
// If it's already a full URL, use it.
|
||||||
|
if ( str_starts_with( $gitea_uri, 'http' ) ) {
|
||||||
|
// Extract base URL and construct JSON path.
|
||||||
|
return rtrim( $gitea_uri, '/' ) . '/raw/branch/main/update.json';
|
||||||
|
}
|
||||||
|
|
||||||
|
// If it's in format "OWNER/REPO", construct full URL.
|
||||||
|
if ( preg_match( '#^[^/]+/[^/]+$#', $gitea_uri ) ) {
|
||||||
|
return "https://git.robotstxt.es/{$gitea_uri}/raw/branch/main/update.json";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: try to extract from Plugin URI.
|
||||||
|
$plugin_uri_raw = $this->plugin_data['PluginURI'] ?? '';
|
||||||
|
if ( ! empty( $plugin_uri_raw ) && is_string( $plugin_uri_raw ) ) {
|
||||||
|
$plugin_uri = $plugin_uri_raw;
|
||||||
|
if ( str_contains( $plugin_uri, 'git.robotstxt.es' ) ) {
|
||||||
|
return rtrim( $plugin_uri, '/' ) . '/raw/branch/main/update.json';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last resort: construct from plugin slug.
|
||||||
|
return "https://git.robotstxt.es/ROBOTSTXT/{$this->plugin_slug}/raw/branch/main/update.json";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inject update info into WP's plugin update transient.
|
||||||
|
*
|
||||||
|
* @param object|mixed $transient The update_plugins transient.
|
||||||
|
*
|
||||||
|
* @return object The modified transient.
|
||||||
|
*/
|
||||||
|
public function inject_update_info( $transient ) {
|
||||||
|
if ( ! $transient instanceof stdClass ) {
|
||||||
|
$transient = new stdClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( empty( $transient->checked ) || ! is_array( $transient->checked ) ) {
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( empty( $transient->checked[ $this->plugin_basename ] ) ) {
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
|
|
||||||
|
$current_version_raw = $transient->checked[ $this->plugin_basename ] ?? '';
|
||||||
|
$current_version = is_string( $current_version_raw ) ? $current_version_raw : '';
|
||||||
|
$remote = $this->get_remote_data();
|
||||||
|
|
||||||
|
$remote_version = isset( $remote['version'] ) && is_string( $remote['version'] ) ? $remote['version'] : '';
|
||||||
|
$remote_download = isset( $remote['download_url'] ) && is_string( $remote['download_url'] ) ? $remote['download_url'] : '';
|
||||||
|
|
||||||
|
if ( '' === $remote_version || '' === $remote_download ) {
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $this->is_compatible( $remote ) ) {
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( version_compare( $remote_version, $current_version, '>' ) ) {
|
||||||
|
$plugin_uri = $this->plugin_data['PluginURI'] ?? '';
|
||||||
|
$update = (object) array(
|
||||||
|
'slug' => isset( $remote['slug'] ) && is_string( $remote['slug'] ) ? $remote['slug'] : $this->plugin_slug,
|
||||||
|
'plugin' => $this->plugin_basename,
|
||||||
|
'new_version' => $remote_version,
|
||||||
|
'url' => isset( $remote['homepage'] ) && is_string( $remote['homepage'] ) ? $remote['homepage'] : ( is_string( $plugin_uri ) ? $plugin_uri : '' ),
|
||||||
|
'package' => $remote_download,
|
||||||
|
'tested' => isset( $remote['tested'] ) && is_string( $remote['tested'] ) ? $remote['tested'] : '',
|
||||||
|
'requires' => isset( $remote['requires'] ) && is_string( $remote['requires'] ) ? $remote['requires'] : '',
|
||||||
|
'requires_php' => isset( $remote['requires_php'] ) && is_string( $remote['requires_php'] ) ? $remote['requires_php'] : '',
|
||||||
|
);
|
||||||
|
|
||||||
|
$transient->response[ $this->plugin_basename ] = $update;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide "View details" modal content.
|
||||||
|
*
|
||||||
|
* @param false|object|array<string, mixed> $result The result object or array.
|
||||||
|
* @param string $action The type of information being requested.
|
||||||
|
* @param object $args Plugin API arguments.
|
||||||
|
*
|
||||||
|
* @return false|object|array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function provide_plugin_details( $result, string $action, object $args ) {
|
||||||
|
if ( 'plugin_information' !== $action ) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( empty( $args->slug ) || $args->slug !== $this->plugin_slug ) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$remote = $this->get_remote_data();
|
||||||
|
|
||||||
|
$remote_version = isset( $remote['version'] ) && is_string( $remote['version'] ) ? $remote['version'] : '';
|
||||||
|
|
||||||
|
if ( '' === $remote_version ) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$pd_name = $this->plugin_data['Name'] ?? '';
|
||||||
|
$pd_author = $this->plugin_data['Author'] ?? '';
|
||||||
|
$pd_plugin_uri = $this->plugin_data['PluginURI'] ?? '';
|
||||||
|
$pd_description = $this->plugin_data['Description'] ?? '';
|
||||||
|
|
||||||
|
return (object) array(
|
||||||
|
'name' => isset( $remote['name'] ) && is_string( $remote['name'] ) ? $remote['name'] : ( is_string( $pd_name ) ? $pd_name : $this->plugin_slug ),
|
||||||
|
'slug' => isset( $remote['slug'] ) && is_string( $remote['slug'] ) ? $remote['slug'] : $this->plugin_slug,
|
||||||
|
'version' => $remote_version,
|
||||||
|
'author' => isset( $remote['author'] ) && is_string( $remote['author'] ) ? $remote['author'] : ( is_string( $pd_author ) ? $pd_author : '' ),
|
||||||
|
'homepage' => isset( $remote['homepage'] ) && is_string( $remote['homepage'] ) ? $remote['homepage'] : ( is_string( $pd_plugin_uri ) ? $pd_plugin_uri : '' ),
|
||||||
|
'requires' => isset( $remote['requires'] ) && is_string( $remote['requires'] ) ? $remote['requires'] : '',
|
||||||
|
'tested' => isset( $remote['tested'] ) && is_string( $remote['tested'] ) ? $remote['tested'] : '',
|
||||||
|
'requires_php' => isset( $remote['requires_php'] ) && is_string( $remote['requires_php'] ) ? $remote['requires_php'] : '',
|
||||||
|
'sections' => array(
|
||||||
|
'description' => isset( $remote['description'] ) && is_string( $remote['description'] ) ? $remote['description'] : ( is_string( $pd_description ) ? $pd_description : '' ),
|
||||||
|
'changelog' => isset( $remote['changelog'] ) && is_string( $remote['changelog'] ) ? $remote['changelog'] : '',
|
||||||
|
),
|
||||||
|
'download_link' => isset( $remote['download_url'] ) && is_string( $remote['download_url'] ) ? $remote['download_url'] : '',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get remote data with caching and HMAC signature verification.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed> Remote data.
|
||||||
|
*/
|
||||||
|
private function get_remote_data(): array {
|
||||||
|
$cached = get_site_transient( $this->cache_key );
|
||||||
|
|
||||||
|
// Verify HMAC signature if AUTH_SALT is defined and cache has signature.
|
||||||
|
if ( false !== $cached && defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
|
||||||
|
if ( is_array( $cached ) && isset( $cached['signature'], $cached['data'] ) ) {
|
||||||
|
$expected_sig = hash_hmac( 'sha256', $this->cache_key . wp_json_encode( $cached['data'] ), AUTH_SALT );
|
||||||
|
|
||||||
|
if ( hash_equals( $expected_sig, $cached['signature'] ) ) {
|
||||||
|
// Signature valid, return data.
|
||||||
|
return is_array( $cached['data'] ) ? $cached['data'] : array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Signature invalid, delete corrupted cache.
|
||||||
|
delete_site_transient( $this->cache_key );
|
||||||
|
$cached = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no valid cache, fetch fresh data.
|
||||||
|
if ( false === $cached ) {
|
||||||
|
$remote = $this->fetch_json();
|
||||||
|
|
||||||
|
// Store with HMAC signature if AUTH_SALT is available.
|
||||||
|
if ( defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
|
||||||
|
$remote_data = ! empty( $remote ) ? $remote : array();
|
||||||
|
$payload = array(
|
||||||
|
'data' => $remote_data,
|
||||||
|
'timestamp' => time(),
|
||||||
|
'signature' => hash_hmac( 'sha256', $this->cache_key . wp_json_encode( $remote_data ), AUTH_SALT ),
|
||||||
|
);
|
||||||
|
set_site_transient( $this->cache_key, $payload, 6 * HOUR_IN_SECONDS );
|
||||||
|
} else {
|
||||||
|
// Fallback to standard caching.
|
||||||
|
set_site_transient( $this->cache_key, ( ! empty( $remote ) ? $remote : array() ), 6 * HOUR_IN_SECONDS );
|
||||||
|
}
|
||||||
|
|
||||||
|
return $remote;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Legacy cache format without signature (backward compatibility).
|
||||||
|
return is_array( $cached ) ? $cached : array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch JSON from remote URL.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed> Decoded JSON data.
|
||||||
|
*/
|
||||||
|
private function fetch_json(): array {
|
||||||
|
$response = wp_remote_get(
|
||||||
|
$this->json_url,
|
||||||
|
array(
|
||||||
|
'timeout' => 10,
|
||||||
|
'headers' => array(
|
||||||
|
'Accept' => 'application/json',
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( is_wp_error( $response ) ) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$code = (int) wp_remote_retrieve_response_code( $response );
|
||||||
|
if ( $code < 200 || $code >= 300 ) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$body = wp_remote_retrieve_body( $response );
|
||||||
|
$data = json_decode( $body, true );
|
||||||
|
|
||||||
|
return is_array( $data ) ? $data : array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check compatibility.
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $remote Remote data.
|
||||||
|
*
|
||||||
|
* @return bool True if compatible.
|
||||||
|
*/
|
||||||
|
private function is_compatible( array $remote ): bool {
|
||||||
|
$requires_php = isset( $remote['requires_php'] ) && is_string( $remote['requires_php'] ) ? $remote['requires_php'] : '';
|
||||||
|
if ( '' !== $requires_php ) {
|
||||||
|
if ( version_compare( PHP_VERSION, $requires_php, '<' ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$requires = isset( $remote['requires'] ) && is_string( $remote['requires'] ) ? $remote['requires'] : '';
|
||||||
|
if ( '' !== $requires ) {
|
||||||
|
if ( version_compare( get_bloginfo( 'version' ), $requires, '<' ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle manual cache clear via URL parameter.
|
||||||
|
*/
|
||||||
|
public function handle_cache_clear(): void {
|
||||||
|
// Check if this is a cache clear request first.
|
||||||
|
$clear_cache = filter_input( INPUT_GET, 'robotstxt_clear_update_cache', FILTER_UNSAFE_RAW );
|
||||||
|
if ( null === $clear_cache ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is a cache clear request - now verify nonce.
|
||||||
|
$nonce_raw = filter_input( INPUT_GET, '_wpnonce', FILTER_UNSAFE_RAW );
|
||||||
|
$nonce = $nonce_raw ? sanitize_text_field( wp_unslash( $nonce_raw ) ) : '';
|
||||||
|
|
||||||
|
if ( ! wp_verify_nonce( $nonce, 'robotstxt_clear_update_cache' ) ) {
|
||||||
|
wp_die( esc_html__( 'Security check failed', 'robotstxt-smtp-amazonses' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check permissions.
|
||||||
|
if ( ! current_user_can( 'update_plugins' ) ) {
|
||||||
|
wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'robotstxt-smtp-amazonses' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->clear_cache();
|
||||||
|
wp_safe_redirect( remove_query_arg( array( 'robotstxt_clear_update_cache', '_wpnonce' ) ) );
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear update cache.
|
||||||
|
*/
|
||||||
|
public function clear_cache(): void {
|
||||||
|
delete_site_transient( $this->cache_key );
|
||||||
|
delete_site_transient( 'update_plugins' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -126,12 +126,10 @@ class Plugin {
|
||||||
$secret_key = (string) ( $settings[ self::OPTION_SECRET_KEY ] ?? '' );
|
$secret_key = (string) ( $settings[ self::OPTION_SECRET_KEY ] ?? '' );
|
||||||
$region = (string) ( $settings[ self::OPTION_REGION ] ?? '' );
|
$region = (string) ( $settings[ self::OPTION_REGION ] ?? '' );
|
||||||
|
|
||||||
|
|
||||||
if ( '' === $access_key || '' === $secret_key || '' === $region ) {
|
if ( '' === $access_key || '' === $secret_key || '' === $region ) {
|
||||||
return $pre_wp_mail;
|
return $pre_wp_mail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$mail_data = \wp_parse_args(
|
$mail_data = \wp_parse_args(
|
||||||
$mail_data,
|
$mail_data,
|
||||||
array(
|
array(
|
||||||
|
|
@ -198,9 +196,9 @@ class Plugin {
|
||||||
/**
|
/**
|
||||||
* Sends the email data to Amazon SES using the SDK client.
|
* Sends the email data to Amazon SES using the SDK client.
|
||||||
*
|
*
|
||||||
* @param array<string, mixed> $mail_context Normalized mail data.
|
* @param array{to: array<int, string>, subject: string, message: string, headers: mixed, attachments: array<int, string>} $mail_context Normalized mail data.
|
||||||
* @param array<string, mixed> $settings Stored plugin settings.
|
* @param array{host: string, username: string, password: string, from_email: string, from_name: string, reply_to_email: string, reply_to_name: string, security: string, port: int, amazon_ses_access_key: string, amazon_ses_secret_key: string, amazon_ses_region: string, logs_enabled: bool, logs_retention_mode: string, logs_retention_count: int, logs_retention_days: int, stats_retention_days: int, rate_limit_per_second: int, rate_limit_per_hour: int, rate_limit_per_day: int, delete_data_on_uninstall: bool} $settings Stored plugin settings.
|
||||||
* @param array<string, mixed> $parsed_headers Structured header data.
|
* @param array{content_type: string|null, charset: string|null, cc: array<int, string>, bcc: array<int, string>, reply_to: array<int, string>, custom: array<int, array{name: string, value: string}>} $parsed_headers Structured header data.
|
||||||
* @param string $access_key AWS access key ID.
|
* @param string $access_key AWS access key ID.
|
||||||
* @param string $secret_key AWS secret access key.
|
* @param string $secret_key AWS secret access key.
|
||||||
* @param string $region AWS region identifier.
|
* @param string $region AWS region identifier.
|
||||||
|
|
@ -314,9 +312,9 @@ class Plugin {
|
||||||
/**
|
/**
|
||||||
* Builds a PHPMailer instance configured with the provided mail data.
|
* Builds a PHPMailer instance configured with the provided mail data.
|
||||||
*
|
*
|
||||||
* @param array<string, mixed> $mail_context Normalized mail data.
|
* @param array{to: array<int, string>, subject: string, message: string, headers: mixed, attachments: array<int, string>} $mail_context Normalized mail data.
|
||||||
* @param array<string, mixed> $settings Stored plugin settings.
|
* @param array{host: string, username: string, password: string, from_email: string, from_name: string, reply_to_email: string, reply_to_name: string, security: string, port: int, amazon_ses_access_key: string, amazon_ses_secret_key: string, amazon_ses_region: string, logs_enabled: bool, logs_retention_mode: string, logs_retention_count: int, logs_retention_days: int, stats_retention_days: int, rate_limit_per_second: int, rate_limit_per_hour: int, rate_limit_per_day: int, delete_data_on_uninstall: bool} $settings Stored plugin settings.
|
||||||
* @param array<string, mixed> $parsed_headers Structured header data.
|
* @param array{content_type: string|null, charset: string|null, cc: array<int, string>, bcc: array<int, string>, reply_to: array<int, string>, custom: array<int, array{name: string, value: string}>} $parsed_headers Structured header data.
|
||||||
*
|
*
|
||||||
* @return PHPMailer|WP_Error
|
* @return PHPMailer|WP_Error
|
||||||
*/
|
*/
|
||||||
|
|
@ -326,11 +324,18 @@ class Plugin {
|
||||||
$default_content_type = \apply_filters( 'wp_mail_content_type', 'text/plain' );
|
$default_content_type = \apply_filters( 'wp_mail_content_type', 'text/plain' );
|
||||||
$default_charset = \apply_filters( 'wp_mail_charset', \get_bloginfo( 'charset' ) );
|
$default_charset = \apply_filters( 'wp_mail_charset', \get_bloginfo( 'charset' ) );
|
||||||
|
|
||||||
$content_type = is_string( $parsed_headers['content_type'] ?? '' ) && '' !== $parsed_headers['content_type'] ? $parsed_headers['content_type'] : ( is_string( $default_content_type ) ? $default_content_type : 'text/plain' );
|
$content_type_header = $parsed_headers['content_type'];
|
||||||
$charset = is_string( $parsed_headers['charset'] ?? '' ) && '' !== $parsed_headers['charset'] ? $parsed_headers['charset'] : ( is_string( $default_charset ) ? $default_charset : 'utf-8' );
|
$content_type = ( null !== $content_type_header && '' !== $content_type_header )
|
||||||
|
? $content_type_header
|
||||||
|
: ( is_string( $default_content_type ) ? $default_content_type : 'text/plain' );
|
||||||
|
|
||||||
|
$charset_header = $parsed_headers['charset'];
|
||||||
|
$charset = ( null !== $charset_header && '' !== $charset_header )
|
||||||
|
? $charset_header
|
||||||
|
: ( is_string( $default_charset ) ? $default_charset : 'utf-8' );
|
||||||
|
|
||||||
// Ensure charset is never empty, null, or the string "null".
|
// Ensure charset is never empty, null, or the string "null".
|
||||||
$charset = \trim( (string) $charset );
|
$charset = \trim( $charset );
|
||||||
if ( '' === $charset || 'null' === \strtolower( $charset ) ) {
|
if ( '' === $charset || 'null' === \strtolower( $charset ) ) {
|
||||||
$charset = 'utf-8';
|
$charset = 'utf-8';
|
||||||
}
|
}
|
||||||
|
|
@ -538,43 +543,43 @@ class Plugin {
|
||||||
/**
|
/**
|
||||||
* Determines the From email address based on the stored settings and filters.
|
* Determines the From email address based on the stored settings and filters.
|
||||||
*
|
*
|
||||||
* @param array<string, mixed> $settings Stored plugin settings.
|
* @param array{host: string, username: string, password: string, from_email: string, from_name: string, reply_to_email: string, reply_to_name: string, security: string, port: int, amazon_ses_access_key: string, amazon_ses_secret_key: string, amazon_ses_region: string, logs_enabled: bool, logs_retention_mode: string, logs_retention_count: int, logs_retention_days: int, stats_retention_days: int, rate_limit_per_second: int, rate_limit_per_hour: int, rate_limit_per_day: int, delete_data_on_uninstall: bool} $settings Stored plugin settings.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function determine_from_email( array $settings ): string {
|
private function determine_from_email( array $settings ): string {
|
||||||
$default_email = \get_bloginfo( 'admin_email' );
|
$default_email = \get_bloginfo( 'admin_email' );
|
||||||
|
|
||||||
if ( isset( $settings['from_email'] ) && \is_email( $settings['from_email'] ) ) {
|
if ( \is_email( $settings['from_email'] ) ) {
|
||||||
$default_email = $settings['from_email'];
|
$default_email = $settings['from_email'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$filtered = \apply_filters( 'wp_mail_from', $default_email );
|
$filtered = \apply_filters( 'wp_mail_from', $default_email );
|
||||||
|
|
||||||
if ( ! \is_email( $filtered ) ) {
|
if ( ! is_string( $filtered ) || ! \is_email( $filtered ) ) {
|
||||||
return (string) $default_email;
|
return $default_email;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (string) $filtered;
|
return $filtered;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines the From name based on stored settings and filters.
|
* Determines the From name based on stored settings and filters.
|
||||||
*
|
*
|
||||||
* @param array<string, mixed> $settings Stored plugin settings.
|
* @param array{host: string, username: string, password: string, from_email: string, from_name: string, reply_to_email: string, reply_to_name: string, security: string, port: int, amazon_ses_access_key: string, amazon_ses_secret_key: string, amazon_ses_region: string, logs_enabled: bool, logs_retention_mode: string, logs_retention_count: int, logs_retention_days: int, stats_retention_days: int, rate_limit_per_second: int, rate_limit_per_hour: int, rate_limit_per_day: int, delete_data_on_uninstall: bool} $settings Stored plugin settings.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function determine_from_name( array $settings ): string {
|
private function determine_from_name( array $settings ): string {
|
||||||
$default_name = \get_bloginfo( 'name', 'display' );
|
$default_name = \get_bloginfo( 'name', 'display' );
|
||||||
|
|
||||||
if ( isset( $settings['from_name'] ) && '' !== $settings['from_name'] ) {
|
if ( '' !== $settings['from_name'] ) {
|
||||||
$default_name = $settings['from_name'];
|
$default_name = $settings['from_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$filtered = \apply_filters( 'wp_mail_from_name', $default_name );
|
$filtered = \apply_filters( 'wp_mail_from_name', $default_name );
|
||||||
|
|
||||||
return (string) $filtered;
|
return is_string( $filtered ) ? $filtered : $default_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -600,11 +605,11 @@ class Plugin {
|
||||||
$normalized = array();
|
$normalized = array();
|
||||||
|
|
||||||
foreach ( $headers as $header ) {
|
foreach ( $headers as $header ) {
|
||||||
if ( is_array( $header ) ) {
|
if ( ! is_string( $header ) ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$line = trim( (string) $header );
|
$line = trim( $header );
|
||||||
|
|
||||||
if ( '' !== $line ) {
|
if ( '' !== $line ) {
|
||||||
$normalized[] = $line;
|
$normalized[] = $line;
|
||||||
|
|
@ -619,7 +624,14 @@ class Plugin {
|
||||||
*
|
*
|
||||||
* @param array<int, string> $headers Normalized header lines.
|
* @param array<int, string> $headers Normalized header lines.
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>
|
* @return array{
|
||||||
|
* content_type: string|null,
|
||||||
|
* charset: string|null,
|
||||||
|
* cc: array<int, string>,
|
||||||
|
* bcc: array<int, string>,
|
||||||
|
* reply_to: array<int, string>,
|
||||||
|
* custom: array<int, array{name: string, value: string}>
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
private function parse_headers( array $headers ): array {
|
private function parse_headers( array $headers ): array {
|
||||||
$parsed = array(
|
$parsed = array(
|
||||||
|
|
@ -701,17 +713,17 @@ class Plugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! is_array( $recipients ) ) {
|
if ( ! is_array( $recipients ) ) {
|
||||||
$recipients = explode( ',', (string) $recipients );
|
$recipients = is_string( $recipients ) ? explode( ',', $recipients ) : array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$normalized = array();
|
$normalized = array();
|
||||||
|
|
||||||
foreach ( $recipients as $recipient ) {
|
foreach ( $recipients as $recipient ) {
|
||||||
if ( is_array( $recipient ) ) {
|
if ( ! is_string( $recipient ) ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$address = trim( (string) $recipient );
|
$address = trim( $recipient );
|
||||||
|
|
||||||
if ( '' !== $address ) {
|
if ( '' !== $address ) {
|
||||||
$normalized[] = $address;
|
$normalized[] = $address;
|
||||||
|
|
@ -740,11 +752,11 @@ class Plugin {
|
||||||
$normalized = array();
|
$normalized = array();
|
||||||
|
|
||||||
foreach ( $attachments as $attachment ) {
|
foreach ( $attachments as $attachment ) {
|
||||||
if ( is_array( $attachment ) ) {
|
if ( ! is_string( $attachment ) ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = trim( (string) $attachment );
|
$path = trim( $attachment );
|
||||||
|
|
||||||
if ( '' !== $path ) {
|
if ( '' !== $path ) {
|
||||||
$normalized[] = $path;
|
$normalized[] = $path;
|
||||||
|
|
@ -828,7 +840,6 @@ class Plugin {
|
||||||
public function declare_active( bool $is_active ): bool {
|
public function declare_active( bool $is_active ): bool {
|
||||||
unset( $is_active );
|
unset( $is_active );
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -854,8 +865,12 @@ class Plugin {
|
||||||
\delete_transient( 'robotstxt_smtp_admin_notices' );
|
\delete_transient( 'robotstxt_smtp_admin_notices' );
|
||||||
|
|
||||||
foreach ( $notices as $notice ) {
|
foreach ( $notices as $notice ) {
|
||||||
$type = $notice['type'] ?? 'info';
|
if ( ! is_array( $notice ) ) {
|
||||||
$message = $notice['message'] ?? '';
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$type = isset( $notice['type'] ) && is_string( $notice['type'] ) ? $notice['type'] : 'info';
|
||||||
|
$message = isset( $notice['message'] ) && is_string( $notice['message'] ) ? $notice['message'] : '';
|
||||||
|
|
||||||
if ( $message ) {
|
if ( $message ) {
|
||||||
printf(
|
printf(
|
||||||
|
|
@ -888,7 +903,8 @@ class Plugin {
|
||||||
// This is a refresh quota request - now verify nonce.
|
// This is a refresh quota request - now verify nonce.
|
||||||
$nonce_post = \filter_input( INPUT_POST, 'robotstxt_smtp_refresh_quota_nonce', FILTER_UNSAFE_RAW );
|
$nonce_post = \filter_input( INPUT_POST, 'robotstxt_smtp_refresh_quota_nonce', FILTER_UNSAFE_RAW );
|
||||||
$nonce_get = \filter_input( INPUT_GET, 'robotstxt_smtp_refresh_quota_nonce', FILTER_UNSAFE_RAW );
|
$nonce_get = \filter_input( INPUT_GET, 'robotstxt_smtp_refresh_quota_nonce', FILTER_UNSAFE_RAW );
|
||||||
$nonce = $nonce_post ?? $nonce_get ?? '';
|
$nonce_raw = $nonce_post ?? $nonce_get ?? '';
|
||||||
|
$nonce = is_string( $nonce_raw ) ? $nonce_raw : '';
|
||||||
|
|
||||||
if ( ! \wp_verify_nonce( $nonce, 'robotstxt_smtp_refresh_quota' ) ) {
|
if ( ! \wp_verify_nonce( $nonce, 'robotstxt_smtp_refresh_quota' ) ) {
|
||||||
\wp_die( \esc_html__( 'Security check failed.', 'robotstxt-smtp-amazonses' ) );
|
\wp_die( \esc_html__( 'Security check failed.', 'robotstxt-smtp-amazonses' ) );
|
||||||
|
|
@ -1079,8 +1095,6 @@ class Plugin {
|
||||||
public function sanitize_settings( array $clean, array $options, Settings_Page $settings ): array {
|
public function sanitize_settings( array $clean, array $options, Settings_Page $settings ): array {
|
||||||
unset( $settings );
|
unset( $settings );
|
||||||
|
|
||||||
// Debug: Log incoming $clean array.
|
|
||||||
|
|
||||||
if ( ! SMTP_Plugin::is_amazon_ses_integration_active() ) {
|
if ( ! SMTP_Plugin::is_amazon_ses_integration_active() ) {
|
||||||
return $clean;
|
return $clean;
|
||||||
}
|
}
|
||||||
|
|
@ -1094,7 +1108,8 @@ class Plugin {
|
||||||
$credentials_changed = false;
|
$credentials_changed = false;
|
||||||
|
|
||||||
if ( array_key_exists( self::OPTION_ACCESS_KEY, $options ) ) {
|
if ( array_key_exists( self::OPTION_ACCESS_KEY, $options ) ) {
|
||||||
$submitted_access_key = \trim( (string) $options[ self::OPTION_ACCESS_KEY ] );
|
$raw_access_key = $options[ self::OPTION_ACCESS_KEY ] ?? null;
|
||||||
|
$submitted_access_key = \trim( is_string( $raw_access_key ) ? $raw_access_key : '' );
|
||||||
|
|
||||||
if ( '' !== $submitted_access_key ) {
|
if ( '' !== $submitted_access_key ) {
|
||||||
$sanitized_access_key = \sanitize_text_field( $submitted_access_key );
|
$sanitized_access_key = \sanitize_text_field( $submitted_access_key );
|
||||||
|
|
@ -1108,7 +1123,8 @@ class Plugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( array_key_exists( self::OPTION_SECRET_KEY, $options ) ) {
|
if ( array_key_exists( self::OPTION_SECRET_KEY, $options ) ) {
|
||||||
$submitted_secret_key = \trim( (string) $options[ self::OPTION_SECRET_KEY ] );
|
$raw_secret_key = $options[ self::OPTION_SECRET_KEY ] ?? null;
|
||||||
|
$submitted_secret_key = \trim( is_string( $raw_secret_key ) ? $raw_secret_key : '' );
|
||||||
|
|
||||||
if ( '' !== $submitted_secret_key ) {
|
if ( '' !== $submitted_secret_key ) {
|
||||||
$sanitized_secret_key = \sanitize_text_field( $submitted_secret_key );
|
$sanitized_secret_key = \sanitize_text_field( $submitted_secret_key );
|
||||||
|
|
@ -1122,7 +1138,8 @@ class Plugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( array_key_exists( self::OPTION_REGION, $options ) ) {
|
if ( array_key_exists( self::OPTION_REGION, $options ) ) {
|
||||||
$submitted_region = \sanitize_text_field( (string) $options[ self::OPTION_REGION ] );
|
$raw_region = $options[ self::OPTION_REGION ] ?? null;
|
||||||
|
$submitted_region = \sanitize_text_field( is_string( $raw_region ) ? $raw_region : '' );
|
||||||
|
|
||||||
if ( '' === $submitted_region ) {
|
if ( '' === $submitted_region ) {
|
||||||
if ( '' !== $region ) {
|
if ( '' !== $region ) {
|
||||||
|
|
@ -1152,10 +1169,6 @@ class Plugin {
|
||||||
$clean[ self::OPTION_SECRET_KEY ] = $secret_key;
|
$clean[ self::OPTION_SECRET_KEY ] = $secret_key;
|
||||||
$clean[ self::OPTION_REGION ] = $region;
|
$clean[ self::OPTION_REGION ] = $region;
|
||||||
|
|
||||||
// Temporary debug logging
|
|
||||||
|
|
||||||
// Debug: Check credentials_changed and values
|
|
||||||
|
|
||||||
if ( $credentials_changed && ( '' === $access_key || '' === $secret_key || '' === $region ) ) {
|
if ( $credentials_changed && ( '' === $access_key || '' === $secret_key || '' === $region ) ) {
|
||||||
\add_settings_error(
|
\add_settings_error(
|
||||||
$settings_error_slug,
|
$settings_error_slug,
|
||||||
|
|
@ -1197,8 +1210,6 @@ class Plugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Debug: Log final $clean array before return.
|
|
||||||
return $clean;
|
return $clean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1206,7 +1217,7 @@ class Plugin {
|
||||||
* Restores the previously stored Amazon SES values in case validation fails.
|
* Restores the previously stored Amazon SES values in case validation fails.
|
||||||
*
|
*
|
||||||
* @param array<string, mixed> $clean Current sanitized values.
|
* @param array<string, mixed> $clean Current sanitized values.
|
||||||
* @param array<string, mixed> $stored_settings Stored settings merged with defaults.
|
* @param array{amazon_ses_access_key: string, amazon_ses_secret_key: string, amazon_ses_region: string, host: string, username: string, password: string, from_email: string, from_name: string, reply_to_email: string, reply_to_name: string, security: string, port: int, logs_enabled: bool, logs_retention_mode: string, logs_retention_count: int, logs_retention_days: int, stats_retention_days: int, rate_limit_per_second: int, rate_limit_per_hour: int, rate_limit_per_day: int, delete_data_on_uninstall: bool} $stored_settings Stored settings merged with defaults.
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
|
|
@ -1221,7 +1232,29 @@ class Plugin {
|
||||||
/**
|
/**
|
||||||
* Retrieves the stored settings merged with defaults for the active scope.
|
* Retrieves the stored settings merged with defaults for the active scope.
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>
|
* @return array{
|
||||||
|
* host: string,
|
||||||
|
* username: string,
|
||||||
|
* password: string,
|
||||||
|
* from_email: string,
|
||||||
|
* from_name: string,
|
||||||
|
* reply_to_email: string,
|
||||||
|
* reply_to_name: string,
|
||||||
|
* security: string,
|
||||||
|
* port: int,
|
||||||
|
* amazon_ses_access_key: string,
|
||||||
|
* amazon_ses_secret_key: string,
|
||||||
|
* amazon_ses_region: string,
|
||||||
|
* logs_enabled: bool,
|
||||||
|
* logs_retention_mode: string,
|
||||||
|
* logs_retention_count: int,
|
||||||
|
* logs_retention_days: int,
|
||||||
|
* stats_retention_days: int,
|
||||||
|
* rate_limit_per_second: int,
|
||||||
|
* rate_limit_per_hour: int,
|
||||||
|
* rate_limit_per_day: int,
|
||||||
|
* delete_data_on_uninstall: bool
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
private function get_stored_settings(): array {
|
private function get_stored_settings(): array {
|
||||||
$option_name = $this->get_settings_option_name();
|
$option_name = $this->get_settings_option_name();
|
||||||
|
|
@ -1238,16 +1271,43 @@ class Plugin {
|
||||||
|
|
||||||
$settings = \wp_parse_args( $settings, Settings_Page::get_default_settings() );
|
$settings = \wp_parse_args( $settings, Settings_Page::get_default_settings() );
|
||||||
|
|
||||||
|
$s = (array) $settings;
|
||||||
|
|
||||||
|
$access_key = is_string( $s[ self::OPTION_ACCESS_KEY ] ?? null ) ? $s[ self::OPTION_ACCESS_KEY ] : '';
|
||||||
|
$secret_key = is_string( $s[ self::OPTION_SECRET_KEY ] ?? null ) ? $s[ self::OPTION_SECRET_KEY ] : '';
|
||||||
|
|
||||||
// Decrypt Amazon SES credentials after loading from database.
|
// Decrypt Amazon SES credentials after loading from database.
|
||||||
if ( isset( $settings[ self::OPTION_ACCESS_KEY ] ) && '' !== $settings[ self::OPTION_ACCESS_KEY ] ) {
|
if ( '' !== $access_key ) {
|
||||||
$settings[ self::OPTION_ACCESS_KEY ] = \Robotstxt_SMTP_Encryption::decrypt( $settings[ self::OPTION_ACCESS_KEY ] );
|
$access_key = \Robotstxt_SMTP_Encryption::decrypt( $access_key );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $settings[ self::OPTION_SECRET_KEY ] ) && '' !== $settings[ self::OPTION_SECRET_KEY ] ) {
|
if ( '' !== $secret_key ) {
|
||||||
$settings[ self::OPTION_SECRET_KEY ] = \Robotstxt_SMTP_Encryption::decrypt( $settings[ self::OPTION_SECRET_KEY ] );
|
$secret_key = \Robotstxt_SMTP_Encryption::decrypt( $secret_key );
|
||||||
}
|
}
|
||||||
|
|
||||||
return $settings;
|
return array(
|
||||||
|
'host' => is_string( $s['host'] ?? null ) ? $s['host'] : '',
|
||||||
|
'username' => is_string( $s['username'] ?? null ) ? $s['username'] : '',
|
||||||
|
'password' => is_string( $s['password'] ?? null ) ? $s['password'] : '',
|
||||||
|
'from_email' => is_string( $s['from_email'] ?? null ) ? $s['from_email'] : '',
|
||||||
|
'from_name' => is_string( $s['from_name'] ?? null ) ? $s['from_name'] : '',
|
||||||
|
'reply_to_email' => is_string( $s['reply_to_email'] ?? null ) ? $s['reply_to_email'] : '',
|
||||||
|
'reply_to_name' => is_string( $s['reply_to_name'] ?? null ) ? $s['reply_to_name'] : '',
|
||||||
|
'security' => is_string( $s['security'] ?? null ) ? $s['security'] : 'none',
|
||||||
|
'port' => is_int( $s['port'] ?? null ) ? $s['port'] : 25,
|
||||||
|
self::OPTION_ACCESS_KEY => $access_key,
|
||||||
|
self::OPTION_SECRET_KEY => $secret_key,
|
||||||
|
self::OPTION_REGION => is_string( $s[ self::OPTION_REGION ] ?? null ) ? $s[ self::OPTION_REGION ] : '',
|
||||||
|
'logs_enabled' => is_bool( $s['logs_enabled'] ?? null ) ? $s['logs_enabled'] : false,
|
||||||
|
'logs_retention_mode' => is_string( $s['logs_retention_mode'] ?? null ) ? $s['logs_retention_mode'] : 'count',
|
||||||
|
'logs_retention_count' => is_int( $s['logs_retention_count'] ?? null ) ? $s['logs_retention_count'] : 1024,
|
||||||
|
'logs_retention_days' => is_int( $s['logs_retention_days'] ?? null ) ? $s['logs_retention_days'] : 28,
|
||||||
|
'stats_retention_days' => is_int( $s['stats_retention_days'] ?? null ) ? $s['stats_retention_days'] : 28,
|
||||||
|
'rate_limit_per_second' => is_int( $s['rate_limit_per_second'] ?? null ) ? $s['rate_limit_per_second'] : 0,
|
||||||
|
'rate_limit_per_hour' => is_int( $s['rate_limit_per_hour'] ?? null ) ? $s['rate_limit_per_hour'] : 0,
|
||||||
|
'rate_limit_per_day' => is_int( $s['rate_limit_per_day'] ?? null ) ? $s['rate_limit_per_day'] : 0,
|
||||||
|
'delete_data_on_uninstall' => is_bool( $s['delete_data_on_uninstall'] ?? null ) ? $s['delete_data_on_uninstall'] : false,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1303,7 +1363,7 @@ class Plugin {
|
||||||
$regions = $partition->getAvailableEndpoints( 'ses' );
|
$regions = $partition->getAvailableEndpoints( 'ses' );
|
||||||
|
|
||||||
foreach ( $regions as $region ) {
|
foreach ( $regions as $region ) {
|
||||||
if ( is_string( $region ) && '' !== $region ) {
|
if ( '' !== $region ) {
|
||||||
$discovered_list[ $region ] = $labels[ $region ] ?? $this->format_region_label( $region );
|
$discovered_list[ $region ] = $labels[ $region ] ?? $this->format_region_label( $region );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1561,17 +1621,21 @@ class Plugin {
|
||||||
|
|
||||||
$send_quota = $result->get( 'SendQuota' );
|
$send_quota = $result->get( 'SendQuota' );
|
||||||
|
|
||||||
if ( ! $send_quota ) {
|
if ( ! is_array( $send_quota ) ) {
|
||||||
return new WP_Error(
|
return new WP_Error(
|
||||||
'no_quota_data',
|
'no_quota_data',
|
||||||
__( 'Amazon SES did not return quota data.', 'robotstxt-smtp-amazonses' )
|
__( 'Amazon SES did not return quota data.', 'robotstxt-smtp-amazonses' )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$raw_max_24 = $send_quota['Max24HourSend'] ?? 0;
|
||||||
|
$raw_rate = $send_quota['MaxSendRate'] ?? 0;
|
||||||
|
$raw_sent_24 = $send_quota['SentLast24Hours'] ?? 0;
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'max_24_hour_send' => (int) ( $send_quota['Max24HourSend'] ?? 0 ),
|
'max_24_hour_send' => is_numeric( $raw_max_24 ) ? (int) $raw_max_24 : 0,
|
||||||
'max_send_rate' => (float) ( $send_quota['MaxSendRate'] ?? 0 ),
|
'max_send_rate' => is_numeric( $raw_rate ) ? (float) $raw_rate : 0.0,
|
||||||
'sent_last_24_hours' => (int) ( $send_quota['SentLast24Hours'] ?? 0 ),
|
'sent_last_24_hours' => is_numeric( $raw_sent_24 ) ? (int) $raw_sent_24 : 0,
|
||||||
'fetched_at' => time(),
|
'fetched_at' => time(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -1606,56 +1670,6 @@ class Plugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Applies SES quota limits to the SMTP plugin rate limiting settings.
|
|
||||||
*
|
|
||||||
* @since 1.0.1
|
|
||||||
*
|
|
||||||
* @param array<string, mixed> $quota Quota data from SES.
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function apply_ses_quota_to_rate_limits( array $quota ): void {
|
|
||||||
$max_send_rate = (float) ( $quota['max_send_rate'] ?? 0 );
|
|
||||||
$max_24_hour_send = (int) ( $quota['max_24_hour_send'] ?? 0 );
|
|
||||||
|
|
||||||
$settings_page = \Robotstxt_SMTP\Admin\Settings_Page::class;
|
|
||||||
|
|
||||||
if ( ! class_exists( $settings_page ) ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$is_network = ROBOTSTXT_SMTP_IS_MULTISITE && $settings_page::is_network_mode_enabled();
|
|
||||||
$option_name = $is_network ? $settings_page::NETWORK_OPTION_NAME : $settings_page::OPTION_NAME;
|
|
||||||
|
|
||||||
$settings = $is_network ? get_site_option( $option_name, array() ) : get_option( $option_name, array() );
|
|
||||||
|
|
||||||
if ( ! is_array( $settings ) ) {
|
|
||||||
$settings = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$settings['rate_limit_per_second'] = (int) floor( $max_send_rate );
|
|
||||||
$settings['rate_limit_per_hour'] = (int) floor( $max_send_rate * 3600 * 0.9 );
|
|
||||||
$settings['rate_limit_per_day'] = $max_24_hour_send;
|
|
||||||
|
|
||||||
if ( $is_network ) {
|
|
||||||
update_site_option( $option_name, $settings );
|
|
||||||
} else {
|
|
||||||
update_option( $option_name, $settings );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( defined( 'WP_DEBUG' ) && WP_DEBUG && defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) {
|
|
||||||
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
|
||||||
error_log(
|
|
||||||
sprintf(
|
|
||||||
'ROBOTSTXT SMTP: Updated rate limits from Amazon SES quota - Per second: %d, Per hour: %d, Per day: %d',
|
|
||||||
$settings['rate_limit_per_second'],
|
|
||||||
$settings['rate_limit_per_hour'],
|
|
||||||
$settings['rate_limit_per_day']
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the transient cache key for Amazon SES quota data.
|
* Gets the transient cache key for Amazon SES quota data.
|
||||||
*
|
*
|
||||||
|
|
@ -1682,9 +1696,10 @@ class Plugin {
|
||||||
*
|
*
|
||||||
* @since 1.0.1
|
* @since 1.0.1
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>|false Quota data or false if not cached.
|
* @return array<string|int, mixed>|false Quota data or false if not cached.
|
||||||
*/
|
*/
|
||||||
public function get_cached_ses_quota() {
|
public function get_cached_ses_quota(): array|false {
|
||||||
return get_site_transient( self::get_quota_cache_key() );
|
$result = \get_site_transient( self::get_quota_cache_key() );
|
||||||
|
return is_array( $result ) ? $result : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
14
readme.txt
14
readme.txt
|
|
@ -2,10 +2,10 @@
|
||||||
Contributors: javiercasares
|
Contributors: javiercasares
|
||||||
Tags: amazon-ses, smtp, email, mail
|
Tags: amazon-ses, smtp, email, mail
|
||||||
Requires at least: 6.5
|
Requires at least: 6.5
|
||||||
Tested up to: 6.9
|
Tested up to: 7.1
|
||||||
Stable tag: 2.1.2
|
Stable tag: 2.1.3
|
||||||
Requires PHP: 8.2
|
Requires PHP: 8.2
|
||||||
Version: 2.1.2
|
Version: 2.1.3
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
|
||||||
|
|
@ -46,6 +46,14 @@ Yes. Network administrators can manage credentials centrally or allow individual
|
||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 2.1.3 =
|
||||||
|
* Fixed nonce handling in manual quota refresh to correctly handle false values returned by filter_input().
|
||||||
|
* Fixed admin notices display to skip non-array notice entries.
|
||||||
|
* Fixed input normalization for recipients, attachments, and headers to properly skip non-string values instead of attempting unsafe casts.
|
||||||
|
* Removed unused internal method (dead code cleanup).
|
||||||
|
* Updated compatibility: tested up to WordPress 7.1.
|
||||||
|
* Internal: renamed updater file to follow WordPress naming conventions.
|
||||||
|
|
||||||
= 2.1.2 =
|
= 2.1.2 =
|
||||||
* Fixed charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
|
* Fixed charset encoding issue that caused "expected parameter value, got null" error when sending emails through Amazon SES.
|
||||||
* Added robust charset validation in header parsing to prevent empty or invalid charset values.
|
* Added robust charset validation in header parsing to prevent empty or invalid charset values.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* Plugin Name: SMTP (by ROBOTSTXT) Amazon SES
|
* Plugin Name: SMTP (by ROBOTSTXT) Amazon SES
|
||||||
* Plugin URI: https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses
|
* Plugin URI: https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses
|
||||||
* Description: Adds Amazon SES configuration support to the ROBOTSTXT SMTP plugin.
|
* Description: Adds Amazon SES configuration support to the ROBOTSTXT SMTP plugin.
|
||||||
* Version: 2.1.2
|
* Version: 2.1.3
|
||||||
* Requires at least: 6.5
|
* Requires at least: 6.5
|
||||||
* Requires PHP: 8.2
|
* Requires PHP: 8.2
|
||||||
* Network: true
|
* Network: true
|
||||||
|
|
@ -26,7 +26,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'ROBOTSTXT_SMTP_AMAZONSES_VERSION' ) ) {
|
if ( ! defined( 'ROBOTSTXT_SMTP_AMAZONSES_VERSION' ) ) {
|
||||||
define( 'ROBOTSTXT_SMTP_AMAZONSES_VERSION', '2.1.2' );
|
define( 'ROBOTSTXT_SMTP_AMAZONSES_VERSION', '2.1.3' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'ROBOTSTXT_SMTP_AMAZONSES_FILE' ) ) {
|
if ( ! defined( 'ROBOTSTXT_SMTP_AMAZONSES_FILE' ) ) {
|
||||||
|
|
@ -62,5 +62,5 @@ require_once ROBOTSTXT_SMTP_AMAZONSES_PATH . 'includes/class-plugin.php';
|
||||||
\Robotstxt_SMTP_AmazonSES\Plugin::get_instance()->run();
|
\Robotstxt_SMTP_AmazonSES\Plugin::get_instance()->run();
|
||||||
|
|
||||||
// Initialize ROBOTSTXT updater (auto-configures from plugin headers).
|
// Initialize ROBOTSTXT updater (auto-configures from plugin headers).
|
||||||
require_once __DIR__ . '/robotstxt-updater.php';
|
require_once __DIR__ . '/class-robotstxt-updater.php';
|
||||||
Robotstxt_Updater::init( __FILE__ );
|
Robotstxt_Updater::init( __FILE__ );
|
||||||
|
|
|
||||||
|
|
@ -1,383 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Generic JSON-based updater for ROBOTSTXT plugins.
|
|
||||||
*
|
|
||||||
* This file is designed to be copied to any ROBOTSTXT plugin.
|
|
||||||
* It auto-configures itself by reading the plugin headers.
|
|
||||||
*
|
|
||||||
* @package ROBOTSTXT
|
|
||||||
* @version 1.0.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ( ! defined( 'ABSPATH' ) ) {
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! class_exists( 'Robotstxt_Updater' ) ) {
|
|
||||||
/**
|
|
||||||
* Class Robotstxt_Updater
|
|
||||||
*
|
|
||||||
* Generic updater that works with any plugin.
|
|
||||||
* Reads plugin headers and constructs update URL automatically.
|
|
||||||
*/
|
|
||||||
class Robotstxt_Updater {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin file path.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private string $plugin_file_path;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin basename (e.g., 'my-plugin/my-plugin.php').
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private string $plugin_basename;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin slug (directory name).
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private string $plugin_slug;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remote JSON URL.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private string $json_url;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cache key.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private string $cache_key;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin headers.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private array $plugin_data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize the updater.
|
|
||||||
*
|
|
||||||
* Usage in your main plugin file:
|
|
||||||
* require_once __DIR__ . '/robotstxt-updater.php';
|
|
||||||
* Robotstxt_Updater::init( __FILE__ );
|
|
||||||
*
|
|
||||||
* @param string $plugin_file_path Absolute path to the main plugin file.
|
|
||||||
*/
|
|
||||||
public static function init( string $plugin_file_path ): void {
|
|
||||||
$instance = new self( $plugin_file_path );
|
|
||||||
$instance->register();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param string $plugin_file_path Absolute path to the main plugin file.
|
|
||||||
*/
|
|
||||||
private function __construct( string $plugin_file_path ) {
|
|
||||||
$this->plugin_file_path = $plugin_file_path;
|
|
||||||
$this->plugin_basename = plugin_basename( $plugin_file_path );
|
|
||||||
$this->plugin_slug = dirname( $this->plugin_basename );
|
|
||||||
$this->plugin_data = $this->get_plugin_data();
|
|
||||||
$this->json_url = $this->build_json_url();
|
|
||||||
$this->cache_key = 'robotstxt_updater_' . md5( $this->plugin_basename );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register WordPress hooks.
|
|
||||||
*/
|
|
||||||
private function register(): void {
|
|
||||||
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'inject_update_info' ) );
|
|
||||||
add_filter( 'plugins_api', array( $this, 'provide_plugin_details' ), 10, 3 );
|
|
||||||
add_action( 'admin_init', array( $this, 'handle_cache_clear' ) );
|
|
||||||
add_action( 'robotstxt_updater_clear_cache', array( $this, 'clear_cache' ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get plugin headers.
|
|
||||||
*
|
|
||||||
* @return array Plugin data.
|
|
||||||
*/
|
|
||||||
private function get_plugin_data(): array {
|
|
||||||
if ( ! function_exists( 'get_plugin_data' ) ) {
|
|
||||||
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
return get_plugin_data( $this->plugin_file_path, false, false );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build JSON URL from plugin headers.
|
|
||||||
*
|
|
||||||
* Tries to use "Gitea Plugin URI" header to construct the URL.
|
|
||||||
* Falls back to Plugin URI if Gitea URI is not available.
|
|
||||||
*
|
|
||||||
* @return string JSON URL.
|
|
||||||
*/
|
|
||||||
private function build_json_url(): string {
|
|
||||||
// Try Gitea Plugin URI (format: "OWNER/REPO" or full URL).
|
|
||||||
if ( ! empty( $this->plugin_data['Gitea Plugin URI'] ) ) {
|
|
||||||
$gitea_uri = $this->plugin_data['Gitea Plugin URI'];
|
|
||||||
|
|
||||||
// If it's already a full URL, use it.
|
|
||||||
if ( str_starts_with( $gitea_uri, 'http' ) ) {
|
|
||||||
// Extract base URL and construct JSON path.
|
|
||||||
return rtrim( $gitea_uri, '/' ) . '/raw/branch/main/update.json';
|
|
||||||
}
|
|
||||||
|
|
||||||
// If it's in format "OWNER/REPO", construct full URL.
|
|
||||||
if ( preg_match( '#^[^/]+/[^/]+$#', $gitea_uri ) ) {
|
|
||||||
return "https://git.robotstxt.es/{$gitea_uri}/raw/branch/main/update.json";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fallback: try to extract from Plugin URI.
|
|
||||||
if ( ! empty( $this->plugin_data['PluginURI'] ) ) {
|
|
||||||
$plugin_uri = $this->plugin_data['PluginURI'];
|
|
||||||
if ( str_contains( $plugin_uri, 'git.robotstxt.es' ) ) {
|
|
||||||
return rtrim( $plugin_uri, '/' ) . '/raw/branch/main/update.json';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Last resort: construct from plugin slug.
|
|
||||||
return "https://git.robotstxt.es/ROBOTSTXT/{$this->plugin_slug}/raw/branch/main/update.json";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inject update info into WP's plugin update transient.
|
|
||||||
*
|
|
||||||
* @param object|mixed $transient The update_plugins transient.
|
|
||||||
*
|
|
||||||
* @return object The modified transient.
|
|
||||||
*/
|
|
||||||
public function inject_update_info( $transient ) {
|
|
||||||
if ( ! is_object( $transient ) ) {
|
|
||||||
$transient = new stdClass();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( empty( $transient->checked ) || ! is_array( $transient->checked ) ) {
|
|
||||||
return $transient;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( empty( $transient->checked[ $this->plugin_basename ] ) ) {
|
|
||||||
return $transient;
|
|
||||||
}
|
|
||||||
|
|
||||||
$current_version = $transient->checked[ $this->plugin_basename ];
|
|
||||||
$remote = $this->get_remote_data();
|
|
||||||
|
|
||||||
if ( empty( $remote['version'] ) || empty( $remote['download_url'] ) ) {
|
|
||||||
return $transient;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! $this->is_compatible( $remote ) ) {
|
|
||||||
return $transient;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( version_compare( $remote['version'], $current_version, '>' ) ) {
|
|
||||||
$update = (object) array(
|
|
||||||
'slug' => $remote['slug'] ?? $this->plugin_slug,
|
|
||||||
'plugin' => $this->plugin_basename,
|
|
||||||
'new_version' => $remote['version'],
|
|
||||||
'url' => $remote['homepage'] ?? $this->plugin_data['PluginURI'] ?? '',
|
|
||||||
'package' => $remote['download_url'],
|
|
||||||
'tested' => $remote['tested'] ?? '',
|
|
||||||
'requires' => $remote['requires'] ?? '',
|
|
||||||
'requires_php' => $remote['requires_php'] ?? '',
|
|
||||||
);
|
|
||||||
|
|
||||||
$transient->response[ $this->plugin_basename ] = $update;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $transient;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provide "View details" modal content.
|
|
||||||
*
|
|
||||||
* @param false|object|array $result The result object or array.
|
|
||||||
* @param string $action The type of information being requested.
|
|
||||||
* @param object $args Plugin API arguments.
|
|
||||||
*
|
|
||||||
* @return false|object The plugin information object or false.
|
|
||||||
*/
|
|
||||||
public function provide_plugin_details( $result, string $action, object $args ) {
|
|
||||||
if ( 'plugin_information' !== $action ) {
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( empty( $args->slug ) || $args->slug !== $this->plugin_slug ) {
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
$remote = $this->get_remote_data();
|
|
||||||
|
|
||||||
if ( empty( $remote['version'] ) ) {
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (object) array(
|
|
||||||
'name' => $remote['name'] ?? $this->plugin_data['Name'] ?? $this->plugin_slug,
|
|
||||||
'slug' => $remote['slug'] ?? $this->plugin_slug,
|
|
||||||
'version' => $remote['version'],
|
|
||||||
'author' => $remote['author'] ?? $this->plugin_data['Author'] ?? '',
|
|
||||||
'homepage' => $remote['homepage'] ?? $this->plugin_data['PluginURI'] ?? '',
|
|
||||||
'requires' => $remote['requires'] ?? '',
|
|
||||||
'tested' => $remote['tested'] ?? '',
|
|
||||||
'requires_php' => $remote['requires_php'] ?? '',
|
|
||||||
'sections' => array(
|
|
||||||
'description' => $remote['description'] ?? $this->plugin_data['Description'] ?? '',
|
|
||||||
'changelog' => $remote['changelog'] ?? '',
|
|
||||||
),
|
|
||||||
'download_link' => $remote['download_url'] ?? '',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get remote data with caching and HMAC signature verification.
|
|
||||||
*
|
|
||||||
* @return array Remote data.
|
|
||||||
*/
|
|
||||||
private function get_remote_data(): array {
|
|
||||||
$cached = get_site_transient( $this->cache_key );
|
|
||||||
|
|
||||||
// Verify HMAC signature if AUTH_SALT is defined and cache has signature.
|
|
||||||
if ( false !== $cached && defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
|
|
||||||
if ( is_array( $cached ) && isset( $cached['signature'], $cached['data'] ) ) {
|
|
||||||
$expected_sig = hash_hmac( 'sha256', $this->cache_key . serialize( $cached['data'] ), AUTH_SALT );
|
|
||||||
|
|
||||||
if ( hash_equals( $expected_sig, $cached['signature'] ) ) {
|
|
||||||
// Signature valid, return data.
|
|
||||||
return is_array( $cached['data'] ) ? $cached['data'] : array();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Signature invalid, delete corrupted cache.
|
|
||||||
delete_site_transient( $this->cache_key );
|
|
||||||
$cached = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If no valid cache, fetch fresh data.
|
|
||||||
if ( false === $cached ) {
|
|
||||||
$remote = $this->fetch_json();
|
|
||||||
|
|
||||||
// Store with HMAC signature if AUTH_SALT is available.
|
|
||||||
if ( defined( 'AUTH_SALT' ) && '' !== AUTH_SALT ) {
|
|
||||||
$payload = array(
|
|
||||||
'data' => $remote ?: array(),
|
|
||||||
'timestamp' => time(),
|
|
||||||
'signature' => hash_hmac( 'sha256', $this->cache_key . serialize( $remote ?: array() ), AUTH_SALT ),
|
|
||||||
);
|
|
||||||
set_site_transient( $this->cache_key, $payload, 6 * HOUR_IN_SECONDS );
|
|
||||||
} else {
|
|
||||||
// Fallback to standard caching.
|
|
||||||
set_site_transient( $this->cache_key, $remote ?: array(), 6 * HOUR_IN_SECONDS );
|
|
||||||
}
|
|
||||||
|
|
||||||
return is_array( $remote ) ? $remote : array();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Legacy cache format without signature (backward compatibility).
|
|
||||||
return is_array( $cached ) ? $cached : array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetch JSON from remote URL.
|
|
||||||
*
|
|
||||||
* @return array Decoded JSON data.
|
|
||||||
*/
|
|
||||||
private function fetch_json(): array {
|
|
||||||
$response = wp_remote_get(
|
|
||||||
$this->json_url,
|
|
||||||
array(
|
|
||||||
'timeout' => 10,
|
|
||||||
'headers' => array(
|
|
||||||
'Accept' => 'application/json',
|
|
||||||
),
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if ( is_wp_error( $response ) ) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$code = (int) wp_remote_retrieve_response_code( $response );
|
|
||||||
if ( $code < 200 || $code >= 300 ) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$body = wp_remote_retrieve_body( $response );
|
|
||||||
$data = json_decode( $body, true );
|
|
||||||
|
|
||||||
return is_array( $data ) ? $data : array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check compatibility.
|
|
||||||
*
|
|
||||||
* @param array $remote Remote data.
|
|
||||||
*
|
|
||||||
* @return bool True if compatible.
|
|
||||||
*/
|
|
||||||
private function is_compatible( array $remote ): bool {
|
|
||||||
if ( ! empty( $remote['requires_php'] ) ) {
|
|
||||||
if ( version_compare( PHP_VERSION, $remote['requires_php'], '<' ) ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! empty( $remote['requires'] ) ) {
|
|
||||||
if ( version_compare( get_bloginfo( 'version' ), $remote['requires'], '<' ) ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle manual cache clear via URL parameter.
|
|
||||||
*/
|
|
||||||
public function handle_cache_clear(): void {
|
|
||||||
// Check if this is a cache clear request first.
|
|
||||||
$clear_cache = filter_input( INPUT_GET, 'robotstxt_clear_update_cache', FILTER_UNSAFE_RAW );
|
|
||||||
if ( null === $clear_cache ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is a cache clear request - now verify nonce.
|
|
||||||
$nonce_raw = filter_input( INPUT_GET, '_wpnonce', FILTER_UNSAFE_RAW );
|
|
||||||
$nonce = $nonce_raw ? sanitize_text_field( wp_unslash( $nonce_raw ) ) : '';
|
|
||||||
|
|
||||||
if ( ! wp_verify_nonce( $nonce, 'robotstxt_clear_update_cache' ) ) {
|
|
||||||
wp_die( esc_html__( 'Security check failed', 'robotstxt-smtp-amazonses' ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check permissions.
|
|
||||||
if ( ! current_user_can( 'update_plugins' ) ) {
|
|
||||||
wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'robotstxt-smtp-amazonses' ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->clear_cache();
|
|
||||||
wp_safe_redirect( remove_query_arg( array( 'robotstxt_clear_update_cache', '_wpnonce' ) ) );
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear update cache.
|
|
||||||
*/
|
|
||||||
public function clear_cache(): void {
|
|
||||||
delete_site_transient( $this->cache_key );
|
|
||||||
delete_site_transient( 'update_plugins' );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
12
update.json
12
update.json
|
|
@ -1,21 +1,21 @@
|
||||||
{
|
{
|
||||||
"name": "SMTP (by ROBOTSTXT) Amazon SES",
|
"name": "SMTP (by ROBOTSTXT) Amazon SES",
|
||||||
"slug": "robotstxt-smtp-amazonses",
|
"slug": "robotstxt-smtp-amazonses",
|
||||||
"version": "2.1.2",
|
"version": "2.1.3",
|
||||||
"download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses/releases/download/2.1.2/robotstxt-smtp-amazonses-2.1.2.zip",
|
"download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses/releases/download/2.1.3/robotstxt-smtp-amazonses-2.1.3.zip",
|
||||||
"requires": "6.5",
|
"requires": "6.5",
|
||||||
"requires_php": "8.2",
|
"requires_php": "8.2",
|
||||||
"tested": "6.9",
|
"tested": "7.1",
|
||||||
"last_updated": "2026-02-12",
|
"last_updated": "2026-06-09",
|
||||||
"author": "ROBOTSTXT",
|
"author": "ROBOTSTXT",
|
||||||
"author_profile": "https://www.robotstxt.es/",
|
"author_profile": "https://www.robotstxt.es/",
|
||||||
"homepage": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses",
|
"homepage": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-amazonses",
|
||||||
"requires_plugins": ["robotstxt-smtp"],
|
"requires_plugins": ["robotstxt-smtp"],
|
||||||
"description": "Adds Amazon SES (Simple Email Service) configuration support to the ROBOTSTXT SMTP plugin. Integrates seamlessly with AWS SDK for PHP to send emails through Amazon SES infrastructure.",
|
"description": "Adds Amazon SES (Simple Email Service) configuration support to the ROBOTSTXT SMTP plugin. Integrates seamlessly with AWS SDK for PHP to send emails through Amazon SES infrastructure.",
|
||||||
"changelog": "<h3>2.1.1 - 2026-02-09</h3><ul><li><strong>Added:</strong> Comprehensive Amazon SES debug context to test email error reports</li><li><strong>Added:</strong> Debug information now includes AWS region, masked access key, SDK version, endpoint URL, and UTC timestamp</li><li><strong>Improved:</strong> Enhanced AWS error reporting with request IDs, HTTP status codes, and error codes for easier troubleshooting</li><li><strong>Security:</strong> Access keys are now masked in error output (shows only first 4 and last 4 characters)</li></ul><h3>2.1.0 - 2026-02-09</h3><ul><li><strong>Changed:</strong> Uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin</li><li><strong>Changed:</strong> This ensures Amazon SES credentials are preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled</li><li><strong>Technical:</strong> Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin</li><li><strong>Technical:</strong> Improved data preservation and cleanup consistency across the plugin ecosystem</li></ul><h3>2.0.0 - 2026-01-29</h3><p><strong>⚠️ BREAKING CHANGE:</strong> This version requires PHP 8.2 or higher due to AWS SDK requirements.</p><ul><li><strong>Added:</strong> Reply-To header support for emails sent via Amazon SES</li><li><strong>Fixed:</strong> Improved error handling and validation</li><li><strong>Fixed:</strong> Enhanced compatibility with core SMTP plugin 2.0.0</li><li><strong>Security:</strong> Improved credential handling and encryption</li><li><strong>Security:</strong> Updated AWS SDK for PHP to latest version (3.369.20) with security patches</li><li><strong>Changed:</strong> Minimum PHP version increased to 8.2</li><li><strong>Improved:</strong> Code quality and documentation</li></ul><h3>1.0.0 - 2026-01-27</h3><ul><li>Initial release</li><li>Amazon SES integration via AWS SDK v3</li><li>Full compatibility with ROBOTSTXT SMTP plugin</li><li>Support for AWS regions and credentials configuration</li><li>Automatic dependency management with Composer</li></ul>",
|
"changelog": "<h3>2.1.3 - 2026-06-09</h3><ul><li><strong>Fixed:</strong> Nonce handling in manual quota refresh to correctly handle false values from filter_input()</li><li><strong>Fixed:</strong> Admin notices display now skips non-array notice entries</li><li><strong>Fixed:</strong> Input normalization for recipients, attachments, and headers now properly skips non-string values</li><li><strong>Removed:</strong> Unused internal rate limit method (dead code cleanup)</li><li><strong>Compatibility:</strong> Tested up to WordPress 7.1</li></ul><h3>2.1.2 - 2026-02-12</h3><ul><li><strong>Fixed:</strong> Charset encoding issue that caused \"expected parameter value, got null\" error when sending emails through Amazon SES</li><li><strong>Improved:</strong> Added robust charset validation in header parsing to prevent empty or invalid charset values</li><li><strong>Improved:</strong> Enhanced charset handling with automatic fallback to UTF-8 when no valid charset is provided</li></ul><h3>2.1.1 - 2026-02-09</h3><ul><li><strong>Added:</strong> Comprehensive Amazon SES debug context to test email error reports</li><li><strong>Added:</strong> Debug information now includes AWS region, masked access key, SDK version, endpoint URL, and UTC timestamp</li><li><strong>Improved:</strong> Enhanced AWS error reporting with request IDs, HTTP status codes, and error codes for easier troubleshooting</li><li><strong>Security:</strong> Access keys are now masked in error output (shows only first 4 and last 4 characters)</li></ul>",
|
||||||
"sections": {
|
"sections": {
|
||||||
"description": "Adds Amazon SES (Simple Email Service) configuration support to the ROBOTSTXT SMTP plugin. Integrates seamlessly with AWS SDK for PHP to send emails through Amazon SES infrastructure.",
|
"description": "Adds Amazon SES (Simple Email Service) configuration support to the ROBOTSTXT SMTP plugin. Integrates seamlessly with AWS SDK for PHP to send emails through Amazon SES infrastructure.",
|
||||||
"changelog": "<h3>2.1.2 - 2026-02-12</h3><ul><li><strong>Fixed:</strong> Charset encoding issue that caused \"expected parameter value, got null\" error when sending emails through Amazon SES</li><li><strong>Improved:</strong> Added robust charset validation in header parsing to prevent empty or invalid charset values</li><li><strong>Improved:</strong> Enhanced charset handling with automatic fallback to UTF-8 when no valid charset is provided</li></ul><h3>2.1.1 - 2026-02-09</h3><ul><li><strong>Added:</strong> Comprehensive Amazon SES debug context to test email error reports</li><li><strong>Added:</strong> Debug information now includes AWS region, masked access key, SDK version, endpoint URL, and UTC timestamp</li><li><strong>Improved:</strong> Enhanced AWS error reporting with request IDs, HTTP status codes, and error codes for easier troubleshooting</li><li><strong>Security:</strong> Access keys are now masked in error output (shows only first 4 and last 4 characters)</li></ul><h3>2.1.0 - 2026-02-09</h3><ul><li><strong>Changed:</strong> Uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin</li><li><strong>Changed:</strong> This ensures Amazon SES credentials are preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled</li><li><strong>Technical:</strong> Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin</li><li><strong>Technical:</strong> Improved data preservation and cleanup consistency across the plugin ecosystem</li></ul><h3>2.0.0 - 2026-01-29</h3><p><strong>⚠️ BREAKING CHANGE:</strong> This version requires PHP 8.2 or higher due to AWS SDK requirements.</p><ul><li><strong>Added:</strong> Reply-To header support for emails sent via Amazon SES</li><li><strong>Fixed:</strong> Improved error handling and validation</li><li><strong>Fixed:</strong> Enhanced compatibility with core SMTP plugin 2.0.0</li><li><strong>Security:</strong> Improved credential handling and encryption</li><li><strong>Security:</strong> Updated AWS SDK for PHP to latest version (3.369.20) with security patches</li><li><strong>Changed:</strong> Minimum PHP version increased to 8.2</li><li><strong>Improved:</strong> Code quality and documentation</li></ul><h3>1.0.0 - 2026-01-27</h3><ul><li>Initial release</li><li>Amazon SES integration via AWS SDK v3</li><li>Full compatibility with ROBOTSTXT SMTP plugin</li><li>Support for AWS regions and credentials configuration</li><li>Automatic dependency management with Composer</li></ul>"
|
"changelog": "<h3>2.1.3 - 2026-06-09</h3><ul><li><strong>Fixed:</strong> Nonce handling in manual quota refresh to correctly handle false values from filter_input()</li><li><strong>Fixed:</strong> Admin notices display now skips non-array notice entries</li><li><strong>Fixed:</strong> Input normalization for recipients, attachments, and headers now properly skips non-string values</li><li><strong>Removed:</strong> Unused internal rate limit method (dead code cleanup)</li><li><strong>Compatibility:</strong> Tested up to WordPress 7.1</li></ul><h3>2.1.2 - 2026-02-12</h3><ul><li><strong>Fixed:</strong> Charset encoding issue that caused \"expected parameter value, got null\" error when sending emails through Amazon SES</li><li><strong>Improved:</strong> Added robust charset validation in header parsing to prevent empty or invalid charset values</li><li><strong>Improved:</strong> Enhanced charset handling with automatic fallback to UTF-8 when no valid charset is provided</li></ul><h3>2.1.1 - 2026-02-09</h3><ul><li><strong>Added:</strong> Comprehensive Amazon SES debug context to test email error reports</li><li><strong>Added:</strong> Debug information now includes AWS region, masked access key, SDK version, endpoint URL, and UTC timestamp</li><li><strong>Improved:</strong> Enhanced AWS error reporting with request IDs, HTTP status codes, and error codes for easier troubleshooting</li><li><strong>Security:</strong> Access keys are now masked in error output (shows only first 4 and last 4 characters)</li></ul><h3>2.1.0 - 2026-02-09</h3><ul><li><strong>Changed:</strong> Uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin</li></ul>"
|
||||||
},
|
},
|
||||||
"banners": {
|
"banners": {
|
||||||
"low": "",
|
"low": "",
|
||||||
|
|
|
||||||
5
vendor/autoload.php
vendored
5
vendor/autoload.php
vendored
|
|
@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
|
||||||
echo $err;
|
echo $err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trigger_error(
|
throw new RuntimeException($err);
|
||||||
$err,
|
|
||||||
E_USER_ERROR
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,14 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createAnalyzerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createAnalyzerAsync(array $args = [])
|
||||||
* @method \Aws\Result createArchiveRule(array $args = [])
|
* @method \Aws\Result createArchiveRule(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createArchiveRuleAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createArchiveRuleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createServiceLinkedAnalyzer(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createServiceLinkedAnalyzerAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteAnalyzer(array $args = [])
|
* @method \Aws\Result deleteAnalyzer(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteAnalyzerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteAnalyzerAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteArchiveRule(array $args = [])
|
* @method \Aws\Result deleteArchiveRule(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteArchiveRuleAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteArchiveRuleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteServiceLinkedAnalyzer(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteServiceLinkedAnalyzerAsync(array $args = [])
|
||||||
* @method \Aws\Result generateFindingRecommendation(array $args = [])
|
* @method \Aws\Result generateFindingRecommendation(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise generateFindingRecommendationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise generateFindingRecommendationAsync(array $args = [])
|
||||||
* @method \Aws\Result getAccessPreview(array $args = [])
|
* @method \Aws\Result getAccessPreview(array $args = [])
|
||||||
|
|
|
||||||
2
vendor/aws/aws-sdk-php/src/Acm/AcmClient.php
vendored
2
vendor/aws/aws-sdk-php/src/Acm/AcmClient.php
vendored
|
|
@ -36,6 +36,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise resendValidationEmailAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise resendValidationEmailAsync(array $args = [])
|
||||||
* @method \Aws\Result revokeCertificate(array $args = [])
|
* @method \Aws\Result revokeCertificate(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise revokeCertificateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise revokeCertificateAsync(array $args = [])
|
||||||
|
* @method \Aws\Result searchCertificates(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise searchCertificatesAsync(array $args = [])
|
||||||
* @method \Aws\Result updateCertificateOptions(array $args = [])
|
* @method \Aws\Result updateCertificateOptions(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateCertificateOptionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateCertificateOptionsAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
664
vendor/aws/aws-sdk-php/src/Api/Cbor/CborDecoder.php
vendored
Normal file
664
vendor/aws/aws-sdk-php/src/Api/Cbor/CborDecoder.php
vendored
Normal file
|
|
@ -0,0 +1,664 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Cbor;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\Exception\CborException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes Concise Binary Object Representation encoded strings
|
||||||
|
* into PHP values according to RFC 8949
|
||||||
|
*
|
||||||
|
* https://www.rfc-editor.org/rfc/rfc8949.html
|
||||||
|
*
|
||||||
|
* Supports Major types 0-7 including:
|
||||||
|
* - Type 0: Unsigned integers
|
||||||
|
* - Type 1: Negative integers
|
||||||
|
* - Type 2: Byte strings
|
||||||
|
* - Type 3: Text strings (UTF-8)
|
||||||
|
* - Type 4: Arrays
|
||||||
|
* - Type 5: Maps
|
||||||
|
* - Type 6: Tagged values (timestamps)
|
||||||
|
* - Type 7: Simple values (null, bool, float)
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class CborDecoder
|
||||||
|
{
|
||||||
|
private int $offset;
|
||||||
|
private int $length;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode CBOR binary data to PHP value
|
||||||
|
*
|
||||||
|
* @param string $data The CBOR-encoded binary data to decode
|
||||||
|
*
|
||||||
|
* @return mixed The decoded PHP value (can be any type: int, string, array, bool, null, float)
|
||||||
|
* @throws CborException If data is empty or malformed CBOR
|
||||||
|
*/
|
||||||
|
public function decode(string $data): mixed
|
||||||
|
{
|
||||||
|
if ($data === '') {
|
||||||
|
throw new CborException("No data to decode");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = 0;
|
||||||
|
$this->length = strlen($data);
|
||||||
|
|
||||||
|
return $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode multiple CBOR values from sequential binary data
|
||||||
|
*
|
||||||
|
* @param string $data The CBOR-encoded binary data containing multiple values
|
||||||
|
*
|
||||||
|
* @return array Array of decoded PHP values in the order they appear in the data
|
||||||
|
* @throws CborException If data is malformed CBOR
|
||||||
|
*/
|
||||||
|
public function decodeAll(string $data): array
|
||||||
|
{
|
||||||
|
$this->length = strlen($data);
|
||||||
|
$this->offset = 0;
|
||||||
|
$values = [];
|
||||||
|
|
||||||
|
while ($this->offset < $this->length) {
|
||||||
|
$values[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a single CBOR value at the current offset
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return mixed The decoded value
|
||||||
|
* @throws CborException If unexpected end of data or invalid CBOR format
|
||||||
|
*/
|
||||||
|
private function decodeValue(string &$data): mixed
|
||||||
|
{
|
||||||
|
$offset = $this->offset;
|
||||||
|
$length = $this->length;
|
||||||
|
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$byte = ord($data[$offset++]);
|
||||||
|
$majorType = $byte >> 5;
|
||||||
|
$info = $byte & 0x1F;
|
||||||
|
|
||||||
|
switch ($majorType) {
|
||||||
|
case 0: // Unsigned integer
|
||||||
|
if ($info < 24) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 1;
|
||||||
|
|
||||||
|
return ord($data[$offset]);
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
|
||||||
|
return (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return unpack('N', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
|
||||||
|
return unpack('J', $data, $offset)[1];
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for integer: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1: // Negative integer
|
||||||
|
if ($info < 24) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return -1 - $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 1;
|
||||||
|
|
||||||
|
return -1 - ord($data[$offset]);
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
|
||||||
|
return -1 - ((ord($data[$offset]) << 8) | ord($data[$offset + 1]));
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return -1 - unpack('N', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
$unsigned = unpack('J', $data, $offset)[1];
|
||||||
|
|
||||||
|
return ($unsigned === 9223372036854775807) ? PHP_INT_MIN : -1 - $unsigned;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for integer: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
case 2: // Byte string
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteString($data, 0x40);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for byte string: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
|
||||||
|
return substr($data, $offset, $len);
|
||||||
|
|
||||||
|
case 3: // Text string
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteString($data, 0x60);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for text string: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
|
||||||
|
return substr($data, $offset, $len);
|
||||||
|
|
||||||
|
case 4: // Array
|
||||||
|
if ($info < 24) {
|
||||||
|
$count = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteArray($data);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for array: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
$arr = [];
|
||||||
|
|
||||||
|
for ($i = 0; $i < $count; $i++) {
|
||||||
|
$arr[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $arr;
|
||||||
|
|
||||||
|
case 5: // Map
|
||||||
|
if ($info < 24) {
|
||||||
|
$count = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteMap($data);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for map: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
$map = [];
|
||||||
|
|
||||||
|
for ($i = 0; $i < $count; $i++) {
|
||||||
|
$key = $this->decodeValue($data);
|
||||||
|
$map[$key] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $map;
|
||||||
|
|
||||||
|
case 6: // Tag
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
$offset++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeValue($data);
|
||||||
|
|
||||||
|
case 7: // Simple/float
|
||||||
|
switch ($info) {
|
||||||
|
case 20:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
case 21:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 22:
|
||||||
|
case 23:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
case 25: // Half-precision float
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
$half = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$sign = ($half >> 15) & 0x01;
|
||||||
|
$exp = ($half >> 10) & 0x1F;
|
||||||
|
$mant = $half & 0x3FF;
|
||||||
|
|
||||||
|
if ($exp === 0) {
|
||||||
|
return $mant === 0
|
||||||
|
? ($sign ? -0.0 : 0.0)
|
||||||
|
: ($sign ? -1 : 1) * pow(2, -14) * ($mant / 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exp === 31) {
|
||||||
|
return $mant === 0 ? ($sign ? -INF : INF) : NAN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (float) (($sign ? -1 : 1) * pow(2, $exp - 15) * (1 + $mant / 1024));
|
||||||
|
|
||||||
|
case 26: // Single-precision float
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return unpack('G', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27: // Double-precision float
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
|
||||||
|
return unpack('E', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
throw new CborException("Unexpected break");
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Unknown simple value: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Unknown major type: $majorType");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length string (byte or text)
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
* @param int $expectedMajor Expected major type (0x40 for byte string, 0x60 for text string)
|
||||||
|
*
|
||||||
|
* @return string The concatenated string from all chunks
|
||||||
|
* @throws CborException If invalid chunk format or unexpected end of data
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteString(string &$data, int $expectedMajor): string
|
||||||
|
{
|
||||||
|
$chunks = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
$offset = $this->offset;
|
||||||
|
$length = $this->length;
|
||||||
|
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$byte = ord($data[$offset++]);
|
||||||
|
|
||||||
|
if ($byte === 0xFF) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return implode('', $chunks);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($byte & 0xE0) !== $expectedMajor) {
|
||||||
|
throw new CborException("Invalid chunk in indefinite string");
|
||||||
|
}
|
||||||
|
|
||||||
|
$info = $byte & 0x1F;
|
||||||
|
|
||||||
|
if ($info === 31) {
|
||||||
|
throw new CborException("Nested indefinite string");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid chunk length info: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data for chunk");
|
||||||
|
}
|
||||||
|
|
||||||
|
$chunks[] = substr($data, $offset, $len);
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length array
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return array The decoded array elements
|
||||||
|
* @throws CborException If unexpected end of data
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteArray(string &$data): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if ($this->offset >= $this->length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ord($data[$this->offset]) === 0xFF) {
|
||||||
|
$this->offset++;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length map
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return array The decoded map as associative array
|
||||||
|
* @throws CborException If unexpected end of data or odd number of items
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteMap(string &$data): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if ($this->offset >= $this->length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ord($data[$this->offset]) === 0xFF) {
|
||||||
|
$this->offset++;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$key = $this->decodeValue($data);
|
||||||
|
$result[$key] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
345
vendor/aws/aws-sdk-php/src/Api/Cbor/CborEncoder.php
vendored
Normal file
345
vendor/aws/aws-sdk-php/src/Api/Cbor/CborEncoder.php
vendored
Normal file
|
|
@ -0,0 +1,345 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Cbor;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\Exception\CborException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes PHP values to Concise Binary Object Representation according to RFC 8949
|
||||||
|
* https://www.rfc-editor.org/rfc/rfc8949.html
|
||||||
|
*
|
||||||
|
* Supports Major types 0-7 including:
|
||||||
|
* - Type 0: Unsigned integers
|
||||||
|
* - Type 1: Negative integers
|
||||||
|
* - Type 2: Byte strings (via ['__cbor_bytes' => $data] wrappers)
|
||||||
|
* - Type 3: Text strings (UTF-8)
|
||||||
|
* - Type 4: Arrays
|
||||||
|
* - Type 5: Maps
|
||||||
|
* - Type 6: Tagged values (timestamps)
|
||||||
|
* - Type 7: Simple values (null, bool, float)
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class CborEncoder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Pre-encoded integers 0-23 (single byte) and common larger values
|
||||||
|
* CBOR major type 0 (unsigned integer)
|
||||||
|
*/
|
||||||
|
private const INT_CACHE = [
|
||||||
|
0 => "\x00", 1 => "\x01", 2 => "\x02", 3 => "\x03",
|
||||||
|
4 => "\x04", 5 => "\x05", 6 => "\x06", 7 => "\x07",
|
||||||
|
8 => "\x08", 9 => "\x09", 10 => "\x0A", 11 => "\x0B",
|
||||||
|
12 => "\x0C", 13 => "\x0D", 14 => "\x0E", 15 => "\x0F",
|
||||||
|
16 => "\x10", 17 => "\x11", 18 => "\x12", 19 => "\x13",
|
||||||
|
20 => "\x14", 21 => "\x15", 22 => "\x16", 23 => "\x17",
|
||||||
|
24 => "\x18\x18", 25 => "\x18\x19", 26 => "\x18\x1A",
|
||||||
|
32 => "\x18\x20", 50 => "\x18\x32", 64 => "\x18\x40",
|
||||||
|
100 => "\x18\x64", 128 => "\x18\x80", 200 => "\x18\xC8",
|
||||||
|
255 => "\x18\xFF", 256 => "\x19\x01\x00", 500 => "\x19\x01\xF4",
|
||||||
|
1000 => "\x19\x03\xE8", 1023 => "\x19\x03\xFF",
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre-encoded negative integers -1 to -24 and common larger values
|
||||||
|
* CBOR major type 1 (negative integer)
|
||||||
|
*/
|
||||||
|
private const NEG_CACHE = [
|
||||||
|
-1 => "\x20", -2 => "\x21", -3 => "\x22", -4 => "\x23",
|
||||||
|
-5 => "\x24", -10 => "\x29", -20 => "\x33", -24 => "\x37",
|
||||||
|
-25 => "\x38\x18", -50 => "\x38\x31", -100 => "\x38\x63",
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a PHP value to CBOR binary string
|
||||||
|
*
|
||||||
|
* @param mixed $value The value to encode
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encode(mixed $value): string
|
||||||
|
{
|
||||||
|
return $this->encodeValue($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recursively encode a value to CBOR
|
||||||
|
*
|
||||||
|
* @param mixed $value Value to encode
|
||||||
|
* @return string Encoded CBOR bytes
|
||||||
|
*/
|
||||||
|
private function encodeValue(mixed $value): string
|
||||||
|
{
|
||||||
|
switch (gettype($value)) {
|
||||||
|
case 'string':
|
||||||
|
$len = strlen($value);
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x60 | $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x78" . chr($len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeTextString($value);
|
||||||
|
|
||||||
|
case 'array':
|
||||||
|
if (isset($value['__cbor_timestamp'])) {
|
||||||
|
return "\xC1\xFB" . pack('E', $value['__cbor_timestamp']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Encode a byte string (major type 2)
|
||||||
|
if (isset($value['__cbor_bytes'])) {
|
||||||
|
$bytes = $value['__cbor_bytes'];
|
||||||
|
$len = strlen($bytes);
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x40 | $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x58" . chr($len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x10000) {
|
||||||
|
return "\x59" . pack('n', $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x5A" . pack('N', $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_is_list($value)) {
|
||||||
|
return $this->encodeArray($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeMap($value);
|
||||||
|
|
||||||
|
case 'integer':
|
||||||
|
if (isset(self::INT_CACHE[$value])) {
|
||||||
|
return self::INT_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset(self::NEG_CACHE[$value])) {
|
||||||
|
return self::NEG_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fast path for positive integers
|
||||||
|
// Major type 0: unsigned integer
|
||||||
|
if ($value >= 0) {
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x18" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x19" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x1A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x1B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeInteger($value);
|
||||||
|
|
||||||
|
case 'double':
|
||||||
|
// Encode a float (major type 7, float 64)
|
||||||
|
return "\xFB" . pack('E', $value);
|
||||||
|
|
||||||
|
case 'boolean':
|
||||||
|
// Encode a boolean (major type 7, simple)
|
||||||
|
return $value ? "\xF5" : "\xF4";
|
||||||
|
|
||||||
|
case 'NULL':
|
||||||
|
// Encode null (major type 7, simple)
|
||||||
|
return "\xF6";
|
||||||
|
|
||||||
|
case 'object':
|
||||||
|
throw new CborException("Cannot encode object of type: " . get_class($value));
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Cannot encode value of type: " . gettype($value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode an integer (major type 0 or 1)
|
||||||
|
*
|
||||||
|
* @param int $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeInteger(int $value): string
|
||||||
|
{
|
||||||
|
if (isset(self::INT_CACHE[$value])) {
|
||||||
|
return self::INT_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset(self::NEG_CACHE[$value])) {
|
||||||
|
return self::NEG_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value >= 0) {
|
||||||
|
// Major type 0: unsigned integer
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x18" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x19" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x1A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x1B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Major type 1: negative integer (-1 - n)
|
||||||
|
$value = -1 - $value;
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr(0x20 | $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x38" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x39" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x3A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x3B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a text string (major type 3)
|
||||||
|
*
|
||||||
|
* @param string $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeTextString(string $value): string
|
||||||
|
{
|
||||||
|
$len = strlen($value);
|
||||||
|
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x60 | $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x78" . chr($len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x10000) {
|
||||||
|
return "\x79" . pack('n', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100000000) {
|
||||||
|
return "\x7A" . pack('N', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x7B" . pack('J', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode an array (major type 4)
|
||||||
|
*
|
||||||
|
* @param array $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeArray(array $value): string
|
||||||
|
{
|
||||||
|
$count = count($value);
|
||||||
|
|
||||||
|
if ($count < 24) {
|
||||||
|
$result = chr(0x80 | $count);
|
||||||
|
} elseif ($count < 0x100) {
|
||||||
|
$result = "\x98" . chr($count);
|
||||||
|
} elseif ($count < 0x10000) {
|
||||||
|
$result = "\x99" . pack('n', $count);
|
||||||
|
} elseif ($count < 0x100000000) {
|
||||||
|
$result = "\x9A" . pack('N', $count);
|
||||||
|
} else {
|
||||||
|
$result = "\x9B" . pack('J', $count);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($value as $item) {
|
||||||
|
$result .= $this->encodeValue($item);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a map (major type 5)
|
||||||
|
*
|
||||||
|
* @param array $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeMap(array $value): string
|
||||||
|
{
|
||||||
|
$count = count($value);
|
||||||
|
|
||||||
|
if ($count < 24) {
|
||||||
|
$result = chr(0xA0 | $count);
|
||||||
|
} elseif ($count < 0x100) {
|
||||||
|
$result = "\xB8" . chr($count);
|
||||||
|
} elseif ($count < 0x10000) {
|
||||||
|
$result = "\xB9" . pack('n', $count);
|
||||||
|
} elseif ($count < 0x100000000) {
|
||||||
|
$result = "\xBA" . pack('N', $count);
|
||||||
|
} else {
|
||||||
|
$result = "\xBB" . pack('J', $count);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
if (is_int($k)) {
|
||||||
|
$result .= $this->encodeInteger($k);
|
||||||
|
} else {
|
||||||
|
$len = strlen($k);
|
||||||
|
if ($len < 24) {
|
||||||
|
$result .= chr(0x60 | $len) . $k;
|
||||||
|
} elseif ($len < 0x100) {
|
||||||
|
$result .= "\x78" . chr($len) . $k;
|
||||||
|
} else {
|
||||||
|
$result .= "\x79" . pack('n', $len) . $k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result .= $this->encodeValue($v);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an empty map (major type 5 with 0 elements)
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encodeEmptyMap(): string
|
||||||
|
{
|
||||||
|
return "\xA0";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an empty indefinite map (major type 5 indefinite length)
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encodeEmptyIndefiniteMap(): string
|
||||||
|
{
|
||||||
|
return "\xBF\xFF";
|
||||||
|
}
|
||||||
|
}
|
||||||
6
vendor/aws/aws-sdk-php/src/Api/Cbor/Exception/CborException.php
vendored
Normal file
6
vendor/aws/aws-sdk-php/src/Api/Cbor/Exception/CborException.php
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Cbor\Exception;
|
||||||
|
|
||||||
|
use RuntimeException;
|
||||||
|
|
||||||
|
class CborException extends RuntimeException {}
|
||||||
|
|
@ -30,11 +30,6 @@ class DateTimeResult extends \DateTime implements \JsonSerializable
|
||||||
throw new ParserException('Invalid timestamp value passed to DateTimeResult::fromEpoch');
|
throw new ParserException('Invalid timestamp value passed to DateTimeResult::fromEpoch');
|
||||||
}
|
}
|
||||||
|
|
||||||
// PHP 5.5 does not support sub-second precision
|
|
||||||
if (\PHP_VERSION_ID < 56000) {
|
|
||||||
return new self(gmdate('c', $unixTimestamp));
|
|
||||||
}
|
|
||||||
|
|
||||||
$decimalSeparator = isset(localeconv()['decimal_point']) ? localeconv()['decimal_point'] : ".";
|
$decimalSeparator = isset(localeconv()['decimal_point']) ? localeconv()['decimal_point'] : ".";
|
||||||
$formatString = "U" . $decimalSeparator . "u";
|
$formatString = "U" . $decimalSeparator . "u";
|
||||||
$dateTime = DateTime::createFromFormat(
|
$dateTime = DateTime::createFromFormat(
|
||||||
|
|
|
||||||
|
|
@ -31,19 +31,6 @@ abstract class AbstractErrorParser
|
||||||
StructureShape $member
|
StructureShape $member
|
||||||
);
|
);
|
||||||
|
|
||||||
protected function extractPayload(
|
|
||||||
StructureShape $member,
|
|
||||||
ResponseInterface $response
|
|
||||||
) {
|
|
||||||
if ($member instanceof StructureShape) {
|
|
||||||
// Structure members parse top-level data into a specific key.
|
|
||||||
return $this->payload($response, $member);
|
|
||||||
} else {
|
|
||||||
// Streaming data is just the stream from the response body.
|
|
||||||
return $response->getBody();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function populateShape(
|
protected function populateShape(
|
||||||
array &$data,
|
array &$data,
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
|
|
@ -57,16 +44,15 @@ abstract class AbstractErrorParser
|
||||||
if (!empty($data['code'])) {
|
if (!empty($data['code'])) {
|
||||||
|
|
||||||
$errors = $this->api->getOperation($command->getName())->getErrors();
|
$errors = $this->api->getOperation($command->getName())->getErrors();
|
||||||
foreach ($errors as $key => $error) {
|
foreach ($errors as $error) {
|
||||||
|
|
||||||
// If error code matches a known error shape, populate the body
|
// If error code matches a known error shape, populate the body
|
||||||
if ($this->errorCodeMatches($data, $error)) {
|
if ($this->errorCodeMatches($data, $error)) {
|
||||||
$modeledError = $error;
|
$data['body'] = $this->payload(
|
||||||
$data['body'] = $this->extractPayload(
|
$response,
|
||||||
$modeledError,
|
$error
|
||||||
$response
|
|
||||||
);
|
);
|
||||||
$data['error_shape'] = $modeledError;
|
$data['error_shape'] = $error;
|
||||||
|
|
||||||
foreach ($error->getMembers() as $name => $member) {
|
foreach ($error->getMembers() as $name => $member) {
|
||||||
switch ($member['location']) {
|
switch ($member['location']) {
|
||||||
|
|
|
||||||
159
vendor/aws/aws-sdk-php/src/Api/ErrorParser/AbstractRpcV2ErrorParser.php
vendored
Normal file
159
vendor/aws/aws-sdk-php/src/Api/ErrorParser/AbstractRpcV2ErrorParser.php
vendored
Normal file
|
|
@ -0,0 +1,159 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Parser\AbstractParser;
|
||||||
|
use Aws\Api\StructureShape;
|
||||||
|
use Aws\CommandInterface;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
use Psr\Http\Message\StreamInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base implementation for Smithy RPC V2 protocol error parsers.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
abstract class AbstractRpcV2ErrorParser extends AbstractErrorParser
|
||||||
|
{
|
||||||
|
private const HEADER_QUERY_ERROR = 'x-amzn-query-error';
|
||||||
|
private const HEADER_ERROR_TYPE = 'x-amzn-errortype';
|
||||||
|
private const HEADER_REQUEST_ID = 'x-amzn-requestid';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
* @param CommandInterface|null $command
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function __invoke(
|
||||||
|
ResponseInterface $response,
|
||||||
|
?CommandInterface $command = null
|
||||||
|
) {
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
|
$data = $this->parseError($response);
|
||||||
|
|
||||||
|
if (isset($data['parsed']['__type'])) {
|
||||||
|
$data['message'] = $data['parsed']['message'] ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->populateShape($data, $response, $command);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
* @param StructureShape $member
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
abstract protected function payload(
|
||||||
|
ResponseInterface $response,
|
||||||
|
StructureShape $member
|
||||||
|
): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param StreamInterface $body
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
abstract protected function parseBody(
|
||||||
|
StreamInterface $body,
|
||||||
|
ResponseInterface $response
|
||||||
|
): mixed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function parseError(ResponseInterface $response): array
|
||||||
|
{
|
||||||
|
$statusCode = (string) $response->getStatusCode();
|
||||||
|
$errorCode = null;
|
||||||
|
$errorType = null;
|
||||||
|
|
||||||
|
if ($this->api?->getMetadata('awsQueryCompatible') !== null
|
||||||
|
&& $response->hasHeader(self::HEADER_QUERY_ERROR)
|
||||||
|
&& $awsQueryError = $this->parseQueryCompatibleHeader($response)
|
||||||
|
) {
|
||||||
|
$errorCode = $awsQueryError['code'];
|
||||||
|
$errorType = $awsQueryError['type'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$errorCode && $response->hasHeader(self::HEADER_ERROR_TYPE)) {
|
||||||
|
$errorCode = $this->extractErrorCode(
|
||||||
|
$response->getHeaderLine(self::HEADER_ERROR_TYPE)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$parsedBody = null;
|
||||||
|
$body = $response->getBody();
|
||||||
|
if ($body->getSize()) {
|
||||||
|
//TODO handle unseekable streams with CachingStream
|
||||||
|
$parsedBody = array_change_key_case($this->parseBody($body, $response));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$errorCode && $parsedBody) {
|
||||||
|
$errorCode = $this->extractErrorCode(
|
||||||
|
$parsedBody['code'] ?? $parsedBody['__type'] ?? ''
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'request_id' => $response->getHeaderLine(self::HEADER_REQUEST_ID),
|
||||||
|
'code' => $errorCode ?: null,
|
||||||
|
'message' => null,
|
||||||
|
'type' => $errorType ?? ($statusCode[0] === '4' ? 'client' : 'server'),
|
||||||
|
'parsed' => $parsedBody,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse AWS Query Compatible error from header
|
||||||
|
*
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
*
|
||||||
|
* @return array|null Returns ['code' => string, 'type' => string] or null
|
||||||
|
*/
|
||||||
|
private function parseQueryCompatibleHeader(ResponseInterface $response): ?array
|
||||||
|
{
|
||||||
|
$parts = explode(';', $response->getHeaderLine(self::HEADER_QUERY_ERROR));
|
||||||
|
if (count($parts) === 2 && $parts[0] && $parts[1]) {
|
||||||
|
return [
|
||||||
|
'code' => $parts[0],
|
||||||
|
'type' => $parts[1],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract error code from raw error string containing # and/or : delimiters
|
||||||
|
*
|
||||||
|
* @param string $rawErrorCode
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function extractErrorCode(string $rawErrorCode): string
|
||||||
|
{
|
||||||
|
// Handle format with both # and uri (e.g., "namespace#ErrorCode:http://foo-bar")
|
||||||
|
if (str_contains($rawErrorCode, ':') && str_contains($rawErrorCode, '#')) {
|
||||||
|
$start = strpos($rawErrorCode, '#') + 1;
|
||||||
|
$end = strpos($rawErrorCode, ':', $start);
|
||||||
|
return substr($rawErrorCode, $start, $end - $start);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle format with uri only : (e.g., "ErrorCode:http://foo-bar.com/baz")
|
||||||
|
if (str_contains($rawErrorCode, ':')) {
|
||||||
|
return substr($rawErrorCode, 0, strpos($rawErrorCode, ':'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle format with only # (e.g., "namespace#ErrorCode")
|
||||||
|
if (str_contains($rawErrorCode, '#')) {
|
||||||
|
return substr($rawErrorCode, strpos($rawErrorCode, '#') + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rawErrorCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
namespace Aws\Api\ErrorParser;
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Parser\AbstractParser;
|
||||||
use Aws\Api\Parser\PayloadParserTrait;
|
use Aws\Api\Parser\PayloadParserTrait;
|
||||||
use Aws\Api\StructureShape;
|
use Aws\Api\StructureShape;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
|
@ -38,9 +39,10 @@ trait JsonParserTrait
|
||||||
}
|
}
|
||||||
|
|
||||||
$parsedBody = null;
|
$parsedBody = null;
|
||||||
$body = $response->getBody();
|
|
||||||
if (!$body->isSeekable() || $body->getSize()) {
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
$parsedBody = $this->parseJson((string) $body, $response);
|
if (!empty($rawBody)) {
|
||||||
|
$parsedBody = $this->parseJson($rawBody, $response);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse error code from response body
|
// Parse error code from response body
|
||||||
|
|
@ -132,11 +134,12 @@ trait JsonParserTrait
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
StructureShape $member
|
StructureShape $member
|
||||||
) {
|
) {
|
||||||
$body = $response->getBody();
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
if (!$body->isSeekable() || $body->getSize()) {
|
|
||||||
$jsonBody = $this->parseJson($body, $response);
|
if (!empty($rawBody)) {
|
||||||
|
$jsonBody = $this->parseJson($rawBody, $response);
|
||||||
} else {
|
} else {
|
||||||
$jsonBody = (string) $body;
|
$jsonBody = $rawBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->parser->parse($member, $jsonBody);
|
return $this->parser->parse($member, $jsonBody);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
namespace Aws\Api\ErrorParser;
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Parser\AbstractParser;
|
||||||
use Aws\Api\Parser\JsonParser;
|
use Aws\Api\Parser\JsonParser;
|
||||||
use Aws\Api\Service;
|
use Aws\Api\Service;
|
||||||
use Aws\CommandInterface;
|
use Aws\CommandInterface;
|
||||||
|
|
@ -25,6 +26,7 @@ class JsonRpcErrorParser extends AbstractErrorParser
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
?CommandInterface $command = null
|
?CommandInterface $command = null
|
||||||
) {
|
) {
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
$data = $this->genericHandler($response);
|
$data = $this->genericHandler($response);
|
||||||
|
|
||||||
// Make the casing consistent across services.
|
// Make the casing consistent across services.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
namespace Aws\Api\ErrorParser;
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Parser\AbstractParser;
|
||||||
use Aws\Api\Parser\JsonParser;
|
use Aws\Api\Parser\JsonParser;
|
||||||
use Aws\Api\Service;
|
use Aws\Api\Service;
|
||||||
use Aws\Api\StructureShape;
|
use Aws\Api\StructureShape;
|
||||||
|
|
@ -26,6 +27,7 @@ class RestJsonErrorParser extends AbstractErrorParser
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
?CommandInterface $command = null
|
?CommandInterface $command = null
|
||||||
) {
|
) {
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
$data = $this->genericHandler($response);
|
$data = $this->genericHandler($response);
|
||||||
|
|
||||||
// Merge in error data from the JSON body
|
// Merge in error data from the JSON body
|
||||||
|
|
@ -40,7 +42,9 @@ class RestJsonErrorParser extends AbstractErrorParser
|
||||||
|
|
||||||
// Retrieve error message directly
|
// Retrieve error message directly
|
||||||
$data['message'] = $data['parsed']['message']
|
$data['message'] = $data['parsed']['message']
|
||||||
?? ($data['parsed']['Message'] ?? null);
|
?? $data['parsed']['Message']
|
||||||
|
?? $data['parsed']['error_description']
|
||||||
|
?? null;
|
||||||
|
|
||||||
$this->populateShape($data, $response, $command);
|
$this->populateShape($data, $response, $command);
|
||||||
|
|
||||||
|
|
|
||||||
65
vendor/aws/aws-sdk-php/src/Api/ErrorParser/RpcV2CborErrorParser.php
vendored
Normal file
65
vendor/aws/aws-sdk-php/src/Api/ErrorParser/RpcV2CborErrorParser.php
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\CborDecoder;
|
||||||
|
use Aws\Api\Parser\RpcV2ParserTrait;
|
||||||
|
use Aws\Api\Service;
|
||||||
|
use Aws\Api\StructureShape;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
use Psr\Http\Message\StreamInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses errors according to Smithy RPC V2 CBOR protocol standards.
|
||||||
|
*
|
||||||
|
* https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class RpcV2CborErrorParser extends AbstractRpcV2ErrorParser
|
||||||
|
{
|
||||||
|
/** @var CborDecoder */
|
||||||
|
private CborDecoder $decoder;
|
||||||
|
|
||||||
|
use RpcV2ParserTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Service|null $api
|
||||||
|
*/
|
||||||
|
public function __construct(?Service $api = null)
|
||||||
|
{
|
||||||
|
$this->decoder = new CborDecoder();
|
||||||
|
parent::__construct($api);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
* @param StructureShape $member
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
protected function payload(
|
||||||
|
ResponseInterface $response,
|
||||||
|
StructureShape $member
|
||||||
|
): array
|
||||||
|
{
|
||||||
|
$body = $response->getBody();
|
||||||
|
$cborBody = $this->parseCbor($body, $response);
|
||||||
|
|
||||||
|
return $this->resolveOutputShape($member, $cborBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param StreamInterface $body
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function parseBody(
|
||||||
|
StreamInterface $body,
|
||||||
|
ResponseInterface $response
|
||||||
|
): mixed
|
||||||
|
{
|
||||||
|
return $this->parseCbor($body, $response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
namespace Aws\Api\ErrorParser;
|
namespace Aws\Api\ErrorParser;
|
||||||
|
|
||||||
|
use Aws\Api\Parser\AbstractParser;
|
||||||
use Aws\Api\Parser\PayloadParserTrait;
|
use Aws\Api\Parser\PayloadParserTrait;
|
||||||
use Aws\Api\Parser\XmlParser;
|
use Aws\Api\Parser\XmlParser;
|
||||||
use Aws\Api\Service;
|
use Aws\Api\Service;
|
||||||
|
|
@ -27,6 +28,7 @@ class XmlErrorParser extends AbstractErrorParser
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
?CommandInterface $command = null
|
?CommandInterface $command = null
|
||||||
) {
|
) {
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
$code = (string) $response->getStatusCode();
|
$code = (string) $response->getStatusCode();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
|
|
@ -37,9 +39,9 @@ class XmlErrorParser extends AbstractErrorParser
|
||||||
'parsed' => null
|
'parsed' => null
|
||||||
];
|
];
|
||||||
|
|
||||||
$body = $response->getBody();
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
if ($body->getSize() > 0) {
|
if (!empty($rawBody)) {
|
||||||
$this->parseBody($this->parseXml($body, $response), $data);
|
$this->parseBody($this->parseXml($rawBody, $response), $data);
|
||||||
} else {
|
} else {
|
||||||
$this->parseHeaders($response, $data);
|
$this->parseHeaders($response, $data);
|
||||||
}
|
}
|
||||||
|
|
@ -100,12 +102,20 @@ class XmlErrorParser extends AbstractErrorParser
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
StructureShape $member
|
StructureShape $member
|
||||||
) {
|
) {
|
||||||
$xmlBody = $this->parseXml($response->getBody(), $response);
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
|
|
||||||
|
if (empty($rawBody)) {
|
||||||
|
return $rawBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
$xmlBody = $this->parseXml($rawBody, $response);
|
||||||
$prefix = $this->registerNamespacePrefix($xmlBody);
|
$prefix = $this->registerNamespacePrefix($xmlBody);
|
||||||
$errorBody = $xmlBody->xpath("//{$prefix}Error");
|
$errorBody = $xmlBody->xpath("//{$prefix}Error");
|
||||||
|
|
||||||
if (is_array($errorBody) && !empty($errorBody[0])) {
|
if (is_array($errorBody) && !empty($errorBody[0])) {
|
||||||
return $this->parser->parse($member, $errorBody[0]);
|
return $this->parser->parse($member, $errorBody[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $rawBody;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
vendor/aws/aws-sdk-php/src/Api/Exception/RpcV2CborException.php
vendored
Normal file
11
vendor/aws/aws-sdk-php/src/Api/Exception/RpcV2CborException.php
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Exception;
|
||||||
|
|
||||||
|
use Aws\HasMonitoringEventsTrait;
|
||||||
|
use Aws\MonitoringEventsInterface;
|
||||||
|
|
||||||
|
class RpcV2CborException extends \RuntimeException implements
|
||||||
|
MonitoringEventsInterface
|
||||||
|
{
|
||||||
|
use HasMonitoringEventsTrait;
|
||||||
|
}
|
||||||
2
vendor/aws/aws-sdk-php/src/Api/Operation.php
vendored
2
vendor/aws/aws-sdk-php/src/Api/Operation.php
vendored
|
|
@ -89,7 +89,7 @@ class Operation extends AbstractModel
|
||||||
/**
|
/**
|
||||||
* Get an array of operation error shapes.
|
* Get an array of operation error shapes.
|
||||||
*
|
*
|
||||||
* @return Shape[]
|
* @return StructureShape[]
|
||||||
*/
|
*/
|
||||||
public function getErrors()
|
public function getErrors()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ use Aws\Api\Service;
|
||||||
use Aws\Api\StructureShape;
|
use Aws\Api\StructureShape;
|
||||||
use Aws\CommandInterface;
|
use Aws\CommandInterface;
|
||||||
use Aws\ResultInterface;
|
use Aws\ResultInterface;
|
||||||
|
use GuzzleHttp\Psr7\CachingStream;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\StreamInterface;
|
use Psr\Http\Message\StreamInterface;
|
||||||
|
|
||||||
|
|
@ -43,4 +44,27 @@ abstract class AbstractParser
|
||||||
StructureShape $member,
|
StructureShape $member,
|
||||||
$response
|
$response
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static function getBodyContents(ResponseInterface $response): string
|
||||||
|
{
|
||||||
|
$body = $response->getBody();
|
||||||
|
if ($body->isSeekable()) {
|
||||||
|
$body->rewind();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $body->getContents();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getResponseWithCachingStream(
|
||||||
|
ResponseInterface $response
|
||||||
|
): ResponseInterface
|
||||||
|
{
|
||||||
|
if (!$response->getBody()->isSeekable()) {
|
||||||
|
return $response->withBody(
|
||||||
|
new CachingStream($response->getBody())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,21 @@ abstract class AbstractRestParser extends AbstractParser
|
||||||
|
|
||||||
if ($payload = $output['payload']) {
|
if ($payload = $output['payload']) {
|
||||||
$this->extractPayload($payload, $output, $response, $result);
|
$this->extractPayload($payload, $output, $response, $result);
|
||||||
|
} else {
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
|
|
||||||
|
if ($response->getBody()->getSize() === null) {
|
||||||
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
|
$isEmpty = empty($rawBody);
|
||||||
|
} else {
|
||||||
|
$isEmpty = $response->getBody()->getSize() === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$isEmpty && count($output->getMembers()) > 0
|
||||||
|
) {
|
||||||
|
// if no payload was found, then parse the contents of the body
|
||||||
|
$this->payload($response, $output, $result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($output->getMembers() as $name => $member) {
|
foreach ($output->getMembers() as $name => $member) {
|
||||||
|
|
@ -55,15 +70,6 @@ abstract class AbstractRestParser extends AbstractParser
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$body = $response->getBody();
|
|
||||||
if (!$payload
|
|
||||||
&& (!$body->isSeekable() || $body->getSize())
|
|
||||||
&& count($output->getMembers()) > 0
|
|
||||||
) {
|
|
||||||
// if no payload was found, then parse the contents of the body
|
|
||||||
$this->payload($response, $output, $result);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Result($result);
|
return new Result($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -75,17 +81,29 @@ abstract class AbstractRestParser extends AbstractParser
|
||||||
) {
|
) {
|
||||||
$member = $output->getMember($payload);
|
$member = $output->getMember($payload);
|
||||||
$body = $response->getBody();
|
$body = $response->getBody();
|
||||||
|
|
||||||
if (!empty($member['eventstream'])) {
|
if (!empty($member['eventstream'])) {
|
||||||
$result[$payload] = new EventParsingIterator(
|
$result[$payload] = new EventParsingIterator(
|
||||||
$body,
|
$body,
|
||||||
$member,
|
$member,
|
||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
} elseif ($member instanceof StructureShape) {
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = AbstractParser::getResponseWithCachingStream($response);
|
||||||
|
|
||||||
|
if ($member instanceof StructureShape) {
|
||||||
//Unions must have at least one member set to a non-null value
|
//Unions must have at least one member set to a non-null value
|
||||||
// If the body is empty, we can assume it is unset
|
// If the body is empty, we can assume it is unset
|
||||||
if (!empty($member['union']) && ($body->isSeekable() && !$body->getSize())) {
|
if ($response->getBody()->getSize() === null) {
|
||||||
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
|
$isEmpty = empty($rawBody);
|
||||||
|
} else {
|
||||||
|
$isEmpty = $response->getBody()->getSize() === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($member['union']) && $isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
83
vendor/aws/aws-sdk-php/src/Api/Parser/AbstractRpcV2Parser.php
vendored
Normal file
83
vendor/aws/aws-sdk-php/src/Api/Parser/AbstractRpcV2Parser.php
vendored
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Parser;
|
||||||
|
|
||||||
|
use Aws\Api\Operation;
|
||||||
|
use Aws\Api\Parser\Exception\ParserException;
|
||||||
|
use Aws\Result;
|
||||||
|
use Aws\CommandInterface;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base implementation for Smithy RPC V2 protocol parsers.
|
||||||
|
*
|
||||||
|
* Implementers MUST define the following static property representing
|
||||||
|
* the `Smithy-Protocol` header value:
|
||||||
|
* self::HEADER_SMITHY_PROTOCOL => static::$smithyProtocol
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
abstract class AbstractRpcV2Parser extends AbstractParser
|
||||||
|
{
|
||||||
|
private const HEADER_SMITHY_PROTOCOL = 'Smithy-Protocol';
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
protected static string $smithyProtocol;
|
||||||
|
|
||||||
|
public function __invoke(
|
||||||
|
CommandInterface $command,
|
||||||
|
ResponseInterface $response
|
||||||
|
) {
|
||||||
|
$operation = $this->api->getOperation($command->getName());
|
||||||
|
|
||||||
|
return $this->parseResponse($response, $operation);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a response according to Smithy RPC V2 protocol standards.
|
||||||
|
*
|
||||||
|
* @param ResponseInterface $response the response to parse.
|
||||||
|
* @param Operation $operation the operation which holds information for
|
||||||
|
* parsing the response.
|
||||||
|
*
|
||||||
|
* @return Result
|
||||||
|
*/
|
||||||
|
private function parseResponse(
|
||||||
|
ResponseInterface $response,
|
||||||
|
Operation $operation
|
||||||
|
): Result
|
||||||
|
{
|
||||||
|
$smithyProtocolHeader = $response->getHeaderLine(self::HEADER_SMITHY_PROTOCOL);
|
||||||
|
if ($smithyProtocolHeader !== static::$smithyProtocol) {
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
throw new ParserException(
|
||||||
|
"Malformed response: Smithy-Protocol header mismatch (HTTP {$statusCode}). "
|
||||||
|
. 'Expected ' . static::$smithyProtocol
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($operation['output'] === null) {
|
||||||
|
return new Result([]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$outputShape = $operation->getOutput();
|
||||||
|
foreach ($outputShape->getMembers() as $memberName => $memberProps) {
|
||||||
|
if (!empty($memberProps['eventstream'])) {
|
||||||
|
return new Result([
|
||||||
|
$memberName => new EventParsingIterator(
|
||||||
|
$response->getBody(),
|
||||||
|
$outputShape->getMember($memberName),
|
||||||
|
$this
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->parseMemberFromStream(
|
||||||
|
$response->getBody(),
|
||||||
|
$outputShape,
|
||||||
|
$response
|
||||||
|
);
|
||||||
|
|
||||||
|
return new Result(is_null($result) ? [] : $result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -63,8 +63,13 @@ class JsonRpcParser extends AbstractParser
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$body = $response->getBody();
|
||||||
|
if ($body->isSeekable()) {
|
||||||
|
$body->rewind();
|
||||||
|
}
|
||||||
|
|
||||||
$result = $this->parseMemberFromStream(
|
$result = $this->parseMemberFromStream(
|
||||||
$response->getBody(),
|
$body,
|
||||||
$operation->getOutput(),
|
$operation->getOutput(),
|
||||||
$response
|
$response
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
namespace Aws\Api\Parser;
|
namespace Aws\Api\Parser;
|
||||||
|
|
||||||
use Aws\Api\Parser\Exception\ParserException;
|
use Aws\Api\Parser\Exception\ParserException;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
|
||||||
|
|
||||||
trait PayloadParserTrait
|
trait PayloadParserTrait
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,11 @@ class QueryParser extends AbstractParser
|
||||||
ResponseInterface $response
|
ResponseInterface $response
|
||||||
) {
|
) {
|
||||||
$output = $this->api->getOperation($command->getName())->getOutput();
|
$output = $this->api->getOperation($command->getName())->getOutput();
|
||||||
$body = $response->getBody();
|
// Read the full payload, even in non-seekable streams
|
||||||
$xml = !$body->isSeekable() || $body->getSize()
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
? $this->parseXml($body, $response)
|
// Just parse when the body is not empty
|
||||||
|
$xml = !empty($rawBody)
|
||||||
|
? $this->parseXml($rawBody, $response)
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
// Empty request bodies should not be deserialized.
|
// Empty request bodies should not be deserialized.
|
||||||
|
|
|
||||||
|
|
@ -28,15 +28,14 @@ class RestJsonParser extends AbstractRestParser
|
||||||
StructureShape $member,
|
StructureShape $member,
|
||||||
array &$result
|
array &$result
|
||||||
) {
|
) {
|
||||||
$responseBody = (string) $response->getBody();
|
$rawBody = AbstractParser::getBodyContents($response);
|
||||||
|
|
||||||
// Parse JSON if we have content
|
// Parse JSON if we have content
|
||||||
$parsedJson = null;
|
if (!empty($rawBody)) {
|
||||||
if (!empty($responseBody)) {
|
$parsedJson = $this->parseJson($rawBody, $response);
|
||||||
$parsedJson = $this->parseJson($responseBody, $response);
|
|
||||||
} else {
|
} else {
|
||||||
// An empty response body should be deserialized as null
|
// An empty response body should be deserialized as null
|
||||||
$result = $parsedJson;
|
$result = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,12 @@ class RestXmlParser extends AbstractRestParser
|
||||||
StructureShape $member,
|
StructureShape $member,
|
||||||
array &$result
|
array &$result
|
||||||
) {
|
) {
|
||||||
$result += $this->parseMemberFromStream($response->getBody(), $member, $response);
|
$body = $response->getBody();
|
||||||
|
if ($body->isSeekable()) {
|
||||||
|
$body->rewind();
|
||||||
|
}
|
||||||
|
|
||||||
|
$result += $this->parseMemberFromStream($body, $member, $response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function parseMemberFromStream(
|
public function parseMemberFromStream(
|
||||||
|
|
|
||||||
50
vendor/aws/aws-sdk-php/src/Api/Parser/RpcV2CborParser.php
vendored
Normal file
50
vendor/aws/aws-sdk-php/src/Api/Parser/RpcV2CborParser.php
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Parser;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\CborDecoder;
|
||||||
|
use Aws\Api\Service;
|
||||||
|
use Aws\Api\StructureShape;
|
||||||
|
use Psr\Http\Message\StreamInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses responses according to Smithy RPC V2 CBOR protocol standards.
|
||||||
|
*
|
||||||
|
* https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class RpcV2CborParser extends AbstractRpcV2Parser
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected static string $smithyProtocol = 'rpc-v2-cbor';
|
||||||
|
|
||||||
|
/** @var CborDecoder */
|
||||||
|
private CborDecoder $decoder;
|
||||||
|
|
||||||
|
use RpcV2ParserTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Service $api Service description
|
||||||
|
*/
|
||||||
|
public function __construct(Service $api)
|
||||||
|
{
|
||||||
|
$this->decoder = new CborDecoder();
|
||||||
|
parent::__construct($api);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param StreamInterface $stream
|
||||||
|
* @param StructureShape $member
|
||||||
|
* @param $response
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function parseMemberFromStream(
|
||||||
|
StreamInterface $stream,
|
||||||
|
StructureShape $member,
|
||||||
|
$response
|
||||||
|
): mixed
|
||||||
|
{
|
||||||
|
return $this->resolveOutputShape($member, $this->parseCbor($stream, $response));
|
||||||
|
}
|
||||||
|
}
|
||||||
105
vendor/aws/aws-sdk-php/src/Api/Parser/RpcV2ParserTrait.php
vendored
Normal file
105
vendor/aws/aws-sdk-php/src/Api/Parser/RpcV2ParserTrait.php
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Parser;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\Exception\CborException;
|
||||||
|
use Aws\Api\DateTimeResult;
|
||||||
|
use Aws\Api\Parser\Exception\ParserException;
|
||||||
|
use Aws\Api\Shape;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
use Psr\Http\Message\StreamInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared parsing logic for RPC V2 Parsers.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
trait RpcV2ParserTrait
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Resolves output shape fields that are present in the response
|
||||||
|
*
|
||||||
|
* @param Shape $shape
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function resolveOutputShape(Shape $shape, mixed $value): mixed
|
||||||
|
{
|
||||||
|
if ($value === null) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($shape['type']) {
|
||||||
|
case 'structure':
|
||||||
|
$target = [];
|
||||||
|
foreach ($shape->getMembers() as $name => $member) {
|
||||||
|
$locationName = $member['locationName'] ?: $name;
|
||||||
|
if (isset($value[$locationName])) {
|
||||||
|
$target[$name] = $this->resolveOutputShape($member, $value[$locationName]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $target;
|
||||||
|
|
||||||
|
case 'list':
|
||||||
|
$target = [];
|
||||||
|
foreach ($value as $v) {
|
||||||
|
$target[] = $this->resolveOutputShape($shape->getMember(), $v);
|
||||||
|
}
|
||||||
|
return $target;
|
||||||
|
|
||||||
|
case 'map':
|
||||||
|
$target = [];
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
if ($v !== null) {
|
||||||
|
$target[$k] = $this->resolveOutputShape($shape->getValue(), $v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $target;
|
||||||
|
|
||||||
|
case 'timestamp':
|
||||||
|
try {
|
||||||
|
$value = DateTimeResult::fromEpoch($value);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
trigger_error(
|
||||||
|
'Unable to parse timestamp value for '
|
||||||
|
. $shape->getName()
|
||||||
|
. ': ' . $e->getMessage(),
|
||||||
|
E_USER_WARNING
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses CBOR-encoded response data from RPC V2 CBOR services.
|
||||||
|
*
|
||||||
|
* @param StreamInterface $stream
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function parseCbor(
|
||||||
|
StreamInterface $stream,
|
||||||
|
ResponseInterface $response
|
||||||
|
): mixed
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$cborString = (string) $stream;
|
||||||
|
return empty($cborString)
|
||||||
|
? null
|
||||||
|
: $this->decoder->decode($cborString);
|
||||||
|
} catch (CborException $e) {
|
||||||
|
throw new ParserException(
|
||||||
|
"Malformed Response: error parsing CBOR: {$e->getMessage()}",
|
||||||
|
0,
|
||||||
|
$e,
|
||||||
|
['response' => $response]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
220
vendor/aws/aws-sdk-php/src/Api/Serializer/AbstractRpcV2Serializer.php
vendored
Normal file
220
vendor/aws/aws-sdk-php/src/Api/Serializer/AbstractRpcV2Serializer.php
vendored
Normal file
|
|
@ -0,0 +1,220 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Serializer;
|
||||||
|
|
||||||
|
use Aws\Api\Service;
|
||||||
|
|
||||||
|
use Aws\Api\Shape;
|
||||||
|
use Aws\Api\StructureShape;
|
||||||
|
use Aws\CommandInterface;
|
||||||
|
use Aws\EndpointV2\EndpointV2SerializerTrait;
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
|
||||||
|
use DateTimeInterface;
|
||||||
|
use GuzzleHttp\Psr7;
|
||||||
|
use GuzzleHttp\Psr7\Request;
|
||||||
|
use GuzzleHttp\Psr7\Uri;
|
||||||
|
use Psr\Http\Message\RequestInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base implementation for Smithy RPC V2 protocol serializers.
|
||||||
|
*
|
||||||
|
* Implementers MUST override the defaultHeader property to represent
|
||||||
|
* protocol-specific default header values:
|
||||||
|
* self::HEADER_SMITHY_PROTOCOL => static::SMITHY_PROTOCOL,
|
||||||
|
* self::HEADER_CONTENT_TYPE => static::DEFAULT_CONTENT_TYPE,
|
||||||
|
* self::HEADER_ACCEPT => static::DEFAULT_ACCEPT
|
||||||
|
*
|
||||||
|
* Implementers must also implement `serialize()`, `resolveBlob()`, and `resolveTimestamp()
|
||||||
|
* according to their respective protocol specifications.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
abstract class AbstractRpcV2Serializer
|
||||||
|
{
|
||||||
|
protected const HEADER_SMITHY_PROTOCOL = 'Smithy-Protocol';
|
||||||
|
protected const HEADER_CONTENT_TYPE = 'Content-Type';
|
||||||
|
protected const HEADER_ACCEPT = 'Accept';
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
protected static array $defaultHeaders;
|
||||||
|
|
||||||
|
/** @var Service */
|
||||||
|
private Service $api;
|
||||||
|
|
||||||
|
/** @var string|Uri */
|
||||||
|
private string|Uri $endpoint;
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private bool $isUseEndpointV2;
|
||||||
|
|
||||||
|
use EndpointV2SerializerTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Service $api Service API description
|
||||||
|
* @param string $endpoint Endpoint to connect to
|
||||||
|
*/
|
||||||
|
public function __construct(Service $api, string|Uri $endpoint)
|
||||||
|
{
|
||||||
|
$this->api = $api;
|
||||||
|
$this->endpoint = Psr7\Utils::uriFor($endpoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param CommandInterface $command Command to serialize into a request.
|
||||||
|
* @param mixed|null $endpoint
|
||||||
|
*
|
||||||
|
* @return RequestInterface
|
||||||
|
*/
|
||||||
|
public function __invoke(
|
||||||
|
CommandInterface $command,
|
||||||
|
mixed $endpoint = null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
$commandArgs = $command->toArray();
|
||||||
|
$commandName = $command->getName();
|
||||||
|
$operation = $this->api->getOperation($commandName);
|
||||||
|
$headers = static::$defaultHeaders;
|
||||||
|
|
||||||
|
// Operations with no defined input type must not contain bodies
|
||||||
|
// Content-Type must not be set
|
||||||
|
if ($operation['input'] !== null) {
|
||||||
|
$body = $this->serialize($operation->getInput(), $commandArgs);
|
||||||
|
$headers['Content-Length'] = (string) strlen($body);
|
||||||
|
} else {
|
||||||
|
unset($headers['Content-Type']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($endpoint instanceof RulesetEndpoint) {
|
||||||
|
$this->isUseEndpointV2 = true;
|
||||||
|
$this->setEndpointV2RequestOptions($endpoint, $headers);
|
||||||
|
$this->endpoint = $endpoint->getUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
$requestTarget = $this->buildRequestTarget(
|
||||||
|
$commandName,
|
||||||
|
$operation['http']['requestUri'] ?? ''
|
||||||
|
);
|
||||||
|
$uri = new Uri($this->endpoint . $requestTarget);
|
||||||
|
|
||||||
|
return new Request(
|
||||||
|
$operation['http']['method'],
|
||||||
|
$uri,
|
||||||
|
$headers,
|
||||||
|
$body ?? null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param StructureShape $inputShape
|
||||||
|
* @param array $commandArgs
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
abstract public function serialize(
|
||||||
|
StructureShape $inputShape,
|
||||||
|
array $commandArgs
|
||||||
|
): string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves arguments for blob shapes present in the request arguments
|
||||||
|
* into a protocol-specific format.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
abstract protected function resolveBlob(mixed $value): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves arguments for timestamp shapes present in the request arguments
|
||||||
|
* into a protocol-specific format.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
abstract protected function resolveTimestamp(
|
||||||
|
int|float|string|DateTimeInterface $value
|
||||||
|
): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves input shape fields that are present in the request arguments
|
||||||
|
*
|
||||||
|
* @param Shape $shape
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function resolveInputShape(Shape $shape, mixed $value): mixed
|
||||||
|
{
|
||||||
|
switch ($shape->getType()) {
|
||||||
|
case 'structure':
|
||||||
|
$data = [];
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
if ($v !== null && $shape->hasMember($k)) {
|
||||||
|
$valueShape = $shape->getMember($k);
|
||||||
|
$data[$valueShape['locationName'] ?: $k]
|
||||||
|
= $this->resolveInputShape($valueShape, $v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
case 'list':
|
||||||
|
$items = $shape->getMember();
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
$value[$k] = $this->resolveInputShape($items, $v);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
|
||||||
|
case 'map':
|
||||||
|
$values = $shape->getValue();
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
$value[$k] = $this->resolveInputShape($values, $v);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
|
||||||
|
case 'timestamp':
|
||||||
|
return $this->resolveTimestamp($value);
|
||||||
|
|
||||||
|
case 'string':
|
||||||
|
return (string) $value;
|
||||||
|
|
||||||
|
case 'integer':
|
||||||
|
case 'long':
|
||||||
|
return (int) $value;
|
||||||
|
|
||||||
|
case 'double':
|
||||||
|
case 'float':
|
||||||
|
return (float) $value;
|
||||||
|
|
||||||
|
case 'blob':
|
||||||
|
return $this->resolveBlob($value);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds request URI absolute path
|
||||||
|
*
|
||||||
|
* @param string $commandName
|
||||||
|
* @param string $requestUri
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function buildRequestTarget(
|
||||||
|
string $commandName,
|
||||||
|
string $requestUri
|
||||||
|
): string
|
||||||
|
{
|
||||||
|
$requestUri = str_ends_with($requestUri, '/')
|
||||||
|
? $requestUri
|
||||||
|
: $requestUri . '/';
|
||||||
|
$targetPrefix = $this->api->getMetadata('targetPrefix');
|
||||||
|
|
||||||
|
return "{$requestUri}service/{$targetPrefix}/operation/{$commandName}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -66,7 +66,7 @@ class JsonRpcSerializer
|
||||||
$headers = [
|
$headers = [
|
||||||
'X-Amz-Target' => $this->api->getMetadata('targetPrefix') . '.' . $operationName,
|
'X-Amz-Target' => $this->api->getMetadata('targetPrefix') . '.' . $operationName,
|
||||||
'Content-Type' => $this->contentType,
|
'Content-Type' => $this->contentType,
|
||||||
'Content-Length' => strlen($body)
|
'Content-Length' => (string) strlen($body)
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($endpoint instanceof RulesetEndpoint) {
|
if ($endpoint instanceof RulesetEndpoint) {
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ class QuerySerializer
|
||||||
}
|
}
|
||||||
$body = http_build_query($body, '', '&', PHP_QUERY_RFC3986);
|
$body = http_build_query($body, '', '&', PHP_QUERY_RFC3986);
|
||||||
$headers = [
|
$headers = [
|
||||||
'Content-Length' => strlen($body),
|
'Content-Length' => (string) strlen($body),
|
||||||
'Content-Type' => 'application/x-www-form-urlencoded'
|
'Content-Type' => 'application/x-www-form-urlencoded'
|
||||||
];
|
];
|
||||||
$requestUri = $operation['http']['requestUri'] ?? null;
|
$requestUri = $operation['http']['requestUri'] ?? null;
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class RestJsonSerializer extends RestSerializer
|
||||||
{
|
{
|
||||||
$opts['headers']['Content-Type'] = $this->contentType;
|
$opts['headers']['Content-Type'] = $this->contentType;
|
||||||
$body = $this->jsonFormatter->build($member, $value);
|
$body = $this->jsonFormatter->build($member, $value);
|
||||||
$opts['headers']['Content-Length'] = strlen($body);
|
$opts['headers']['Content-Length'] = (string) strlen($body);
|
||||||
$opts['body'] = $body;
|
$opts['body'] = $body;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ abstract class RestSerializer
|
||||||
|
|
||||||
$body = $args[$name];
|
$body = $args[$name];
|
||||||
if (!$m['streaming'] && is_string($body)) {
|
if (!$m['streaming'] && is_string($body)) {
|
||||||
$opts['headers']['Content-Length'] = strlen($body);
|
$opts['headers']['Content-Length'] = (string) strlen($body);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Streaming bodies or payloads that are strings are
|
// Streaming bodies or payloads that are strings are
|
||||||
|
|
@ -173,20 +173,36 @@ abstract class RestSerializer
|
||||||
|
|
||||||
private function applyHeader($name, Shape $member, $value, array &$opts)
|
private function applyHeader($name, Shape $member, $value, array &$opts)
|
||||||
{
|
{
|
||||||
// Handle lists by recursively applying header logic to each element
|
if ($value === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle lists by applying header logic to each element
|
||||||
if ($member instanceof ListShape) {
|
if ($member instanceof ListShape) {
|
||||||
|
if (!is_array($value)) {
|
||||||
|
throw new \InvalidArgumentException('Header values must be scalar or an array of scalars.');
|
||||||
|
}
|
||||||
|
|
||||||
$listMember = $member->getMember();
|
$listMember = $member->getMember();
|
||||||
$headerValues = [];
|
$headerValues = [];
|
||||||
|
|
||||||
foreach ($value as $listValue) {
|
foreach ($value as $listValue) {
|
||||||
|
if ($listValue === null) {
|
||||||
|
throw new \InvalidArgumentException('Header values must be scalar or an array of scalars.');
|
||||||
|
}
|
||||||
|
|
||||||
$tempOpts = ['headers' => []];
|
$tempOpts = ['headers' => []];
|
||||||
$this->applyHeader('temp', $listMember, $listValue, $tempOpts);
|
$this->applyHeader('temp', $listMember, $listValue, $tempOpts);
|
||||||
|
if (!array_key_exists('temp', $tempOpts['headers'])) {
|
||||||
|
throw new \InvalidArgumentException('Header values must be scalar or an array of scalars.');
|
||||||
|
}
|
||||||
|
|
||||||
$convertedValue = $tempOpts['headers']['temp'];
|
$convertedValue = $tempOpts['headers']['temp'];
|
||||||
$headerValues[] = $convertedValue;
|
$headerValues[] = $convertedValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$value = $headerValues;
|
$value = $headerValues;
|
||||||
} elseif (!is_null($value)) {
|
} else {
|
||||||
switch ($member->getType()) {
|
switch ($member->getType()) {
|
||||||
case 'timestamp':
|
case 'timestamp':
|
||||||
$timestampFormat = $member['timestampFormat'] ?? 'rfc822';
|
$timestampFormat = $member['timestampFormat'] ?? 'rfc822';
|
||||||
|
|
@ -208,7 +224,7 @@ abstract class RestSerializer
|
||||||
$value = base64_encode($value);
|
$value = base64_encode($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
$opts['headers'][$member['locationName'] ?: $name] = $value;
|
$opts['headers'][$member['locationName'] ?: $name] = self::prepareHeaderValue($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -218,8 +234,40 @@ abstract class RestSerializer
|
||||||
{
|
{
|
||||||
$prefix = $member['locationName'];
|
$prefix = $member['locationName'];
|
||||||
foreach ($value as $k => $v) {
|
foreach ($value as $k => $v) {
|
||||||
$opts['headers'][$prefix . $k] = $v;
|
if ($v === null) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$opts['headers'][$prefix . $k] = self::prepareHeaderValue($v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string|string[]
|
||||||
|
*/
|
||||||
|
private static function prepareHeaderValue($value)
|
||||||
|
{
|
||||||
|
if (is_scalar($value)) {
|
||||||
|
return (string) $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($value)) {
|
||||||
|
if ($value === []) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($value as $key => $item) {
|
||||||
|
if (!is_scalar($item)) {
|
||||||
|
throw new \InvalidArgumentException('Header values must be scalar or an array of scalars.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$value[$key] = (string) $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \InvalidArgumentException('Header values must be scalar or an array of scalars.');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function applyQuery($name, Shape $member, $value, array &$opts)
|
private function applyQuery($name, Shape $member, $value, array &$opts)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class RestXmlSerializer extends RestSerializer
|
||||||
{
|
{
|
||||||
$opts['headers']['Content-Type'] = 'application/xml';
|
$opts['headers']['Content-Type'] = 'application/xml';
|
||||||
$body = $this->getXmlBody($member, $value);
|
$body = $this->getXmlBody($member, $value);
|
||||||
$opts['headers']['Content-Length'] = strlen($body);
|
$opts['headers']['Content-Length'] = (string) strlen($body);
|
||||||
$opts['body'] = $body;
|
$opts['body'] = $body;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
124
vendor/aws/aws-sdk-php/src/Api/Serializer/RpcV2CborSerializer.php
vendored
Normal file
124
vendor/aws/aws-sdk-php/src/Api/Serializer/RpcV2CborSerializer.php
vendored
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Api\Serializer;
|
||||||
|
|
||||||
|
use Aws\Api\Cbor\CborEncoder;
|
||||||
|
use Aws\Api\Cbor\Exception\CborException;
|
||||||
|
use Aws\Api\Exception\RpcV2CborException;
|
||||||
|
use Aws\Api\Service;
|
||||||
|
use Aws\Api\StructureShape;
|
||||||
|
use DateTimeInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serializes requests according to Smithy RPC-V2 CBOR protocol standards.
|
||||||
|
*
|
||||||
|
* https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class RpcV2CborSerializer extends AbstractRpcV2Serializer
|
||||||
|
{
|
||||||
|
/** @var array|string[] */
|
||||||
|
protected static array $defaultHeaders = [
|
||||||
|
self::HEADER_SMITHY_PROTOCOL => 'rpc-v2-cbor',
|
||||||
|
self::HEADER_CONTENT_TYPE => 'application/cbor',
|
||||||
|
self::HEADER_ACCEPT => 'application/cbor',
|
||||||
|
];
|
||||||
|
|
||||||
|
/** @var CborEncoder */
|
||||||
|
private CborEncoder $encoder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Service $api Service API description
|
||||||
|
* @param string $endpoint Endpoint to connect to
|
||||||
|
*/
|
||||||
|
public function __construct(Service $api, string $endpoint)
|
||||||
|
{
|
||||||
|
$this->encoder = new CborEncoder();
|
||||||
|
parent::__construct($api, $endpoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param StructureShape $inputShape
|
||||||
|
* @param array $commandArgs
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws RpcV2CborException
|
||||||
|
*/
|
||||||
|
public function serialize(
|
||||||
|
StructureShape $inputShape,
|
||||||
|
array $commandArgs
|
||||||
|
): string
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$resolvedInput = $this->resolveInputShape($inputShape, $commandArgs);
|
||||||
|
return !empty($resolvedInput)
|
||||||
|
? $this->encoder->encode($resolvedInput)
|
||||||
|
: $this->encoder->encodeEmptyIndefiniteMap();
|
||||||
|
} catch (CborException $e) {
|
||||||
|
throw new RpcV2CborException(
|
||||||
|
'Unable to encode CBOR document ' . $inputShape->getName() . ': ' .
|
||||||
|
$e->getMessage() . PHP_EOL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps blob values in order to be encoded properly into
|
||||||
|
* byte strings.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
* @throws RpcV2CborException
|
||||||
|
*/
|
||||||
|
protected function resolveBlob(mixed $value): array
|
||||||
|
{
|
||||||
|
if (is_resource($value)) {
|
||||||
|
$value = stream_get_contents($value);
|
||||||
|
if ($value === false) {
|
||||||
|
throw new RpcV2CborException(
|
||||||
|
'Failed to read resource stream value during serialization',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrapper to differentiate byte string values during encoding
|
||||||
|
return ['__cbor_bytes' => (string) $value];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps timestamp values in order to be encoded properly into
|
||||||
|
* value tag 1.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
* @throws RpcV2CborException
|
||||||
|
*/
|
||||||
|
protected function resolveTimestamp(
|
||||||
|
int|float|string|DateTimeInterface $value
|
||||||
|
): array
|
||||||
|
{
|
||||||
|
if (is_numeric($value)) {
|
||||||
|
return ['__cbor_timestamp' => $value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value instanceof DateTimeInterface) {
|
||||||
|
// Preserve milliseconds
|
||||||
|
$micro = (int) $value->format('u');
|
||||||
|
$value = $value->getTimestamp() + $micro / 1e6;
|
||||||
|
} else {
|
||||||
|
$timestamp = strtotime($value);
|
||||||
|
if ($timestamp === false) {
|
||||||
|
throw new RpcV2CborException(
|
||||||
|
'Request serialization failed: Invalid date/time: ' . $value,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$value = $timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrapper to differentiate timestamp values during encoding
|
||||||
|
return ['__cbor_timestamp' => $value];
|
||||||
|
}
|
||||||
|
}
|
||||||
9
vendor/aws/aws-sdk-php/src/Api/Service.php
vendored
9
vendor/aws/aws-sdk-php/src/Api/Service.php
vendored
|
|
@ -91,7 +91,8 @@ class Service extends AbstractModel
|
||||||
'json' => Serializer\JsonRpcSerializer::class,
|
'json' => Serializer\JsonRpcSerializer::class,
|
||||||
'query' => Serializer\QuerySerializer::class,
|
'query' => Serializer\QuerySerializer::class,
|
||||||
'rest-json' => Serializer\RestJsonSerializer::class,
|
'rest-json' => Serializer\RestJsonSerializer::class,
|
||||||
'rest-xml' => Serializer\RestXmlSerializer::class
|
'rest-xml' => Serializer\RestXmlSerializer::class,
|
||||||
|
'smithy-rpc-v2-cbor' => Serializer\RpcV2CborSerializer::class
|
||||||
];
|
];
|
||||||
|
|
||||||
$proto = $api->getProtocol();
|
$proto = $api->getProtocol();
|
||||||
|
|
@ -126,7 +127,8 @@ class Service extends AbstractModel
|
||||||
'query' => ErrorParser\XmlErrorParser::class,
|
'query' => ErrorParser\XmlErrorParser::class,
|
||||||
'rest-json' => ErrorParser\RestJsonErrorParser::class,
|
'rest-json' => ErrorParser\RestJsonErrorParser::class,
|
||||||
'rest-xml' => ErrorParser\XmlErrorParser::class,
|
'rest-xml' => ErrorParser\XmlErrorParser::class,
|
||||||
'ec2' => ErrorParser\XmlErrorParser::class
|
'ec2' => ErrorParser\XmlErrorParser::class,
|
||||||
|
'smithy-rpc-v2-cbor' => ErrorParser\RpcV2CborErrorParser::class
|
||||||
];
|
];
|
||||||
|
|
||||||
if (isset($mapping[$protocol])) {
|
if (isset($mapping[$protocol])) {
|
||||||
|
|
@ -149,7 +151,8 @@ class Service extends AbstractModel
|
||||||
'json' => Parser\JsonRpcParser::class,
|
'json' => Parser\JsonRpcParser::class,
|
||||||
'query' => Parser\QueryParser::class,
|
'query' => Parser\QueryParser::class,
|
||||||
'rest-json' => Parser\RestJsonParser::class,
|
'rest-json' => Parser\RestJsonParser::class,
|
||||||
'rest-xml' => Parser\RestXmlParser::class
|
'rest-xml' => Parser\RestXmlParser::class,
|
||||||
|
'smithy-rpc-v2-cbor' => Parser\RpcV2CborParser::class
|
||||||
];
|
];
|
||||||
|
|
||||||
$proto = $api->getProtocol();
|
$proto = $api->getProtocol();
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace Aws\Api;
|
||||||
enum SupportedProtocols: string
|
enum SupportedProtocols: string
|
||||||
{
|
{
|
||||||
case JSON = 'json';
|
case JSON = 'json';
|
||||||
|
case CBOR = 'smithy-rpc-v2-cbor';
|
||||||
case REST_JSON = 'rest-json';
|
case REST_JSON = 'rest-json';
|
||||||
case REST_XML = 'rest-xml';
|
case REST_XML = 'rest-xml';
|
||||||
case QUERY = 'query';
|
case QUERY = 'query';
|
||||||
|
|
|
||||||
|
|
@ -28,16 +28,16 @@ class TimestampShape extends Shape
|
||||||
$value = $value->getTimestamp();
|
$value = $value->getTimestamp();
|
||||||
} elseif (is_string($value)) {
|
} elseif (is_string($value)) {
|
||||||
$value = strtotime($value);
|
$value = strtotime($value);
|
||||||
} elseif (!is_int($value)) {
|
} elseif (!is_int($value) && !is_float($value)) {
|
||||||
throw new \InvalidArgumentException('Unable to handle the provided'
|
throw new \InvalidArgumentException('Unable to handle the provided'
|
||||||
. ' timestamp type: ' . gettype($value));
|
. ' timestamp type: ' . gettype($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($format) {
|
switch ($format) {
|
||||||
case 'iso8601':
|
case 'iso8601':
|
||||||
return gmdate('Y-m-d\TH:i:s\Z', $value);
|
return gmdate('Y-m-d\TH:i:s\Z', (int) $value);
|
||||||
case 'rfc822':
|
case 'rfc822':
|
||||||
return gmdate('D, d M Y H:i:s \G\M\T', $value);
|
return gmdate('D, d M Y H:i:s \G\M\T', (int) $value);
|
||||||
case 'unixTimestamp':
|
case 'unixTimestamp':
|
||||||
return $value;
|
return $value;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociateFleetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociateFleetAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociateSoftwareFromImageBuilder(array $args = [])
|
* @method \Aws\Result disassociateSoftwareFromImageBuilder(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociateSoftwareFromImageBuilderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociateSoftwareFromImageBuilderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result drainSessionInstance(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise drainSessionInstanceAsync(array $args = [])
|
||||||
* @method \Aws\Result enableUser(array $args = [])
|
* @method \Aws\Result enableUser(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise enableUserAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise enableUserAsync(array $args = [])
|
||||||
* @method \Aws\Result expireSession(array $args = [])
|
* @method \Aws\Result expireSession(array $args = [])
|
||||||
|
|
|
||||||
54
vendor/aws/aws-sdk-php/src/AwsClient.php
vendored
54
vendor/aws/aws-sdk-php/src/AwsClient.php
vendored
|
|
@ -283,6 +283,7 @@ class AwsClient implements AwsClientInterface
|
||||||
$args['with_resolved']($config);
|
$args['with_resolved']($config);
|
||||||
}
|
}
|
||||||
$this->addUserAgentMiddleware($config);
|
$this->addUserAgentMiddleware($config);
|
||||||
|
$this->addEventStreamHttpFlagMiddleware();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getHandlerList()
|
public function getHandlerList()
|
||||||
|
|
@ -543,7 +544,7 @@ class AwsClient implements AwsClientInterface
|
||||||
{
|
{
|
||||||
$list = $this->getHandlerList();
|
$list = $this->getHandlerList();
|
||||||
$list->appendBuild(
|
$list->appendBuild(
|
||||||
Middleware::mapRequest(function (RequestInterface $r) {
|
Middleware::mapRequest(static function (RequestInterface $r) {
|
||||||
return $r->withHeader(
|
return $r->withHeader(
|
||||||
'x-amzn-query-mode',
|
'x-amzn-query-mode',
|
||||||
"true"
|
"true"
|
||||||
|
|
@ -649,6 +650,34 @@ class AwsClient implements AwsClientInterface
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables streaming the response by using the stream flag.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function addEventStreamHttpFlagMiddleware(): void
|
||||||
|
{
|
||||||
|
$api = $this->getApi();
|
||||||
|
$this->getHandlerList()
|
||||||
|
-> appendInit(
|
||||||
|
static function (callable $handler) use ($api) {
|
||||||
|
return static function (CommandInterface $command, $request = null) use ($handler, $api) {
|
||||||
|
$operation = $api->getOperation($command->getName());
|
||||||
|
$output = $operation->getOutput();
|
||||||
|
foreach ($output->getMembers() as $memberProps) {
|
||||||
|
if (!empty($memberProps['eventstream'])) {
|
||||||
|
$command['@http']['stream'] = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $handler($command, $request);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
'event-streaming-flag-middleware'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves client context param definition from service model,
|
* Retrieves client context param definition from service model,
|
||||||
* creates mapping of client context param names with client-provided
|
* creates mapping of client context param names with client-provided
|
||||||
|
|
@ -737,29 +766,6 @@ class AwsClient implements AwsClientInterface
|
||||||
return $this->endpointProvider instanceof EndpointProviderV2;
|
return $this->endpointProvider instanceof EndpointProviderV2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function emitDeprecationWarning() {
|
|
||||||
trigger_error(
|
|
||||||
"This method is deprecated. It will be removed in an upcoming release."
|
|
||||||
, E_USER_DEPRECATED
|
|
||||||
);
|
|
||||||
|
|
||||||
$phpVersion = PHP_VERSION_ID;
|
|
||||||
if ($phpVersion < 70205) {
|
|
||||||
$phpVersionString = phpversion();
|
|
||||||
@trigger_error(
|
|
||||||
"This installation of the SDK is using PHP version"
|
|
||||||
. " {$phpVersionString}, which will be deprecated on August"
|
|
||||||
. " 15th, 2023. Please upgrade your PHP version to a minimum of"
|
|
||||||
. " 7.2.5 before then to continue receiving updates to the AWS"
|
|
||||||
. " SDK for PHP. To disable this warning, set"
|
|
||||||
. " suppress_php_deprecation_warning to true on the client constructor"
|
|
||||||
. " or set the environment variable AWS_SUPPRESS_PHP_DEPRECATION_WARNING"
|
|
||||||
. " to true.",
|
|
||||||
E_USER_DEPRECATED
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a service model and doc model with any necessary changes
|
* Returns a service model and doc model with any necessary changes
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ trait AwsClientTrait
|
||||||
$name = $this->aliases[ucfirst($name)];
|
$name = $this->aliases[ucfirst($name)];
|
||||||
}
|
}
|
||||||
|
|
||||||
$params = isset($args[0]) ? $args[0] : [];
|
$params = $args['args'] ?? $args[0] ?? [];
|
||||||
|
|
||||||
if (!empty($isAsync)) {
|
if (!empty($isAsync)) {
|
||||||
return $this->executeAsync(
|
return $this->executeAsync(
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,24 @@ use Aws\AwsClient;
|
||||||
* This client is used to interact with the **AWS Billing and Cost Management Dashboards** service.
|
* This client is used to interact with the **AWS Billing and Cost Management Dashboards** service.
|
||||||
* @method \Aws\Result createDashboard(array $args = [])
|
* @method \Aws\Result createDashboard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createDashboardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createDashboardAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createScheduledReport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createScheduledReportAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteDashboard(array $args = [])
|
* @method \Aws\Result deleteDashboard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteDashboardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteDashboardAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteScheduledReport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteScheduledReportAsync(array $args = [])
|
||||||
|
* @method \Aws\Result executeScheduledReport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise executeScheduledReportAsync(array $args = [])
|
||||||
* @method \Aws\Result getDashboard(array $args = [])
|
* @method \Aws\Result getDashboard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
|
||||||
* @method \Aws\Result getResourcePolicy(array $args = [])
|
* @method \Aws\Result getResourcePolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getScheduledReport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getScheduledReportAsync(array $args = [])
|
||||||
* @method \Aws\Result listDashboards(array $args = [])
|
* @method \Aws\Result listDashboards(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listScheduledReports(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listScheduledReportsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
|
|
@ -23,5 +33,7 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateDashboard(array $args = [])
|
* @method \Aws\Result updateDashboard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateDashboardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateDashboardAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateScheduledReport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateScheduledReportAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
class BCMDashboardsClient extends AwsClient {}
|
class BCMDashboardsClient extends AwsClient {}
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getBackupVaultNotificationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getBackupVaultNotificationsAsync(array $args = [])
|
||||||
* @method \Aws\Result getLegalHold(array $args = [])
|
* @method \Aws\Result getLegalHold(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getLegalHoldAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getLegalHoldAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPITRMalwareScanResults(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPITRMalwareScanResultsAsync(array $args = [])
|
||||||
* @method \Aws\Result getRecoveryPointIndexDetails(array $args = [])
|
* @method \Aws\Result getRecoveryPointIndexDetails(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getRecoveryPointIndexDetailsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getRecoveryPointIndexDetailsAsync(array $args = [])
|
||||||
* @method \Aws\Result getRecoveryPointRestoreMetadata(array $args = [])
|
* @method \Aws\Result getRecoveryPointRestoreMetadata(array $args = [])
|
||||||
|
|
|
||||||
12
vendor/aws/aws-sdk-php/src/Batch/BatchClient.php
vendored
12
vendor/aws/aws-sdk-php/src/Batch/BatchClient.php
vendored
|
|
@ -13,6 +13,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createConsumableResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createConsumableResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result createJobQueue(array $args = [])
|
* @method \Aws\Result createJobQueue(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createJobQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createJobQueueAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createQuotaShare(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createQuotaShareAsync(array $args = [])
|
||||||
* @method \Aws\Result createSchedulingPolicy(array $args = [])
|
* @method \Aws\Result createSchedulingPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createSchedulingPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createSchedulingPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result createServiceEnvironment(array $args = [])
|
* @method \Aws\Result createServiceEnvironment(array $args = [])
|
||||||
|
|
@ -23,6 +25,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteConsumableResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteConsumableResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteJobQueue(array $args = [])
|
* @method \Aws\Result deleteJobQueue(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteJobQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteJobQueueAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteQuotaShare(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteQuotaShareAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteSchedulingPolicy(array $args = [])
|
* @method \Aws\Result deleteSchedulingPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteSchedulingPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteSchedulingPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteServiceEnvironment(array $args = [])
|
* @method \Aws\Result deleteServiceEnvironment(array $args = [])
|
||||||
|
|
@ -39,6 +43,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeJobQueuesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeJobQueuesAsync(array $args = [])
|
||||||
* @method \Aws\Result describeJobs(array $args = [])
|
* @method \Aws\Result describeJobs(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeJobsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeJobsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeQuotaShare(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeQuotaShareAsync(array $args = [])
|
||||||
* @method \Aws\Result describeSchedulingPolicies(array $args = [])
|
* @method \Aws\Result describeSchedulingPolicies(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeSchedulingPoliciesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeSchedulingPoliciesAsync(array $args = [])
|
||||||
* @method \Aws\Result describeServiceEnvironments(array $args = [])
|
* @method \Aws\Result describeServiceEnvironments(array $args = [])
|
||||||
|
|
@ -53,6 +59,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = [])
|
||||||
* @method \Aws\Result listJobsByConsumableResource(array $args = [])
|
* @method \Aws\Result listJobsByConsumableResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listJobsByConsumableResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listJobsByConsumableResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listQuotaShares(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listQuotaSharesAsync(array $args = [])
|
||||||
* @method \Aws\Result listSchedulingPolicies(array $args = [])
|
* @method \Aws\Result listSchedulingPolicies(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listSchedulingPoliciesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listSchedulingPoliciesAsync(array $args = [])
|
||||||
* @method \Aws\Result listServiceJobs(array $args = [])
|
* @method \Aws\Result listServiceJobs(array $args = [])
|
||||||
|
|
@ -79,9 +87,13 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateConsumableResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateConsumableResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateJobQueue(array $args = [])
|
* @method \Aws\Result updateJobQueue(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateJobQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateJobQueueAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateQuotaShare(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateQuotaShareAsync(array $args = [])
|
||||||
* @method \Aws\Result updateSchedulingPolicy(array $args = [])
|
* @method \Aws\Result updateSchedulingPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateSchedulingPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateSchedulingPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result updateServiceEnvironment(array $args = [])
|
* @method \Aws\Result updateServiceEnvironment(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateServiceEnvironmentAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateServiceEnvironmentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateServiceJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateServiceJobAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
class BatchClient extends AwsClient {}
|
class BatchClient extends AwsClient {}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,14 @@ use Aws\AwsClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This client is used to interact with the **Amazon Bedrock** service.
|
* This client is used to interact with the **Amazon Bedrock** service.
|
||||||
|
* @method \Aws\Result batchDeleteAdvancedPromptOptimizationJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchDeleteAdvancedPromptOptimizationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result batchDeleteEvaluationJob(array $args = [])
|
* @method \Aws\Result batchDeleteEvaluationJob(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise batchDeleteEvaluationJobAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchDeleteEvaluationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result cancelAutomatedReasoningPolicyBuildWorkflow(array $args = [])
|
* @method \Aws\Result cancelAutomatedReasoningPolicyBuildWorkflow(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise cancelAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise cancelAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createAdvancedPromptOptimizationJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createAdvancedPromptOptimizationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result createAutomatedReasoningPolicy(array $args = [])
|
* @method \Aws\Result createAutomatedReasoningPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createAutomatedReasoningPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createAutomatedReasoningPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result createAutomatedReasoningPolicyTestCase(array $args = [])
|
* @method \Aws\Result createAutomatedReasoningPolicyTestCase(array $args = [])
|
||||||
|
|
@ -71,10 +75,14 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deletePromptRouterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deletePromptRouterAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteProvisionedModelThroughput(array $args = [])
|
* @method \Aws\Result deleteProvisionedModelThroughput(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteProvisionedModelThroughputAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteProvisionedModelThroughputAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteResourcePolicy(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result deregisterMarketplaceModelEndpoint(array $args = [])
|
* @method \Aws\Result deregisterMarketplaceModelEndpoint(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deregisterMarketplaceModelEndpointAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deregisterMarketplaceModelEndpointAsync(array $args = [])
|
||||||
* @method \Aws\Result exportAutomatedReasoningPolicyVersion(array $args = [])
|
* @method \Aws\Result exportAutomatedReasoningPolicyVersion(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise exportAutomatedReasoningPolicyVersionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise exportAutomatedReasoningPolicyVersionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAdvancedPromptOptimizationJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAdvancedPromptOptimizationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result getAutomatedReasoningPolicy(array $args = [])
|
* @method \Aws\Result getAutomatedReasoningPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result getAutomatedReasoningPolicyAnnotations(array $args = [])
|
* @method \Aws\Result getAutomatedReasoningPolicyAnnotations(array $args = [])
|
||||||
|
|
@ -121,8 +129,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getPromptRouterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getPromptRouterAsync(array $args = [])
|
||||||
* @method \Aws\Result getProvisionedModelThroughput(array $args = [])
|
* @method \Aws\Result getProvisionedModelThroughput(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getProvisionedModelThroughputAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getProvisionedModelThroughputAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getResourcePolicy(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result getUseCaseForModelAccess(array $args = [])
|
* @method \Aws\Result getUseCaseForModelAccess(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getUseCaseForModelAccessAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getUseCaseForModelAccessAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAdvancedPromptOptimizationJobs(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAdvancedPromptOptimizationJobsAsync(array $args = [])
|
||||||
* @method \Aws\Result listAutomatedReasoningPolicies(array $args = [])
|
* @method \Aws\Result listAutomatedReasoningPolicies(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPoliciesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPoliciesAsync(array $args = [])
|
||||||
* @method \Aws\Result listAutomatedReasoningPolicyBuildWorkflows(array $args = [])
|
* @method \Aws\Result listAutomatedReasoningPolicyBuildWorkflows(array $args = [])
|
||||||
|
|
@ -169,6 +181,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise putEnforcedGuardrailConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putEnforcedGuardrailConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result putModelInvocationLoggingConfiguration(array $args = [])
|
* @method \Aws\Result putModelInvocationLoggingConfiguration(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putModelInvocationLoggingConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putModelInvocationLoggingConfigurationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result putResourcePolicy(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise putResourcePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result putUseCaseForModelAccess(array $args = [])
|
* @method \Aws\Result putUseCaseForModelAccess(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putUseCaseForModelAccessAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putUseCaseForModelAccessAsync(array $args = [])
|
||||||
* @method \Aws\Result registerMarketplaceModelEndpoint(array $args = [])
|
* @method \Aws\Result registerMarketplaceModelEndpoint(array $args = [])
|
||||||
|
|
@ -177,6 +191,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
|
||||||
* @method \Aws\Result startAutomatedReasoningPolicyTestWorkflow(array $args = [])
|
* @method \Aws\Result startAutomatedReasoningPolicyTestWorkflow(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyTestWorkflowAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyTestWorkflowAsync(array $args = [])
|
||||||
|
* @method \Aws\Result stopAdvancedPromptOptimizationJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise stopAdvancedPromptOptimizationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result stopEvaluationJob(array $args = [])
|
* @method \Aws\Result stopEvaluationJob(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopEvaluationJobAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopEvaluationJobAsync(array $args = [])
|
||||||
* @method \Aws\Result stopModelCustomizationJob(array $args = [])
|
* @method \Aws\Result stopModelCustomizationJob(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -13,16 +13,36 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise batchUpdateMemoryRecordsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchUpdateMemoryRecordsAsync(array $args = [])
|
||||||
* @method \Aws\Result completeResourceTokenAuth(array $args = [])
|
* @method \Aws\Result completeResourceTokenAuth(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise completeResourceTokenAuthAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise completeResourceTokenAuthAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createABTest(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createABTestAsync(array $args = [])
|
||||||
* @method \Aws\Result createEvent(array $args = [])
|
* @method \Aws\Result createEvent(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createEventAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createEventAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPaymentInstrument(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPaymentInstrumentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPaymentSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPaymentSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteABTest(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteABTestAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteBatchEvaluation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteBatchEvaluationAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteEvent(array $args = [])
|
* @method \Aws\Result deleteEvent(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteEventAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteEventAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteMemoryRecord(array $args = [])
|
* @method \Aws\Result deleteMemoryRecord(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteMemoryRecordAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteMemoryRecordAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePaymentInstrument(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePaymentInstrumentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePaymentSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePaymentSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteRecommendation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteRecommendationAsync(array $args = [])
|
||||||
* @method \Aws\Result evaluate(array $args = [])
|
* @method \Aws\Result evaluate(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise evaluateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise evaluateAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getABTest(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getABTestAsync(array $args = [])
|
||||||
* @method \Aws\Result getAgentCard(array $args = [])
|
* @method \Aws\Result getAgentCard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getAgentCardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getAgentCardAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getBatchEvaluation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getBatchEvaluationAsync(array $args = [])
|
||||||
* @method \Aws\Result getBrowserSession(array $args = [])
|
* @method \Aws\Result getBrowserSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getBrowserSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getBrowserSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result getCodeInterpreterSession(array $args = [])
|
* @method \Aws\Result getCodeInterpreterSession(array $args = [])
|
||||||
|
|
@ -31,10 +51,20 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getEventAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getEventAsync(array $args = [])
|
||||||
* @method \Aws\Result getMemoryRecord(array $args = [])
|
* @method \Aws\Result getMemoryRecord(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getMemoryRecordAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMemoryRecordAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentInstrument(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentInstrumentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentInstrumentBalance(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentInstrumentBalanceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRecommendation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRecommendationAsync(array $args = [])
|
||||||
* @method \Aws\Result getResourceApiKey(array $args = [])
|
* @method \Aws\Result getResourceApiKey(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getResourceApiKeyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getResourceApiKeyAsync(array $args = [])
|
||||||
* @method \Aws\Result getResourceOauth2Token(array $args = [])
|
* @method \Aws\Result getResourceOauth2Token(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getResourceOauth2TokenAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getResourceOauth2TokenAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getResourcePaymentToken(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getResourcePaymentTokenAsync(array $args = [])
|
||||||
* @method \Aws\Result getWorkloadAccessToken(array $args = [])
|
* @method \Aws\Result getWorkloadAccessToken(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenAsync(array $args = [])
|
||||||
* @method \Aws\Result getWorkloadAccessTokenForJWT(array $args = [])
|
* @method \Aws\Result getWorkloadAccessTokenForJWT(array $args = [])
|
||||||
|
|
@ -43,10 +73,20 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenForUserIdAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenForUserIdAsync(array $args = [])
|
||||||
* @method \Aws\Result invokeAgentRuntime(array $args = [])
|
* @method \Aws\Result invokeAgentRuntime(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise invokeAgentRuntimeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise invokeAgentRuntimeAsync(array $args = [])
|
||||||
|
* @method \Aws\Result invokeAgentRuntimeCommand(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise invokeAgentRuntimeCommandAsync(array $args = [])
|
||||||
|
* @method \Aws\Result invokeBrowser(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise invokeBrowserAsync(array $args = [])
|
||||||
* @method \Aws\Result invokeCodeInterpreter(array $args = [])
|
* @method \Aws\Result invokeCodeInterpreter(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise invokeCodeInterpreterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise invokeCodeInterpreterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result invokeHarness(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise invokeHarnessAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listABTests(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listABTestsAsync(array $args = [])
|
||||||
* @method \Aws\Result listActors(array $args = [])
|
* @method \Aws\Result listActors(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listActorsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listActorsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listBatchEvaluations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listBatchEvaluationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listBrowserSessions(array $args = [])
|
* @method \Aws\Result listBrowserSessions(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listBrowserSessionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listBrowserSessionsAsync(array $args = [])
|
||||||
* @method \Aws\Result listCodeInterpreterSessions(array $args = [])
|
* @method \Aws\Result listCodeInterpreterSessions(array $args = [])
|
||||||
|
|
@ -57,22 +97,42 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listMemoryExtractionJobsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listMemoryExtractionJobsAsync(array $args = [])
|
||||||
* @method \Aws\Result listMemoryRecords(array $args = [])
|
* @method \Aws\Result listMemoryRecords(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listMemoryRecordsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listMemoryRecordsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPaymentInstruments(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPaymentInstrumentsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPaymentSessions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPaymentSessionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRecommendations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRecommendationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listSessions(array $args = [])
|
* @method \Aws\Result listSessions(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listSessionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listSessionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result processPayment(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise processPaymentAsync(array $args = [])
|
||||||
* @method \Aws\Result retrieveMemoryRecords(array $args = [])
|
* @method \Aws\Result retrieveMemoryRecords(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise retrieveMemoryRecordsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise retrieveMemoryRecordsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result saveBrowserSessionProfile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise saveBrowserSessionProfileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result searchRegistryRecords(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise searchRegistryRecordsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startBatchEvaluation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startBatchEvaluationAsync(array $args = [])
|
||||||
* @method \Aws\Result startBrowserSession(array $args = [])
|
* @method \Aws\Result startBrowserSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startBrowserSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startBrowserSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result startCodeInterpreterSession(array $args = [])
|
* @method \Aws\Result startCodeInterpreterSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startCodeInterpreterSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startCodeInterpreterSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result startMemoryExtractionJob(array $args = [])
|
* @method \Aws\Result startMemoryExtractionJob(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startMemoryExtractionJobAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startMemoryExtractionJobAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startRecommendation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startRecommendationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result stopBatchEvaluation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise stopBatchEvaluationAsync(array $args = [])
|
||||||
* @method \Aws\Result stopBrowserSession(array $args = [])
|
* @method \Aws\Result stopBrowserSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopBrowserSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopBrowserSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result stopCodeInterpreterSession(array $args = [])
|
* @method \Aws\Result stopCodeInterpreterSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopCodeInterpreterSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopCodeInterpreterSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result stopRuntimeSession(array $args = [])
|
* @method \Aws\Result stopRuntimeSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopRuntimeSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopRuntimeSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateABTest(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateABTestAsync(array $args = [])
|
||||||
* @method \Aws\Result updateBrowserStream(array $args = [])
|
* @method \Aws\Result updateBrowserStream(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateBrowserStreamAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateBrowserStreamAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ use Aws\AwsClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This client is used to interact with the **Amazon Bedrock Agent Core Control Plane Fronting Layer** service.
|
* This client is used to interact with the **Amazon Bedrock Agent Core Control Plane Fronting Layer** service.
|
||||||
|
* @method \Aws\Result addDatasetExamples(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise addDatasetExamplesAsync(array $args = [])
|
||||||
* @method \Aws\Result createAgentRuntime(array $args = [])
|
* @method \Aws\Result createAgentRuntime(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createAgentRuntimeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createAgentRuntimeAsync(array $args = [])
|
||||||
* @method \Aws\Result createAgentRuntimeEndpoint(array $args = [])
|
* @method \Aws\Result createAgentRuntimeEndpoint(array $args = [])
|
||||||
|
|
@ -13,24 +15,46 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createApiKeyCredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createApiKeyCredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result createBrowser(array $args = [])
|
* @method \Aws\Result createBrowser(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createBrowserAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createBrowserAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createBrowserProfile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createBrowserProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result createCodeInterpreter(array $args = [])
|
* @method \Aws\Result createCodeInterpreter(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createCodeInterpreterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createCodeInterpreterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createConfigurationBundle(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createConfigurationBundleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDataset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDatasetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDatasetVersion(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDatasetVersionAsync(array $args = [])
|
||||||
* @method \Aws\Result createEvaluator(array $args = [])
|
* @method \Aws\Result createEvaluator(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createEvaluatorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createEvaluatorAsync(array $args = [])
|
||||||
* @method \Aws\Result createGateway(array $args = [])
|
* @method \Aws\Result createGateway(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createGatewayAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createGatewayAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createGatewayRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createGatewayRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result createGatewayTarget(array $args = [])
|
* @method \Aws\Result createGatewayTarget(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createGatewayTargetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createGatewayTargetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createHarness(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createHarnessAsync(array $args = [])
|
||||||
* @method \Aws\Result createMemory(array $args = [])
|
* @method \Aws\Result createMemory(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createMemoryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createMemoryAsync(array $args = [])
|
||||||
* @method \Aws\Result createOauth2CredentialProvider(array $args = [])
|
* @method \Aws\Result createOauth2CredentialProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createOauth2CredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createOauth2CredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result createOnlineEvaluationConfig(array $args = [])
|
* @method \Aws\Result createOnlineEvaluationConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createOnlineEvaluationConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createOnlineEvaluationConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPaymentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPaymentConnectorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPaymentCredentialProvider(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPaymentCredentialProviderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPaymentManager(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPaymentManagerAsync(array $args = [])
|
||||||
* @method \Aws\Result createPolicy(array $args = [])
|
* @method \Aws\Result createPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result createPolicyEngine(array $args = [])
|
* @method \Aws\Result createPolicyEngine(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createPolicyEngineAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createPolicyEngineAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createRegistry(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createRegistryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createRegistryRecord(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createRegistryRecordAsync(array $args = [])
|
||||||
* @method \Aws\Result createWorkloadIdentity(array $args = [])
|
* @method \Aws\Result createWorkloadIdentity(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createWorkloadIdentityAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createWorkloadIdentityAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteAgentRuntime(array $args = [])
|
* @method \Aws\Result deleteAgentRuntime(array $args = [])
|
||||||
|
|
@ -41,24 +65,46 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteApiKeyCredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteApiKeyCredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteBrowser(array $args = [])
|
* @method \Aws\Result deleteBrowser(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteBrowserAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteBrowserAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteBrowserProfile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteBrowserProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCodeInterpreter(array $args = [])
|
* @method \Aws\Result deleteCodeInterpreter(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteCodeInterpreterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteCodeInterpreterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteConfigurationBundle(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteConfigurationBundleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDataset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDatasetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDatasetExamples(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDatasetExamplesAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteEvaluator(array $args = [])
|
* @method \Aws\Result deleteEvaluator(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteEvaluatorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteEvaluatorAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteGateway(array $args = [])
|
* @method \Aws\Result deleteGateway(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteGatewayAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteGatewayAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteGatewayRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteGatewayRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteGatewayTarget(array $args = [])
|
* @method \Aws\Result deleteGatewayTarget(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteGatewayTargetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteGatewayTargetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteHarness(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteHarnessAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteMemory(array $args = [])
|
* @method \Aws\Result deleteMemory(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteMemoryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteMemoryAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteOauth2CredentialProvider(array $args = [])
|
* @method \Aws\Result deleteOauth2CredentialProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteOauth2CredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteOauth2CredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteOnlineEvaluationConfig(array $args = [])
|
* @method \Aws\Result deleteOnlineEvaluationConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteOnlineEvaluationConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteOnlineEvaluationConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePaymentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePaymentConnectorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePaymentCredentialProvider(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePaymentCredentialProviderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePaymentManager(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePaymentManagerAsync(array $args = [])
|
||||||
* @method \Aws\Result deletePolicy(array $args = [])
|
* @method \Aws\Result deletePolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result deletePolicyEngine(array $args = [])
|
* @method \Aws\Result deletePolicyEngine(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deletePolicyEngineAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deletePolicyEngineAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteRegistry(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteRegistryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteRegistryRecord(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteRegistryRecordAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteResourcePolicy(array $args = [])
|
* @method \Aws\Result deleteResourcePolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteWorkloadIdentity(array $args = [])
|
* @method \Aws\Result deleteWorkloadIdentity(array $args = [])
|
||||||
|
|
@ -71,26 +117,54 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getApiKeyCredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getApiKeyCredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result getBrowser(array $args = [])
|
* @method \Aws\Result getBrowser(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getBrowserAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getBrowserAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getBrowserProfile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getBrowserProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result getCodeInterpreter(array $args = [])
|
* @method \Aws\Result getCodeInterpreter(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getCodeInterpreterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getCodeInterpreterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getConfigurationBundle(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getConfigurationBundleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getConfigurationBundleVersion(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getConfigurationBundleVersionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDataset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDatasetAsync(array $args = [])
|
||||||
* @method \Aws\Result getEvaluator(array $args = [])
|
* @method \Aws\Result getEvaluator(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getEvaluatorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getEvaluatorAsync(array $args = [])
|
||||||
* @method \Aws\Result getGateway(array $args = [])
|
* @method \Aws\Result getGateway(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getGatewayAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getGatewayAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getGatewayRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getGatewayRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result getGatewayTarget(array $args = [])
|
* @method \Aws\Result getGatewayTarget(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getGatewayTargetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getGatewayTargetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getHarness(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getHarnessAsync(array $args = [])
|
||||||
* @method \Aws\Result getMemory(array $args = [])
|
* @method \Aws\Result getMemory(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getMemoryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMemoryAsync(array $args = [])
|
||||||
* @method \Aws\Result getOauth2CredentialProvider(array $args = [])
|
* @method \Aws\Result getOauth2CredentialProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getOauth2CredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getOauth2CredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result getOnlineEvaluationConfig(array $args = [])
|
* @method \Aws\Result getOnlineEvaluationConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getOnlineEvaluationConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getOnlineEvaluationConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentConnectorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentCredentialProvider(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentCredentialProviderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPaymentManager(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPaymentManagerAsync(array $args = [])
|
||||||
* @method \Aws\Result getPolicy(array $args = [])
|
* @method \Aws\Result getPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result getPolicyEngine(array $args = [])
|
* @method \Aws\Result getPolicyEngine(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getPolicyEngineAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getPolicyEngineAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPolicyEngineSummary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPolicyEngineSummaryAsync(array $args = [])
|
||||||
* @method \Aws\Result getPolicyGeneration(array $args = [])
|
* @method \Aws\Result getPolicyGeneration(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getPolicyGenerationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getPolicyGenerationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPolicyGenerationSummary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPolicyGenerationSummaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPolicySummary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPolicySummaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRegistry(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRegistryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRegistryRecord(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRegistryRecordAsync(array $args = [])
|
||||||
* @method \Aws\Result getResourcePolicy(array $args = [])
|
* @method \Aws\Result getResourcePolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result getTokenVault(array $args = [])
|
* @method \Aws\Result getTokenVault(array $args = [])
|
||||||
|
|
@ -105,30 +179,62 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listAgentRuntimesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listAgentRuntimesAsync(array $args = [])
|
||||||
* @method \Aws\Result listApiKeyCredentialProviders(array $args = [])
|
* @method \Aws\Result listApiKeyCredentialProviders(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listApiKeyCredentialProvidersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listApiKeyCredentialProvidersAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listBrowserProfiles(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listBrowserProfilesAsync(array $args = [])
|
||||||
* @method \Aws\Result listBrowsers(array $args = [])
|
* @method \Aws\Result listBrowsers(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listBrowsersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listBrowsersAsync(array $args = [])
|
||||||
* @method \Aws\Result listCodeInterpreters(array $args = [])
|
* @method \Aws\Result listCodeInterpreters(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listCodeInterpretersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listCodeInterpretersAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listConfigurationBundleVersions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listConfigurationBundleVersionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listConfigurationBundles(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listConfigurationBundlesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDatasetExamples(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDatasetExamplesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDatasetVersions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDatasetVersionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDatasets(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = [])
|
||||||
* @method \Aws\Result listEvaluators(array $args = [])
|
* @method \Aws\Result listEvaluators(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listEvaluatorsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listEvaluatorsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listGatewayRules(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listGatewayRulesAsync(array $args = [])
|
||||||
* @method \Aws\Result listGatewayTargets(array $args = [])
|
* @method \Aws\Result listGatewayTargets(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listGatewayTargetsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listGatewayTargetsAsync(array $args = [])
|
||||||
* @method \Aws\Result listGateways(array $args = [])
|
* @method \Aws\Result listGateways(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listGatewaysAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listGatewaysAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listHarnesses(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listHarnessesAsync(array $args = [])
|
||||||
* @method \Aws\Result listMemories(array $args = [])
|
* @method \Aws\Result listMemories(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listMemoriesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listMemoriesAsync(array $args = [])
|
||||||
* @method \Aws\Result listOauth2CredentialProviders(array $args = [])
|
* @method \Aws\Result listOauth2CredentialProviders(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listOauth2CredentialProvidersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listOauth2CredentialProvidersAsync(array $args = [])
|
||||||
* @method \Aws\Result listOnlineEvaluationConfigs(array $args = [])
|
* @method \Aws\Result listOnlineEvaluationConfigs(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listOnlineEvaluationConfigsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listOnlineEvaluationConfigsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPaymentConnectors(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPaymentConnectorsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPaymentCredentialProviders(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPaymentCredentialProvidersAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPaymentManagers(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPaymentManagersAsync(array $args = [])
|
||||||
* @method \Aws\Result listPolicies(array $args = [])
|
* @method \Aws\Result listPolicies(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPolicyEngineSummaries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPolicyEngineSummariesAsync(array $args = [])
|
||||||
* @method \Aws\Result listPolicyEngines(array $args = [])
|
* @method \Aws\Result listPolicyEngines(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPolicyEnginesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPolicyEnginesAsync(array $args = [])
|
||||||
* @method \Aws\Result listPolicyGenerationAssets(array $args = [])
|
* @method \Aws\Result listPolicyGenerationAssets(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPolicyGenerationAssetsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPolicyGenerationAssetsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPolicyGenerationSummaries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPolicyGenerationSummariesAsync(array $args = [])
|
||||||
* @method \Aws\Result listPolicyGenerations(array $args = [])
|
* @method \Aws\Result listPolicyGenerations(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPolicyGenerationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPolicyGenerationsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPolicySummaries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPolicySummariesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRegistries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRegistriesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRegistryRecords(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRegistryRecordsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result listWorkloadIdentities(array $args = [])
|
* @method \Aws\Result listWorkloadIdentities(array $args = [])
|
||||||
|
|
@ -139,6 +245,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise setTokenVaultCMKAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise setTokenVaultCMKAsync(array $args = [])
|
||||||
* @method \Aws\Result startPolicyGeneration(array $args = [])
|
* @method \Aws\Result startPolicyGeneration(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startPolicyGenerationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startPolicyGenerationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result submitRegistryRecordForApproval(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise submitRegistryRecordForApprovalAsync(array $args = [])
|
||||||
* @method \Aws\Result synchronizeGatewayTargets(array $args = [])
|
* @method \Aws\Result synchronizeGatewayTargets(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise synchronizeGatewayTargetsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise synchronizeGatewayTargetsAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
|
|
@ -151,22 +259,44 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateAgentRuntimeEndpointAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateAgentRuntimeEndpointAsync(array $args = [])
|
||||||
* @method \Aws\Result updateApiKeyCredentialProvider(array $args = [])
|
* @method \Aws\Result updateApiKeyCredentialProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateApiKeyCredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateApiKeyCredentialProviderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateConfigurationBundle(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateConfigurationBundleAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateDataset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateDatasetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateDatasetExamples(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateDatasetExamplesAsync(array $args = [])
|
||||||
* @method \Aws\Result updateEvaluator(array $args = [])
|
* @method \Aws\Result updateEvaluator(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateEvaluatorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateEvaluatorAsync(array $args = [])
|
||||||
* @method \Aws\Result updateGateway(array $args = [])
|
* @method \Aws\Result updateGateway(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateGatewayAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateGatewayAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateGatewayRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateGatewayRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result updateGatewayTarget(array $args = [])
|
* @method \Aws\Result updateGatewayTarget(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateGatewayTargetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateGatewayTargetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateHarness(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateHarnessAsync(array $args = [])
|
||||||
* @method \Aws\Result updateMemory(array $args = [])
|
* @method \Aws\Result updateMemory(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateMemoryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateMemoryAsync(array $args = [])
|
||||||
* @method \Aws\Result updateOauth2CredentialProvider(array $args = [])
|
* @method \Aws\Result updateOauth2CredentialProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateOauth2CredentialProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateOauth2CredentialProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result updateOnlineEvaluationConfig(array $args = [])
|
* @method \Aws\Result updateOnlineEvaluationConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateOnlineEvaluationConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateOnlineEvaluationConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updatePaymentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updatePaymentConnectorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updatePaymentCredentialProvider(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updatePaymentCredentialProviderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updatePaymentManager(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updatePaymentManagerAsync(array $args = [])
|
||||||
* @method \Aws\Result updatePolicy(array $args = [])
|
* @method \Aws\Result updatePolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updatePolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updatePolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result updatePolicyEngine(array $args = [])
|
* @method \Aws\Result updatePolicyEngine(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updatePolicyEngineAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updatePolicyEngineAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateRegistry(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateRegistryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateRegistryRecord(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateRegistryRecordAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateRegistryRecordStatus(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateRegistryRecordStatusAsync(array $args = [])
|
||||||
* @method \Aws\Result updateWorkloadIdentity(array $args = [])
|
* @method \Aws\Result updateWorkloadIdentity(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateWorkloadIdentityAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateWorkloadIdentityAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -11,22 +11,40 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createBlueprintAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createBlueprintAsync(array $args = [])
|
||||||
* @method \Aws\Result createBlueprintVersion(array $args = [])
|
* @method \Aws\Result createBlueprintVersion(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createBlueprintVersionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createBlueprintVersionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDataAutomationLibrary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDataAutomationLibraryAsync(array $args = [])
|
||||||
* @method \Aws\Result createDataAutomationProject(array $args = [])
|
* @method \Aws\Result createDataAutomationProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createDataAutomationProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createDataAutomationProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteBlueprint(array $args = [])
|
* @method \Aws\Result deleteBlueprint(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteBlueprintAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteBlueprintAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDataAutomationLibrary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDataAutomationLibraryAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteDataAutomationProject(array $args = [])
|
* @method \Aws\Result deleteDataAutomationProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteDataAutomationProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteDataAutomationProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result getBlueprint(array $args = [])
|
* @method \Aws\Result getBlueprint(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getBlueprintAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getBlueprintAsync(array $args = [])
|
||||||
* @method \Aws\Result getBlueprintOptimizationStatus(array $args = [])
|
* @method \Aws\Result getBlueprintOptimizationStatus(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getBlueprintOptimizationStatusAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getBlueprintOptimizationStatusAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDataAutomationLibrary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDataAutomationLibraryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDataAutomationLibraryEntity(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDataAutomationLibraryEntityAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDataAutomationLibraryIngestionJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDataAutomationLibraryIngestionJobAsync(array $args = [])
|
||||||
* @method \Aws\Result getDataAutomationProject(array $args = [])
|
* @method \Aws\Result getDataAutomationProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getDataAutomationProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getDataAutomationProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result invokeBlueprintOptimizationAsync(array $args = [])
|
* @method \Aws\Result invokeBlueprintOptimizationAsync(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise invokeBlueprintOptimizationAsyncAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise invokeBlueprintOptimizationAsyncAsync(array $args = [])
|
||||||
|
* @method \Aws\Result invokeDataAutomationLibraryIngestionJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise invokeDataAutomationLibraryIngestionJobAsync(array $args = [])
|
||||||
* @method \Aws\Result listBlueprints(array $args = [])
|
* @method \Aws\Result listBlueprints(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listBlueprintsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listBlueprintsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDataAutomationLibraries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDataAutomationLibrariesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDataAutomationLibraryEntities(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDataAutomationLibraryEntitiesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDataAutomationLibraryIngestionJobs(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDataAutomationLibraryIngestionJobsAsync(array $args = [])
|
||||||
* @method \Aws\Result listDataAutomationProjects(array $args = [])
|
* @method \Aws\Result listDataAutomationProjects(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listDataAutomationProjectsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listDataAutomationProjectsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
|
|
@ -37,6 +55,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateBlueprint(array $args = [])
|
* @method \Aws\Result updateBlueprint(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateBlueprintAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateBlueprintAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateDataAutomationLibrary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateDataAutomationLibraryAsync(array $args = [])
|
||||||
* @method \Aws\Result updateDataAutomationProject(array $args = [])
|
* @method \Aws\Result updateDataAutomationProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateDataAutomationProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateDataAutomationProjectAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
664
vendor/aws/aws-sdk-php/src/Cbor/CborDecoder.php
vendored
Normal file
664
vendor/aws/aws-sdk-php/src/Cbor/CborDecoder.php
vendored
Normal file
|
|
@ -0,0 +1,664 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Cbor;
|
||||||
|
|
||||||
|
use Aws\Cbor\Exception\CborException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes Concise Binary Object Representation encoded strings
|
||||||
|
* into PHP values according to RFC 8949
|
||||||
|
*
|
||||||
|
* https://www.rfc-editor.org/rfc/rfc8949.html
|
||||||
|
*
|
||||||
|
* Supports Major types 0-7 including:
|
||||||
|
* - Type 0: Unsigned integers
|
||||||
|
* - Type 1: Negative integers
|
||||||
|
* - Type 2: Byte strings
|
||||||
|
* - Type 3: Text strings (UTF-8)
|
||||||
|
* - Type 4: Arrays
|
||||||
|
* - Type 5: Maps
|
||||||
|
* - Type 6: Tagged values (timestamps)
|
||||||
|
* - Type 7: Simple values (null, bool, float)
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class CborDecoder
|
||||||
|
{
|
||||||
|
private int $offset;
|
||||||
|
private int $length;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode CBOR binary data to PHP value
|
||||||
|
*
|
||||||
|
* @param string $data The CBOR-encoded binary data to decode
|
||||||
|
*
|
||||||
|
* @return mixed The decoded PHP value (can be any type: int, string, array, bool, null, float)
|
||||||
|
* @throws CborException If data is empty or malformed CBOR
|
||||||
|
*/
|
||||||
|
public function decode(string $data): mixed
|
||||||
|
{
|
||||||
|
if ($data === '') {
|
||||||
|
throw new CborException("No data to decode");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = 0;
|
||||||
|
$this->length = strlen($data);
|
||||||
|
|
||||||
|
return $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode multiple CBOR values from sequential binary data
|
||||||
|
*
|
||||||
|
* @param string $data The CBOR-encoded binary data containing multiple values
|
||||||
|
*
|
||||||
|
* @return array Array of decoded PHP values in the order they appear in the data
|
||||||
|
* @throws CborException If data is malformed CBOR
|
||||||
|
*/
|
||||||
|
public function decodeAll(string $data): array
|
||||||
|
{
|
||||||
|
$this->length = strlen($data);
|
||||||
|
$this->offset = 0;
|
||||||
|
$values = [];
|
||||||
|
|
||||||
|
while ($this->offset < $this->length) {
|
||||||
|
$values[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a single CBOR value at the current offset
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return mixed The decoded value
|
||||||
|
* @throws CborException If unexpected end of data or invalid CBOR format
|
||||||
|
*/
|
||||||
|
private function decodeValue(string &$data): mixed
|
||||||
|
{
|
||||||
|
$offset = $this->offset;
|
||||||
|
$length = $this->length;
|
||||||
|
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$byte = ord($data[$offset++]);
|
||||||
|
$majorType = $byte >> 5;
|
||||||
|
$info = $byte & 0x1F;
|
||||||
|
|
||||||
|
switch ($majorType) {
|
||||||
|
case 0: // Unsigned integer
|
||||||
|
if ($info < 24) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 1;
|
||||||
|
|
||||||
|
return ord($data[$offset]);
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
|
||||||
|
return (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return unpack('N', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
|
||||||
|
return unpack('J', $data, $offset)[1];
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for integer: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1: // Negative integer
|
||||||
|
if ($info < 24) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return -1 - $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 1;
|
||||||
|
|
||||||
|
return -1 - ord($data[$offset]);
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
|
||||||
|
return -1 - ((ord($data[$offset]) << 8) | ord($data[$offset + 1]));
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return -1 - unpack('N', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
$unsigned = unpack('J', $data, $offset)[1];
|
||||||
|
|
||||||
|
return ($unsigned === 9223372036854775807) ? PHP_INT_MIN : -1 - $unsigned;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for integer: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
case 2: // Byte string
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteString($data, 0x40);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for byte string: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
|
||||||
|
return substr($data, $offset, $len);
|
||||||
|
|
||||||
|
case 3: // Text string
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteString($data, 0x60);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for text string: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
|
||||||
|
return substr($data, $offset, $len);
|
||||||
|
|
||||||
|
case 4: // Array
|
||||||
|
if ($info < 24) {
|
||||||
|
$count = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteArray($data);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for array: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
$arr = [];
|
||||||
|
|
||||||
|
for ($i = 0; $i < $count; $i++) {
|
||||||
|
$arr[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $arr;
|
||||||
|
|
||||||
|
case 5: // Map
|
||||||
|
if ($info < 24) {
|
||||||
|
$count = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeIndefiniteMap($data);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid additional info for map: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
$map = [];
|
||||||
|
|
||||||
|
for ($i = 0; $i < $count; $i++) {
|
||||||
|
$key = $this->decodeValue($data);
|
||||||
|
$map[$key] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $map;
|
||||||
|
|
||||||
|
case 6: // Tag
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
$offset++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return $this->decodeValue($data);
|
||||||
|
|
||||||
|
case 7: // Simple/float
|
||||||
|
switch ($info) {
|
||||||
|
case 20:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
case 21:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 22:
|
||||||
|
case 23:
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
case 25: // Half-precision float
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 2;
|
||||||
|
$half = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$sign = ($half >> 15) & 0x01;
|
||||||
|
$exp = ($half >> 10) & 0x1F;
|
||||||
|
$mant = $half & 0x3FF;
|
||||||
|
|
||||||
|
if ($exp === 0) {
|
||||||
|
return $mant === 0
|
||||||
|
? ($sign ? -0.0 : 0.0)
|
||||||
|
: ($sign ? -1 : 1) * pow(2, -14) * ($mant / 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exp === 31) {
|
||||||
|
return $mant === 0 ? ($sign ? -INF : INF) : NAN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (float) (($sign ? -1 : 1) * pow(2, $exp - 15) * (1 + $mant / 1024));
|
||||||
|
|
||||||
|
case 26: // Single-precision float
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 4;
|
||||||
|
|
||||||
|
return unpack('G', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 27: // Double-precision float
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->offset = $offset + 8;
|
||||||
|
|
||||||
|
return unpack('E', $data, $offset)[1];
|
||||||
|
|
||||||
|
case 31:
|
||||||
|
throw new CborException("Unexpected break");
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Unknown simple value: $info");
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Unknown major type: $majorType");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length string (byte or text)
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
* @param int $expectedMajor Expected major type (0x40 for byte string, 0x60 for text string)
|
||||||
|
*
|
||||||
|
* @return string The concatenated string from all chunks
|
||||||
|
* @throws CborException If invalid chunk format or unexpected end of data
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteString(string &$data, int $expectedMajor): string
|
||||||
|
{
|
||||||
|
$chunks = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
$offset = $this->offset;
|
||||||
|
$length = $this->length;
|
||||||
|
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$byte = ord($data[$offset++]);
|
||||||
|
|
||||||
|
if ($byte === 0xFF) {
|
||||||
|
$this->offset = $offset;
|
||||||
|
|
||||||
|
return implode('', $chunks);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($byte & 0xE0) !== $expectedMajor) {
|
||||||
|
throw new CborException("Invalid chunk in indefinite string");
|
||||||
|
}
|
||||||
|
|
||||||
|
$info = $byte & 0x1F;
|
||||||
|
|
||||||
|
if ($info === 31) {
|
||||||
|
throw new CborException("Nested indefinite string");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($info < 24) {
|
||||||
|
$len = $info;
|
||||||
|
} else {
|
||||||
|
switch ($info) {
|
||||||
|
case 24:
|
||||||
|
if ($offset >= $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = ord($data[$offset++]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 25:
|
||||||
|
if ($offset + 2 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = (ord($data[$offset]) << 8) | ord($data[$offset + 1]);
|
||||||
|
$offset += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
if ($offset + 4 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('N', $data, $offset)[1];
|
||||||
|
$offset += 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 27:
|
||||||
|
if ($offset + 8 > $length) {
|
||||||
|
throw new CborException("Not enough data");
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = unpack('J', $data, $offset)[1];
|
||||||
|
$offset += 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Invalid chunk length info: $info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($offset + $len > $length) {
|
||||||
|
throw new CborException("Not enough data for chunk");
|
||||||
|
}
|
||||||
|
|
||||||
|
$chunks[] = substr($data, $offset, $len);
|
||||||
|
$this->offset = $offset + $len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length array
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return array The decoded array elements
|
||||||
|
* @throws CborException If unexpected end of data
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteArray(string &$data): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if ($this->offset >= $this->length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ord($data[$this->offset]) === 0xFF) {
|
||||||
|
$this->offset++;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result[] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode indefinite-length map
|
||||||
|
*
|
||||||
|
* @param string $data Reference to the CBOR data being decoded
|
||||||
|
*
|
||||||
|
* @return array The decoded map as associative array
|
||||||
|
* @throws CborException If unexpected end of data or odd number of items
|
||||||
|
*/
|
||||||
|
private function decodeIndefiniteMap(string &$data): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if ($this->offset >= $this->length) {
|
||||||
|
throw new CborException("Unexpected end of data");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ord($data[$this->offset]) === 0xFF) {
|
||||||
|
$this->offset++;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
$key = $this->decodeValue($data);
|
||||||
|
$result[$key] = $this->decodeValue($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
357
vendor/aws/aws-sdk-php/src/Cbor/CborEncoder.php
vendored
Normal file
357
vendor/aws/aws-sdk-php/src/Cbor/CborEncoder.php
vendored
Normal file
|
|
@ -0,0 +1,357 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Cbor;
|
||||||
|
|
||||||
|
use Aws\Cbor\Exception\CborException;
|
||||||
|
use DateTimeInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes PHP values to Concise Binary Object Representation according to RFC 8949
|
||||||
|
* https://www.rfc-editor.org/rfc/rfc8949.html
|
||||||
|
*
|
||||||
|
* Supports Major types 0-7 including:
|
||||||
|
* - Type 0: Unsigned integers
|
||||||
|
* - Type 1: Negative integers
|
||||||
|
* - Type 2: Byte strings (via ['__cbor_bytes' => $data] wrappers)
|
||||||
|
* - Type 3: Text strings (UTF-8)
|
||||||
|
* - Type 4: Arrays
|
||||||
|
* - Type 5: Maps
|
||||||
|
* - Type 6: Tagged values (timestamps)
|
||||||
|
* - Type 7: Simple values (null, bool, float)
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class CborEncoder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Pre-encoded integers 0-23 (single byte) and common larger values
|
||||||
|
* CBOR major type 0 (unsigned integer)
|
||||||
|
*/
|
||||||
|
private const INT_CACHE = [
|
||||||
|
0 => "\x00", 1 => "\x01", 2 => "\x02", 3 => "\x03",
|
||||||
|
4 => "\x04", 5 => "\x05", 6 => "\x06", 7 => "\x07",
|
||||||
|
8 => "\x08", 9 => "\x09", 10 => "\x0A", 11 => "\x0B",
|
||||||
|
12 => "\x0C", 13 => "\x0D", 14 => "\x0E", 15 => "\x0F",
|
||||||
|
16 => "\x10", 17 => "\x11", 18 => "\x12", 19 => "\x13",
|
||||||
|
20 => "\x14", 21 => "\x15", 22 => "\x16", 23 => "\x17",
|
||||||
|
24 => "\x18\x18", 25 => "\x18\x19", 26 => "\x18\x1A",
|
||||||
|
32 => "\x18\x20", 50 => "\x18\x32", 64 => "\x18\x40",
|
||||||
|
100 => "\x18\x64", 128 => "\x18\x80", 200 => "\x18\xC8",
|
||||||
|
255 => "\x18\xFF", 256 => "\x19\x01\x00", 500 => "\x19\x01\xF4",
|
||||||
|
1000 => "\x19\x03\xE8", 1023 => "\x19\x03\xFF",
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre-encoded negative integers -1 to -24 and common larger values
|
||||||
|
* CBOR major type 1 (negative integer)
|
||||||
|
*/
|
||||||
|
private const NEG_CACHE = [
|
||||||
|
-1 => "\x20", -2 => "\x21", -3 => "\x22", -4 => "\x23",
|
||||||
|
-5 => "\x24", -10 => "\x29", -20 => "\x33", -24 => "\x37",
|
||||||
|
-25 => "\x38\x18", -50 => "\x38\x31", -100 => "\x38\x63",
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a PHP value to CBOR binary string
|
||||||
|
*
|
||||||
|
* @param mixed $value The value to encode
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encode(mixed $value): string
|
||||||
|
{
|
||||||
|
return $this->encodeValue($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recursively encode a value to CBOR
|
||||||
|
*
|
||||||
|
* @param mixed $value Value to encode
|
||||||
|
* @return string Encoded CBOR bytes
|
||||||
|
*/
|
||||||
|
private function encodeValue(mixed $value): string
|
||||||
|
{
|
||||||
|
switch (gettype($value)) {
|
||||||
|
case 'string':
|
||||||
|
$len = strlen($value);
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x60 | $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x78" . chr($len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeTextString($value);
|
||||||
|
|
||||||
|
case 'array':
|
||||||
|
// Encode a byte string (major type 2)
|
||||||
|
if (isset($value['__cbor_bytes'])) {
|
||||||
|
$bytes = $value['__cbor_bytes'];
|
||||||
|
$len = strlen($bytes);
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x40 | $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x58" . chr($len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x10000) {
|
||||||
|
return "\x59" . pack('n', $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x5A" . pack('N', $len) . $bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_is_list($value)) {
|
||||||
|
return $this->encodeArray($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeMap($value);
|
||||||
|
|
||||||
|
case 'integer':
|
||||||
|
if (isset(self::INT_CACHE[$value])) {
|
||||||
|
return self::INT_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset(self::NEG_CACHE[$value])) {
|
||||||
|
return self::NEG_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fast path for positive integers
|
||||||
|
// Major type 0: unsigned integer
|
||||||
|
if ($value >= 0) {
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x18" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x19" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x1A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x1B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->encodeInteger($value);
|
||||||
|
|
||||||
|
case 'double':
|
||||||
|
// Encode a float (major type 7, float 64)
|
||||||
|
return "\xFB" . pack('E', $value);
|
||||||
|
|
||||||
|
case 'boolean':
|
||||||
|
// Encode a boolean (major type 7, simple)
|
||||||
|
return $value ? "\xF5" : "\xF4";
|
||||||
|
|
||||||
|
case 'NULL':
|
||||||
|
// Encode null (major type 7, simple)
|
||||||
|
return "\xF6";
|
||||||
|
|
||||||
|
case 'object':
|
||||||
|
// Encode timestamp (major type 6, tag 1)
|
||||||
|
if ($value instanceof DateTimeInterface) {
|
||||||
|
$timestamp = $value->getTimestamp();
|
||||||
|
$micro = (int) $value->format('u');
|
||||||
|
if ($micro === 0) {
|
||||||
|
if ($timestamp >= 0 && $timestamp < 0x100000000) {
|
||||||
|
return "\xC1\x1A" . pack('N', $timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\xC1" . $this->encodeInteger($timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\xC1\xFB" . pack('E', $timestamp + $micro / 1e6);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new CborException("Cannot encode object of type: " . get_class($value));
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new CborException("Cannot encode value of type: " . gettype($value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode an integer (major type 0 or 1)
|
||||||
|
*
|
||||||
|
* @param int $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeInteger(int $value): string
|
||||||
|
{
|
||||||
|
if (isset(self::INT_CACHE[$value])) {
|
||||||
|
return self::INT_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset(self::NEG_CACHE[$value])) {
|
||||||
|
return self::NEG_CACHE[$value];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value >= 0) {
|
||||||
|
// Major type 0: unsigned integer
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x18" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x19" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x1A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x1B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Major type 1: negative integer (-1 - n)
|
||||||
|
$value = -1 - $value;
|
||||||
|
if ($value < 24) {
|
||||||
|
return chr(0x20 | $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100) {
|
||||||
|
return "\x38" . chr($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x10000) {
|
||||||
|
return "\x39" . pack('n', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value < 0x100000000) {
|
||||||
|
return "\x3A" . pack('N', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x3B" . pack('J', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a text string (major type 3)
|
||||||
|
*
|
||||||
|
* @param string $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeTextString(string $value): string
|
||||||
|
{
|
||||||
|
$len = strlen($value);
|
||||||
|
|
||||||
|
if ($len < 24) {
|
||||||
|
return chr(0x60 | $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100) {
|
||||||
|
return "\x78" . chr($len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x10000) {
|
||||||
|
return "\x79" . pack('n', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($len < 0x100000000) {
|
||||||
|
return "\x7A" . pack('N', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "\x7B" . pack('J', $len) . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode an array (major type 4)
|
||||||
|
*
|
||||||
|
* @param array $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeArray(array $value): string
|
||||||
|
{
|
||||||
|
$count = count($value);
|
||||||
|
|
||||||
|
if ($count < 24) {
|
||||||
|
$result = chr(0x80 | $count);
|
||||||
|
} elseif ($count < 0x100) {
|
||||||
|
$result = "\x98" . chr($count);
|
||||||
|
} elseif ($count < 0x10000) {
|
||||||
|
$result = "\x99" . pack('n', $count);
|
||||||
|
} elseif ($count < 0x100000000) {
|
||||||
|
$result = "\x9A" . pack('N', $count);
|
||||||
|
} else {
|
||||||
|
$result = "\x9B" . pack('J', $count);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($value as $item) {
|
||||||
|
$result .= $this->encodeValue($item);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode a map (major type 5)
|
||||||
|
*
|
||||||
|
* @param array $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function encodeMap(array $value): string
|
||||||
|
{
|
||||||
|
$count = count($value);
|
||||||
|
|
||||||
|
if ($count < 24) {
|
||||||
|
$result = chr(0xA0 | $count);
|
||||||
|
} elseif ($count < 0x100) {
|
||||||
|
$result = "\xB8" . chr($count);
|
||||||
|
} elseif ($count < 0x10000) {
|
||||||
|
$result = "\xB9" . pack('n', $count);
|
||||||
|
} elseif ($count < 0x100000000) {
|
||||||
|
$result = "\xBA" . pack('N', $count);
|
||||||
|
} else {
|
||||||
|
$result = "\xBB" . pack('J', $count);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($value as $k => $v) {
|
||||||
|
if (is_int($k)) {
|
||||||
|
$result .= $this->encodeInteger($k);
|
||||||
|
} else {
|
||||||
|
$len = strlen($k);
|
||||||
|
if ($len < 24) {
|
||||||
|
$result .= chr(0x60 | $len) . $k;
|
||||||
|
} elseif ($len < 0x100) {
|
||||||
|
$result .= "\x78" . chr($len) . $k;
|
||||||
|
} else {
|
||||||
|
$result .= "\x79" . pack('n', $len) . $k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result .= $this->encodeValue($v);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an empty map (major type 5 with 0 elements)
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encodeEmptyMap(): string
|
||||||
|
{
|
||||||
|
return "\xA0";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an empty indefinite map (major type 5 indefinite length)
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function encodeEmptyIndefiniteMap(): string
|
||||||
|
{
|
||||||
|
return "\xBF\xFF";
|
||||||
|
}
|
||||||
|
}
|
||||||
6
vendor/aws/aws-sdk-php/src/Cbor/Exception/CborException.php
vendored
Normal file
6
vendor/aws/aws-sdk-php/src/Cbor/Exception/CborException.php
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Cbor\Exception;
|
||||||
|
|
||||||
|
use RuntimeException;
|
||||||
|
|
||||||
|
class CborException extends RuntimeException {}
|
||||||
63
vendor/aws/aws-sdk-php/src/ClientResolver.php
vendored
63
vendor/aws/aws-sdk-php/src/ClientResolver.php
vendored
|
|
@ -27,10 +27,13 @@ use Aws\Endpoint\UseFipsEndpoint\ConfigurationProvider as UseFipsConfigProvider;
|
||||||
use Aws\EndpointDiscovery\ConfigurationInterface;
|
use Aws\EndpointDiscovery\ConfigurationInterface;
|
||||||
use Aws\EndpointDiscovery\ConfigurationProvider;
|
use Aws\EndpointDiscovery\ConfigurationProvider;
|
||||||
use Aws\EndpointV2\EndpointDefinitionProvider;
|
use Aws\EndpointV2\EndpointDefinitionProvider;
|
||||||
|
use Aws\EndpointV2\EndpointProviderV2;
|
||||||
use Aws\Exception\AwsException;
|
use Aws\Exception\AwsException;
|
||||||
use Aws\Exception\InvalidRegionException;
|
use Aws\Exception\InvalidRegionException;
|
||||||
use Aws\Retry\ConfigurationInterface as RetryConfigInterface;
|
use Aws\Retry\ConfigurationInterface as RetryConfigInterface;
|
||||||
use Aws\Retry\ConfigurationProvider as RetryConfigProvider;
|
use Aws\Retry\ConfigurationProvider as RetryConfigProvider;
|
||||||
|
use Aws\Retry\V3\OptIn as NewRetriesOptIn;
|
||||||
|
use Aws\Retry\V3\RetryMiddleware as RetryV3Middleware;
|
||||||
use Aws\Signature\SignatureProvider;
|
use Aws\Signature\SignatureProvider;
|
||||||
use Aws\Token\Token;
|
use Aws\Token\Token;
|
||||||
use Aws\Token\TokenInterface;
|
use Aws\Token\TokenInterface;
|
||||||
|
|
@ -547,7 +550,10 @@ class ClientResolver
|
||||||
public static function _apply_retries($value, array &$args, HandlerList $list)
|
public static function _apply_retries($value, array &$args, HandlerList $list)
|
||||||
{
|
{
|
||||||
// A value of 0 for the config option disables retries
|
// A value of 0 for the config option disables retries
|
||||||
if ($value) {
|
if (!$value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$config = RetryConfigProvider::unwrap($value);
|
$config = RetryConfigProvider::unwrap($value);
|
||||||
|
|
||||||
if ($config->getMode() === 'legacy') {
|
if ($config->getMode() === 'legacy') {
|
||||||
|
|
@ -559,7 +565,20 @@ class ClientResolver
|
||||||
Middleware::retry($decider, null, $args['stats']['retries']),
|
Middleware::retry($decider, null, $args['stats']['retries']),
|
||||||
'retry'
|
'retry'
|
||||||
);
|
);
|
||||||
} else {
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NewRetriesOptIn::isEnabled()) {
|
||||||
|
$list->appendSign(
|
||||||
|
RetryV3Middleware::wrap($config, [
|
||||||
|
'collect_stats' => $args['stats']['retries'],
|
||||||
|
'service' => $args['service'],
|
||||||
|
]),
|
||||||
|
'retry'
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$list->appendSign(
|
$list->appendSign(
|
||||||
RetryMiddlewareV2::wrap(
|
RetryMiddlewareV2::wrap(
|
||||||
$config,
|
$config,
|
||||||
|
|
@ -568,8 +587,6 @@ class ClientResolver
|
||||||
'retry'
|
'retry'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function _apply_defaults($value, array &$args, HandlerList $list)
|
public static function _apply_defaults($value, array &$args, HandlerList $list)
|
||||||
{
|
{
|
||||||
|
|
@ -791,7 +808,7 @@ class ClientResolver
|
||||||
public static function _apply_endpoint_provider($value, array &$args)
|
public static function _apply_endpoint_provider($value, array &$args)
|
||||||
{
|
{
|
||||||
if (!isset($args['endpoint'])) {
|
if (!isset($args['endpoint'])) {
|
||||||
if ($value instanceof \Aws\EndpointV2\EndpointProviderV2) {
|
if ($value instanceof EndpointProviderV2) {
|
||||||
$options = self::getEndpointProviderOptions($args);
|
$options = self::getEndpointProviderOptions($args);
|
||||||
$value = PartitionEndpointProvider::defaultProvider($options)
|
$value = PartitionEndpointProvider::defaultProvider($options)
|
||||||
->getPartition($args['region'], $args['service']);
|
->getPartition($args['region'], $args['service']);
|
||||||
|
|
@ -1112,14 +1129,13 @@ class ClientResolver
|
||||||
if (self::isValidService($serviceName)
|
if (self::isValidService($serviceName)
|
||||||
&& self::isValidApiVersion($serviceName, $apiVersion)
|
&& self::isValidApiVersion($serviceName, $apiVersion)
|
||||||
) {
|
) {
|
||||||
$ruleset = EndpointDefinitionProvider::getEndpointRuleset(
|
$partitions = EndpointDefinitionProvider::getPartitions();
|
||||||
|
$parsed = EndpointDefinitionProvider::getParsedRuleset(
|
||||||
$service->getServiceName(),
|
$service->getServiceName(),
|
||||||
$service->getApiVersion()
|
$service->getApiVersion(),
|
||||||
);
|
$partitions
|
||||||
return new \Aws\EndpointV2\EndpointProviderV2(
|
|
||||||
$ruleset,
|
|
||||||
EndpointDefinitionProvider::getPartitions()
|
|
||||||
);
|
);
|
||||||
|
return new EndpointProviderV2($parsed, $partitions);
|
||||||
}
|
}
|
||||||
$options = self::getEndpointProviderOptions($args);
|
$options = self::getEndpointProviderOptions($args);
|
||||||
return PartitionEndpointProvider::defaultProvider($options)
|
return PartitionEndpointProvider::defaultProvider($options)
|
||||||
|
|
@ -1167,7 +1183,7 @@ class ClientResolver
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign user's preferred auth scheme list
|
// Assign user's preferred auth scheme list
|
||||||
$args['auth_scheme_preference'] = $value;
|
$args['config']['auth_scheme_preference'] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function _default_signature_version(array &$args)
|
public static function _default_signature_version(array &$args)
|
||||||
|
|
@ -1247,12 +1263,6 @@ class ClientResolver
|
||||||
$args['suppress_php_deprecation_warning'] =
|
$args['suppress_php_deprecation_warning'] =
|
||||||
\Aws\boolean_value($_ENV["AWS_SUPPRESS_PHP_DEPRECATION_WARNING"]);
|
\Aws\boolean_value($_ENV["AWS_SUPPRESS_PHP_DEPRECATION_WARNING"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($args['suppress_php_deprecation_warning'] === false
|
|
||||||
&& PHP_VERSION_ID < 80100
|
|
||||||
) {
|
|
||||||
self::emitDeprecationWarning();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function _default_endpoint(array &$args)
|
public static function _default_endpoint(array &$args)
|
||||||
|
|
@ -1440,21 +1450,4 @@ EOT;
|
||||||
__DIR__ . "/data/{$service}/$apiVersion"
|
__DIR__ . "/data/{$service}/$apiVersion"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function emitDeprecationWarning()
|
|
||||||
{
|
|
||||||
$phpVersionString = phpversion();
|
|
||||||
trigger_error(
|
|
||||||
"This installation of the SDK is using PHP version"
|
|
||||||
. " {$phpVersionString}, which will be deprecated on January"
|
|
||||||
. " 13th, 2025.\nPlease upgrade your PHP version to a minimum of"
|
|
||||||
. " 8.1.x to continue receiving updates for the AWS"
|
|
||||||
. " SDK for PHP.\nTo disable this warning, set"
|
|
||||||
. " suppress_php_deprecation_warning to true on the client constructor"
|
|
||||||
. " or set the environment variable AWS_SUPPRESS_PHP_DEPRECATION_WARNING"
|
|
||||||
. " to true.\nMore information can be found at: "
|
|
||||||
. "https://aws.amazon.com/blogs/developer/announcing-the-end-of-support-for-php-runtimes-8-0-x-and-below-in-the-aws-sdk-for-php/\n",
|
|
||||||
E_USER_DEPRECATED
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
33
vendor/aws/aws-sdk-php/src/CloudFront/Signer.php
vendored
33
vendor/aws/aws-sdk-php/src/CloudFront/Signer.php
vendored
|
|
@ -81,8 +81,10 @@ class Signer
|
||||||
$signatureHash = [];
|
$signatureHash = [];
|
||||||
if ($policy) {
|
if ($policy) {
|
||||||
$policy = preg_replace('/\s/s', '', $policy);
|
$policy = preg_replace('/\s/s', '', $policy);
|
||||||
|
self::validatePolicy($policy);
|
||||||
$signatureHash['Policy'] = $this->encode($policy);
|
$signatureHash['Policy'] = $this->encode($policy);
|
||||||
} elseif ($resource && $expires) {
|
} elseif ($resource && $expires) {
|
||||||
|
self::validateResourceUrl($resource);
|
||||||
$expires = (int) $expires; // Handle epoch passed as string
|
$expires = (int) $expires; // Handle epoch passed as string
|
||||||
$policy = $this->createCannedPolicy($resource, $expires);
|
$policy = $this->createCannedPolicy($resource, $expires);
|
||||||
$signatureHash['Expires'] = $expires;
|
$signatureHash['Expires'] = $expires;
|
||||||
|
|
@ -136,4 +138,35 @@ class Signer
|
||||||
{
|
{
|
||||||
return strtr(base64_encode($policy), '+=/', '-_~');
|
return strtr(base64_encode($policy), '+=/', '-_~');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates a customer provided json document.
|
||||||
|
*
|
||||||
|
* @param string $jsonPolicy
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function validatePolicy(string $jsonPolicy): void
|
||||||
|
{
|
||||||
|
$policy = json_decode($jsonPolicy, true);
|
||||||
|
foreach ($policy['Statement'] ?? [] as $statement) {
|
||||||
|
if (isset($statement['Resource'])) {
|
||||||
|
self::validateResourceUrl($statement['Resource']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $url
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function validateResourceUrl(string $url): void
|
||||||
|
{
|
||||||
|
if (preg_match('/["\\\\\x00-\x1F]/', $url)) {
|
||||||
|
throw new \InvalidArgumentException(
|
||||||
|
'URL contains invalid characters: ", \\, or control characters'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ class UrlSigner
|
||||||
$parts = parse_url($url);
|
$parts = parse_url($url);
|
||||||
$pathParts = pathinfo($parts['path']);
|
$pathParts = pathinfo($parts['path']);
|
||||||
$resource = ltrim(
|
$resource = ltrim(
|
||||||
$pathParts['dirname'] . '/' . $pathParts['basename'],
|
str_replace('\\', '/', $pathParts['dirname']) . '/' . $pathParts['basename'],
|
||||||
'/'
|
'/'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class CloudSearchDomainClient extends AwsClient
|
||||||
$query = $r->getUri()->getQuery();
|
$query = $r->getUri()->getQuery();
|
||||||
$req = $r->withMethod('POST')
|
$req = $r->withMethod('POST')
|
||||||
->withBody(Psr7\Utils::streamFor($query))
|
->withBody(Psr7\Utils::streamFor($query))
|
||||||
->withHeader('Content-Length', strlen($query))
|
->withHeader('Content-Length', (string) strlen($query))
|
||||||
->withHeader('Content-Type', 'application/x-www-form-urlencoded')
|
->withHeader('Content-Type', 'application/x-www-form-urlencoded')
|
||||||
->withUri($r->getUri()->withQuery(''));
|
->withUri($r->getUri()->withQuery(''));
|
||||||
return $req;
|
return $req;
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ use Aws\AwsClient;
|
||||||
/**
|
/**
|
||||||
* This client is used to interact with the **Amazon CloudWatch** service.
|
* This client is used to interact with the **Amazon CloudWatch** service.
|
||||||
*
|
*
|
||||||
|
* @method \Aws\Result deleteAlarmMuteRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteAlarmMuteRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteAlarms(array $args = [])
|
* @method \Aws\Result deleteAlarms(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteAlarmsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteAlarmsAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteAnomalyDetector(array $args = [])
|
* @method \Aws\Result deleteAnomalyDetector(array $args = [])
|
||||||
|
|
@ -36,6 +38,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise enableAlarmActionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise enableAlarmActionsAsync(array $args = [])
|
||||||
* @method \Aws\Result enableInsightRules(array $args = [])
|
* @method \Aws\Result enableInsightRules(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise enableInsightRulesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise enableInsightRulesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAlarmMuteRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAlarmMuteRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result getDashboard(array $args = [])
|
* @method \Aws\Result getDashboard(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
|
||||||
* @method \Aws\Result getInsightRuleReport(array $args = [])
|
* @method \Aws\Result getInsightRuleReport(array $args = [])
|
||||||
|
|
@ -48,6 +52,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getMetricStreamAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMetricStreamAsync(array $args = [])
|
||||||
* @method \Aws\Result getMetricWidgetImage(array $args = [])
|
* @method \Aws\Result getMetricWidgetImage(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getMetricWidgetImageAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMetricWidgetImageAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getOTelEnrichment(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getOTelEnrichmentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAlarmMuteRules(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAlarmMuteRulesAsync(array $args = [])
|
||||||
* @method \Aws\Result listDashboards(array $args = [])
|
* @method \Aws\Result listDashboards(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
|
||||||
* @method \Aws\Result listManagedInsightRules(array $args = [])
|
* @method \Aws\Result listManagedInsightRules(array $args = [])
|
||||||
|
|
@ -58,6 +66,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listMetricsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listMetricsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result putAlarmMuteRule(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise putAlarmMuteRuleAsync(array $args = [])
|
||||||
* @method \Aws\Result putAnomalyDetector(array $args = [])
|
* @method \Aws\Result putAnomalyDetector(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putAnomalyDetectorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putAnomalyDetectorAsync(array $args = [])
|
||||||
* @method \Aws\Result putCompositeAlarm(array $args = [])
|
* @method \Aws\Result putCompositeAlarm(array $args = [])
|
||||||
|
|
@ -78,8 +88,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise setAlarmStateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise setAlarmStateAsync(array $args = [])
|
||||||
* @method \Aws\Result startMetricStreams(array $args = [])
|
* @method \Aws\Result startMetricStreams(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startMetricStreamsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startMetricStreamsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startOTelEnrichment(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startOTelEnrichmentAsync(array $args = [])
|
||||||
* @method \Aws\Result stopMetricStreams(array $args = [])
|
* @method \Aws\Result stopMetricStreams(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopMetricStreamsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopMetricStreamsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result stopOTelEnrichment(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise stopOTelEnrichmentAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
<?php
|
|
||||||
namespace Aws\CloudWatchEvidently;
|
|
||||||
|
|
||||||
use Aws\AwsClient;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This client is used to interact with the **Amazon CloudWatch Evidently** service.
|
|
||||||
* @method \Aws\Result batchEvaluateFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise batchEvaluateFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result createExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise createExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result createFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise createFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result createLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise createLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result createProject(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = [])
|
|
||||||
* @method \Aws\Result createSegment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise createSegmentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result deleteExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result deleteFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result deleteLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result deleteProject(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = [])
|
|
||||||
* @method \Aws\Result deleteSegment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteSegmentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result evaluateFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise evaluateFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getExperimentResults(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getExperimentResultsAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getProject(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getProjectAsync(array $args = [])
|
|
||||||
* @method \Aws\Result getSegment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise getSegmentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listExperiments(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listExperimentsAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listFeatures(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listFeaturesAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listLaunches(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listLaunchesAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listProjects(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listProjectsAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listSegmentReferences(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listSegmentReferencesAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listSegments(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listSegmentsAsync(array $args = [])
|
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
|
||||||
* @method \Aws\Result putProjectEvents(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise putProjectEventsAsync(array $args = [])
|
|
||||||
* @method \Aws\Result startExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise startExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result startLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise startLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result stopExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise stopExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result stopLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise stopLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
|
||||||
* @method \Aws\Result testSegmentPattern(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise testSegmentPatternAsync(array $args = [])
|
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
|
||||||
* @method \Aws\Result updateExperiment(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise updateExperimentAsync(array $args = [])
|
|
||||||
* @method \Aws\Result updateFeature(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise updateFeatureAsync(array $args = [])
|
|
||||||
* @method \Aws\Result updateLaunch(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise updateLaunchAsync(array $args = [])
|
|
||||||
* @method \Aws\Result updateProject(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = [])
|
|
||||||
* @method \Aws\Result updateProjectDataDelivery(array $args = [])
|
|
||||||
* @method \GuzzleHttp\Promise\Promise updateProjectDataDeliveryAsync(array $args = [])
|
|
||||||
*/
|
|
||||||
class CloudWatchEvidentlyClient extends AwsClient {}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
<?php
|
|
||||||
namespace Aws\CloudWatchEvidently\Exception;
|
|
||||||
|
|
||||||
use Aws\Exception\AwsException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents an error interacting with the **Amazon CloudWatch Evidently** service.
|
|
||||||
*/
|
|
||||||
class CloudWatchEvidentlyException extends AwsException {}
|
|
||||||
|
|
@ -28,6 +28,8 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise createLogGroupAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createLogGroupAsync(array $args = [])
|
||||||
* @method \Aws\Result createLogStream(array $args = [])
|
* @method \Aws\Result createLogStream(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createLogStreamAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createLogStreamAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createLookupTable(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createLookupTableAsync(array $args = [])
|
||||||
* @method \Aws\Result createScheduledQuery(array $args = [])
|
* @method \Aws\Result createScheduledQuery(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createScheduledQueryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createScheduledQueryAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteAccountPolicy(array $args = [])
|
* @method \Aws\Result deleteAccountPolicy(array $args = [])
|
||||||
|
|
@ -54,6 +56,8 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteLogGroupAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteLogGroupAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteLogStream(array $args = [])
|
* @method \Aws\Result deleteLogStream(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteLogStreamAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteLogStreamAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteLookupTable(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteLookupTableAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteMetricFilter(array $args = [])
|
* @method \Aws\Result deleteMetricFilter(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteMetricFilterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteMetricFilterAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteQueryDefinition(array $args = [])
|
* @method \Aws\Result deleteQueryDefinition(array $args = [])
|
||||||
|
|
@ -94,6 +98,8 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeLogGroupsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeLogGroupsAsync(array $args = [])
|
||||||
* @method \Aws\Result describeLogStreams(array $args = [])
|
* @method \Aws\Result describeLogStreams(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeLogStreamsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeLogStreamsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeLookupTables(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeLookupTablesAsync(array $args = [])
|
||||||
* @method \Aws\Result describeMetricFilters(array $args = [])
|
* @method \Aws\Result describeMetricFilters(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeMetricFiltersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeMetricFiltersAsync(array $args = [])
|
||||||
* @method \Aws\Result describeQueries(array $args = [])
|
* @method \Aws\Result describeQueries(array $args = [])
|
||||||
|
|
@ -134,6 +140,8 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise getLogObjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getLogObjectAsync(array $args = [])
|
||||||
* @method \Aws\Result getLogRecord(array $args = [])
|
* @method \Aws\Result getLogRecord(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getLogRecordAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getLogRecordAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getLookupTable(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getLookupTableAsync(array $args = [])
|
||||||
* @method \Aws\Result getQueryResults(array $args = [])
|
* @method \Aws\Result getQueryResults(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getQueryResultsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getQueryResultsAsync(array $args = [])
|
||||||
* @method \Aws\Result getScheduledQuery(array $args = [])
|
* @method \Aws\Result getScheduledQuery(array $args = [])
|
||||||
|
|
@ -164,6 +172,8 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsLogGroupAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsLogGroupAsync(array $args = [])
|
||||||
* @method \Aws\Result putAccountPolicy(array $args = [])
|
* @method \Aws\Result putAccountPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putAccountPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putAccountPolicyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result putBearerTokenAuthentication(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise putBearerTokenAuthenticationAsync(array $args = [])
|
||||||
* @method \Aws\Result putDataProtectionPolicy(array $args = [])
|
* @method \Aws\Result putDataProtectionPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putDataProtectionPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putDataProtectionPolicyAsync(array $args = [])
|
||||||
* @method \Aws\Result putDeliveryDestination(array $args = [])
|
* @method \Aws\Result putDeliveryDestination(array $args = [])
|
||||||
|
|
@ -220,41 +230,12 @@ use Generator;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateDeliveryConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateDeliveryConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result updateLogAnomalyDetector(array $args = [])
|
* @method \Aws\Result updateLogAnomalyDetector(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateLogAnomalyDetectorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateLogAnomalyDetectorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateLookupTable(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateLookupTableAsync(array $args = [])
|
||||||
* @method \Aws\Result updateScheduledQuery(array $args = [])
|
* @method \Aws\Result updateScheduledQuery(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateScheduledQueryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateScheduledQueryAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
class CloudWatchLogsClient extends AwsClient {
|
class CloudWatchLogsClient extends AwsClient {
|
||||||
static $streamingCommands = [
|
|
||||||
'StartLiveTail' => true
|
|
||||||
];
|
|
||||||
|
|
||||||
public function __construct(array $args)
|
|
||||||
{
|
|
||||||
parent::__construct($args);
|
|
||||||
$this->addStreamingFlagMiddleware();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function addStreamingFlagMiddleware()
|
|
||||||
{
|
|
||||||
$this->getHandlerList()
|
|
||||||
-> appendInit(
|
|
||||||
$this->getStreamingFlagMiddleware(),
|
|
||||||
'streaming-flag-middleware'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getStreamingFlagMiddleware(): callable
|
|
||||||
{
|
|
||||||
return function (callable $handler) {
|
|
||||||
return function (CommandInterface $command, $request = null) use ($handler) {
|
|
||||||
if (!empty(self::$streamingCommands[$command->getName()])) {
|
|
||||||
$command['@http']['stream'] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $handler($command, $request);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method for 'startLiveTail' operation that checks for results.
|
* Helper method for 'startLiveTail' operation that checks for results.
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ use Aws\AwsClient;
|
||||||
*
|
*
|
||||||
* @method \Aws\Result addCustomAttributes(array $args = [])
|
* @method \Aws\Result addCustomAttributes(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise addCustomAttributesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise addCustomAttributesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result addUserPoolClientSecret(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise addUserPoolClientSecretAsync(array $args = [])
|
||||||
* @method \Aws\Result adminAddUserToGroup(array $args = [])
|
* @method \Aws\Result adminAddUserToGroup(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise adminAddUserToGroupAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise adminAddUserToGroupAsync(array $args = [])
|
||||||
* @method \Aws\Result adminConfirmSignUp(array $args = [])
|
* @method \Aws\Result adminConfirmSignUp(array $args = [])
|
||||||
|
|
@ -90,6 +92,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createUserPoolClientAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createUserPoolClientAsync(array $args = [])
|
||||||
* @method \Aws\Result createUserPoolDomain(array $args = [])
|
* @method \Aws\Result createUserPoolDomain(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createUserPoolDomainAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createUserPoolDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createUserPoolReplica(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createUserPoolReplicaAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteGroup(array $args = [])
|
* @method \Aws\Result deleteGroup(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteGroupAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteIdentityProvider(array $args = [])
|
* @method \Aws\Result deleteIdentityProvider(array $args = [])
|
||||||
|
|
@ -108,8 +112,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteUserPoolAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteUserPoolAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteUserPoolClient(array $args = [])
|
* @method \Aws\Result deleteUserPoolClient(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteUserPoolClientAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteUserPoolClientAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteUserPoolClientSecret(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteUserPoolClientSecretAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteUserPoolDomain(array $args = [])
|
* @method \Aws\Result deleteUserPoolDomain(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteUserPoolDomainAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteUserPoolDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteUserPoolReplica(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteUserPoolReplicaAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteWebAuthnCredential(array $args = [])
|
* @method \Aws\Result deleteWebAuthnCredential(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteWebAuthnCredentialAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteWebAuthnCredentialAsync(array $args = [])
|
||||||
* @method \Aws\Result describeIdentityProvider(array $args = [])
|
* @method \Aws\Result describeIdentityProvider(array $args = [])
|
||||||
|
|
@ -178,8 +186,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listTermsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTermsAsync(array $args = [])
|
||||||
* @method \Aws\Result listUserImportJobs(array $args = [])
|
* @method \Aws\Result listUserImportJobs(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listUserImportJobsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUserImportJobsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listUserPoolClientSecrets(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listUserPoolClientSecretsAsync(array $args = [])
|
||||||
* @method \Aws\Result listUserPoolClients(array $args = [])
|
* @method \Aws\Result listUserPoolClients(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listUserPoolClientsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUserPoolClientsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listUserPoolReplicas(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listUserPoolReplicasAsync(array $args = [])
|
||||||
* @method \Aws\Result listUserPools(array $args = [])
|
* @method \Aws\Result listUserPools(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listUserPoolsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUserPoolsAsync(array $args = [])
|
||||||
* @method \Aws\Result listUsers(array $args = [])
|
* @method \Aws\Result listUsers(array $args = [])
|
||||||
|
|
@ -240,6 +252,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserPoolClientAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserPoolClientAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserPoolDomain(array $args = [])
|
* @method \Aws\Result updateUserPoolDomain(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserPoolDomainAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserPoolDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateUserPoolReplica(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateUserPoolReplicaAsync(array $args = [])
|
||||||
* @method \Aws\Result verifySoftwareToken(array $args = [])
|
* @method \Aws\Result verifySoftwareToken(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise verifySoftwareTokenAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise verifySoftwareTokenAsync(array $args = [])
|
||||||
* @method \Aws\Result verifyUserAttribute(array $args = [])
|
* @method \Aws\Result verifyUserAttribute(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise associateLexBotAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise associateLexBotAsync(array $args = [])
|
||||||
* @method \Aws\Result associatePhoneNumberContactFlow(array $args = [])
|
* @method \Aws\Result associatePhoneNumberContactFlow(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise associatePhoneNumberContactFlowAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise associatePhoneNumberContactFlowAsync(array $args = [])
|
||||||
|
* @method \Aws\Result associateQueueEmailAddresses(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise associateQueueEmailAddressesAsync(array $args = [])
|
||||||
* @method \Aws\Result associateQueueQuickConnects(array $args = [])
|
* @method \Aws\Result associateQueueQuickConnects(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise associateQueueQuickConnectsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise associateQueueQuickConnectsAsync(array $args = [])
|
||||||
* @method \Aws\Result associateRoutingProfileQueues(array $args = [])
|
* @method \Aws\Result associateRoutingProfileQueues(array $args = [])
|
||||||
|
|
@ -97,6 +99,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createInstanceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createInstanceAsync(array $args = [])
|
||||||
* @method \Aws\Result createIntegrationAssociation(array $args = [])
|
* @method \Aws\Result createIntegrationAssociation(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createIntegrationAssociationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createIntegrationAssociationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createNotification(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createNotificationAsync(array $args = [])
|
||||||
* @method \Aws\Result createParticipant(array $args = [])
|
* @method \Aws\Result createParticipant(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createParticipantAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createParticipantAsync(array $args = [])
|
||||||
* @method \Aws\Result createPersistentContactAssociation(array $args = [])
|
* @method \Aws\Result createPersistentContactAssociation(array $args = [])
|
||||||
|
|
@ -171,6 +175,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteInstanceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteInstanceAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteIntegrationAssociation(array $args = [])
|
* @method \Aws\Result deleteIntegrationAssociation(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteIntegrationAssociationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteIntegrationAssociationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteNotification(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteNotificationAsync(array $args = [])
|
||||||
* @method \Aws\Result deletePredefinedAttribute(array $args = [])
|
* @method \Aws\Result deletePredefinedAttribute(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deletePredefinedAttributeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deletePredefinedAttributeAsync(array $args = [])
|
||||||
* @method \Aws\Result deletePrompt(array $args = [])
|
* @method \Aws\Result deletePrompt(array $args = [])
|
||||||
|
|
@ -213,6 +219,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteWorkspacePageAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteWorkspacePageAsync(array $args = [])
|
||||||
* @method \Aws\Result describeAgentStatus(array $args = [])
|
* @method \Aws\Result describeAgentStatus(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeAgentStatusAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeAgentStatusAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeAttachedFilesConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeAttachedFilesConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result describeAuthenticationProfile(array $args = [])
|
* @method \Aws\Result describeAuthenticationProfile(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeAuthenticationProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeAuthenticationProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result describeContact(array $args = [])
|
* @method \Aws\Result describeContact(array $args = [])
|
||||||
|
|
@ -243,6 +251,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeInstanceAttributeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeInstanceAttributeAsync(array $args = [])
|
||||||
* @method \Aws\Result describeInstanceStorageConfig(array $args = [])
|
* @method \Aws\Result describeInstanceStorageConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeInstanceStorageConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeInstanceStorageConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeNotification(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeNotificationAsync(array $args = [])
|
||||||
* @method \Aws\Result describePhoneNumber(array $args = [])
|
* @method \Aws\Result describePhoneNumber(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describePhoneNumberAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describePhoneNumberAsync(array $args = [])
|
||||||
* @method \Aws\Result describePredefinedAttribute(array $args = [])
|
* @method \Aws\Result describePredefinedAttribute(array $args = [])
|
||||||
|
|
@ -295,6 +305,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociateLexBotAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociateLexBotAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociatePhoneNumberContactFlow(array $args = [])
|
* @method \Aws\Result disassociatePhoneNumberContactFlow(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociatePhoneNumberContactFlowAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociatePhoneNumberContactFlowAsync(array $args = [])
|
||||||
|
* @method \Aws\Result disassociateQueueEmailAddresses(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise disassociateQueueEmailAddressesAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociateQueueQuickConnects(array $args = [])
|
* @method \Aws\Result disassociateQueueQuickConnects(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociateQueueQuickConnectsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociateQueueQuickConnectsAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociateRoutingProfileQueues(array $args = [])
|
* @method \Aws\Result disassociateRoutingProfileQueues(array $args = [])
|
||||||
|
|
@ -355,6 +367,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listApprovedOriginsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listApprovedOriginsAsync(array $args = [])
|
||||||
* @method \Aws\Result listAssociatedContacts(array $args = [])
|
* @method \Aws\Result listAssociatedContacts(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listAssociatedContactsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listAssociatedContactsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAttachedFilesConfigurations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAttachedFilesConfigurationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listAuthenticationProfiles(array $args = [])
|
* @method \Aws\Result listAuthenticationProfiles(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listAuthenticationProfilesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listAuthenticationProfilesAsync(array $args = [])
|
||||||
* @method \Aws\Result listBots(array $args = [])
|
* @method \Aws\Result listBots(array $args = [])
|
||||||
|
|
@ -409,6 +423,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listLambdaFunctionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listLambdaFunctionsAsync(array $args = [])
|
||||||
* @method \Aws\Result listLexBots(array $args = [])
|
* @method \Aws\Result listLexBots(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listLexBotsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listLexBotsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listNotifications(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listNotificationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listPhoneNumbers(array $args = [])
|
* @method \Aws\Result listPhoneNumbers(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPhoneNumbersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPhoneNumbersAsync(array $args = [])
|
||||||
* @method \Aws\Result listPhoneNumbersV2(array $args = [])
|
* @method \Aws\Result listPhoneNumbersV2(array $args = [])
|
||||||
|
|
@ -417,6 +433,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listPredefinedAttributesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPredefinedAttributesAsync(array $args = [])
|
||||||
* @method \Aws\Result listPrompts(array $args = [])
|
* @method \Aws\Result listPrompts(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listPromptsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listPromptsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listQueueEmailAddresses(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listQueueEmailAddressesAsync(array $args = [])
|
||||||
* @method \Aws\Result listQueueQuickConnects(array $args = [])
|
* @method \Aws\Result listQueueQuickConnects(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listQueueQuickConnectsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listQueueQuickConnectsAsync(array $args = [])
|
||||||
* @method \Aws\Result listQueues(array $args = [])
|
* @method \Aws\Result listQueues(array $args = [])
|
||||||
|
|
@ -461,6 +479,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listUseCasesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUseCasesAsync(array $args = [])
|
||||||
* @method \Aws\Result listUserHierarchyGroups(array $args = [])
|
* @method \Aws\Result listUserHierarchyGroups(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listUserHierarchyGroupsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUserHierarchyGroupsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listUserNotifications(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listUserNotificationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listUserProficiencies(array $args = [])
|
* @method \Aws\Result listUserProficiencies(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listUserProficienciesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listUserProficienciesAsync(array $args = [])
|
||||||
* @method \Aws\Result listUsers(array $args = [])
|
* @method \Aws\Result listUsers(array $args = [])
|
||||||
|
|
@ -511,6 +531,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise searchHoursOfOperationOverridesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise searchHoursOfOperationOverridesAsync(array $args = [])
|
||||||
* @method \Aws\Result searchHoursOfOperations(array $args = [])
|
* @method \Aws\Result searchHoursOfOperations(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise searchHoursOfOperationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise searchHoursOfOperationsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result searchNotifications(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise searchNotificationsAsync(array $args = [])
|
||||||
* @method \Aws\Result searchPredefinedAttributes(array $args = [])
|
* @method \Aws\Result searchPredefinedAttributes(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise searchPredefinedAttributesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise searchPredefinedAttributesAsync(array $args = [])
|
||||||
* @method \Aws\Result searchPrompts(array $args = [])
|
* @method \Aws\Result searchPrompts(array $args = [])
|
||||||
|
|
@ -597,6 +619,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateAgentStatus(array $args = [])
|
* @method \Aws\Result updateAgentStatus(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateAgentStatusAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateAgentStatusAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAttachedFilesConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAttachedFilesConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result updateAuthenticationProfile(array $args = [])
|
* @method \Aws\Result updateAuthenticationProfile(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateAuthenticationProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateAuthenticationProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result updateContact(array $args = [])
|
* @method \Aws\Result updateContact(array $args = [])
|
||||||
|
|
@ -639,6 +663,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateInstanceAttributeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateInstanceAttributeAsync(array $args = [])
|
||||||
* @method \Aws\Result updateInstanceStorageConfig(array $args = [])
|
* @method \Aws\Result updateInstanceStorageConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateInstanceStorageConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateInstanceStorageConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateNotificationContent(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateNotificationContentAsync(array $args = [])
|
||||||
* @method \Aws\Result updateParticipantAuthentication(array $args = [])
|
* @method \Aws\Result updateParticipantAuthentication(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateParticipantAuthenticationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateParticipantAuthenticationAsync(array $args = [])
|
||||||
* @method \Aws\Result updateParticipantRoleConfig(array $args = [])
|
* @method \Aws\Result updateParticipantRoleConfig(array $args = [])
|
||||||
|
|
@ -687,6 +713,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateTestCaseAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateTestCaseAsync(array $args = [])
|
||||||
* @method \Aws\Result updateTrafficDistribution(array $args = [])
|
* @method \Aws\Result updateTrafficDistribution(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateTrafficDistributionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateTrafficDistributionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateUserConfig(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateUserConfigAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserHierarchy(array $args = [])
|
* @method \Aws\Result updateUserHierarchy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserHierarchyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserHierarchyAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserHierarchyGroupName(array $args = [])
|
* @method \Aws\Result updateUserHierarchyGroupName(array $args = [])
|
||||||
|
|
@ -695,6 +723,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserHierarchyStructureAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserHierarchyStructureAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserIdentityInfo(array $args = [])
|
* @method \Aws\Result updateUserIdentityInfo(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserIdentityInfoAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserIdentityInfoAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateUserNotificationStatus(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateUserNotificationStatusAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserPhoneConfig(array $args = [])
|
* @method \Aws\Result updateUserPhoneConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateUserPhoneConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateUserPhoneConfigAsync(array $args = [])
|
||||||
* @method \Aws\Result updateUserProficiencies(array $args = [])
|
* @method \Aws\Result updateUserProficiencies(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteCampaignCommunicationLimitsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteCampaignCommunicationLimitsAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCampaignCommunicationTime(array $args = [])
|
* @method \Aws\Result deleteCampaignCommunicationTime(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteCampaignCommunicationTimeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteCampaignCommunicationTimeAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteCampaignEntryLimits(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteCampaignEntryLimitsAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteConnectInstanceConfig(array $args = [])
|
* @method \Aws\Result deleteConnectInstanceConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteConnectInstanceConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteConnectInstanceConfigAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteConnectInstanceIntegration(array $args = [])
|
* @method \Aws\Result deleteConnectInstanceIntegration(array $args = [])
|
||||||
|
|
@ -67,6 +69,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateCampaignCommunicationLimitsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateCampaignCommunicationLimitsAsync(array $args = [])
|
||||||
* @method \Aws\Result updateCampaignCommunicationTime(array $args = [])
|
* @method \Aws\Result updateCampaignCommunicationTime(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateCampaignCommunicationTimeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateCampaignCommunicationTimeAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateCampaignEntryLimits(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateCampaignEntryLimitsAsync(array $args = [])
|
||||||
* @method \Aws\Result updateCampaignFlowAssociation(array $args = [])
|
* @method \Aws\Result updateCampaignFlowAssociation(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateCampaignFlowAssociationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateCampaignFlowAssociationAsync(array $args = [])
|
||||||
* @method \Aws\Result updateCampaignName(array $args = [])
|
* @method \Aws\Result updateCampaignName(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateFieldAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateFieldAsync(array $args = [])
|
||||||
* @method \Aws\Result updateLayout(array $args = [])
|
* @method \Aws\Result updateLayout(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateLayoutAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateLayoutAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateRelatedItem(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateRelatedItemAsync(array $args = [])
|
||||||
* @method \Aws\Result updateTemplate(array $args = [])
|
* @method \Aws\Result updateTemplate(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateTemplateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateTemplateAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
39
vendor/aws/aws-sdk-php/src/ConnectHealth/ConnectHealthClient.php
vendored
Normal file
39
vendor/aws/aws-sdk-php/src/ConnectHealth/ConnectHealthClient.php
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\ConnectHealth;
|
||||||
|
|
||||||
|
use Aws\AwsClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This client is used to interact with the **Connect Health** service.
|
||||||
|
* @method \Aws\Result activateSubscription(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise activateSubscriptionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDomain(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createSubscription(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createSubscriptionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deactivateSubscription(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deactivateSubscriptionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDomain(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDomain(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDomainAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getMedicalScribeListeningSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getMedicalScribeListeningSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPatientInsightsJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPatientInsightsJobAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSubscription(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSubscriptionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDomains(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDomainsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listSubscriptions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listSubscriptionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startPatientInsightsJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startPatientInsightsJobAsync(array $args = [])
|
||||||
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
|
*/
|
||||||
|
class ConnectHealthClient extends AwsClient {}
|
||||||
9
vendor/aws/aws-sdk-php/src/ConnectHealth/Exception/ConnectHealthException.php
vendored
Normal file
9
vendor/aws/aws-sdk-php/src/ConnectHealth/Exception/ConnectHealthException.php
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\ConnectHealth\Exception;
|
||||||
|
|
||||||
|
use Aws\Exception\AwsException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an error interacting with the **Connect Health** service.
|
||||||
|
*/
|
||||||
|
class ConnectHealthException extends AwsException {}
|
||||||
|
|
@ -265,7 +265,7 @@ class InstanceProfileProvider
|
||||||
$userAgent .= ' ' . \Aws\default_user_agent();
|
$userAgent .= ' ' . \Aws\default_user_agent();
|
||||||
$request = $request->withHeader('User-Agent', $userAgent);
|
$request = $request->withHeader('User-Agent', $userAgent);
|
||||||
foreach ($headers as $key => $value) {
|
foreach ($headers as $key => $value) {
|
||||||
$request = $request->withHeader($key, $value);
|
$request = $request->withHeader($key, (string) $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $fn($request, ['timeout' => $this->timeout])
|
return $fn($request, ['timeout' => $this->timeout])
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise batchGetCalculatedAttributeForProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchGetCalculatedAttributeForProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result batchGetProfile(array $args = [])
|
* @method \Aws\Result batchGetProfile(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise batchGetProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchGetProfileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchPutProfileObject(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchPutProfileObjectAsync(array $args = [])
|
||||||
* @method \Aws\Result createCalculatedAttributeDefinition(array $args = [])
|
* @method \Aws\Result createCalculatedAttributeDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createCalculatedAttributeDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createCalculatedAttributeDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result createDomain(array $args = [])
|
* @method \Aws\Result createDomain(array $args = [])
|
||||||
|
|
@ -27,6 +29,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result createRecommender(array $args = [])
|
* @method \Aws\Result createRecommender(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createRecommenderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createRecommenderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createRecommenderFilter(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createRecommenderFilterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createRecommenderSchema(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createRecommenderSchemaAsync(array $args = [])
|
||||||
* @method \Aws\Result createSegmentDefinition(array $args = [])
|
* @method \Aws\Result createSegmentDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createSegmentDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createSegmentDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result createSegmentEstimate(array $args = [])
|
* @method \Aws\Result createSegmentEstimate(array $args = [])
|
||||||
|
|
@ -59,6 +65,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteProfileObjectTypeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteProfileObjectTypeAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteRecommender(array $args = [])
|
* @method \Aws\Result deleteRecommender(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteRecommenderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteRecommenderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteRecommenderFilter(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteRecommenderFilterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteRecommenderSchema(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteRecommenderSchemaAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteSegmentDefinition(array $args = [])
|
* @method \Aws\Result deleteSegmentDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteSegmentDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteSegmentDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteWorkflow(array $args = [])
|
* @method \Aws\Result deleteWorkflow(array $args = [])
|
||||||
|
|
@ -99,6 +109,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getProfileRecommendationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getProfileRecommendationsAsync(array $args = [])
|
||||||
* @method \Aws\Result getRecommender(array $args = [])
|
* @method \Aws\Result getRecommender(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getRecommenderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getRecommenderAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRecommenderFilter(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRecommenderFilterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRecommenderSchema(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRecommenderSchemaAsync(array $args = [])
|
||||||
* @method \Aws\Result getSegmentDefinition(array $args = [])
|
* @method \Aws\Result getSegmentDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getSegmentDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getSegmentDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result getSegmentEstimate(array $args = [])
|
* @method \Aws\Result getSegmentEstimate(array $args = [])
|
||||||
|
|
@ -151,8 +165,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listProfileObjectTypesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listProfileObjectTypesAsync(array $args = [])
|
||||||
* @method \Aws\Result listProfileObjects(array $args = [])
|
* @method \Aws\Result listProfileObjects(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listProfileObjectsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listProfileObjectsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRecommenderFilters(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRecommenderFiltersAsync(array $args = [])
|
||||||
* @method \Aws\Result listRecommenderRecipes(array $args = [])
|
* @method \Aws\Result listRecommenderRecipes(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listRecommenderRecipesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listRecommenderRecipesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRecommenderSchemas(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRecommenderSchemasAsync(array $args = [])
|
||||||
* @method \Aws\Result listRecommenders(array $args = [])
|
* @method \Aws\Result listRecommenders(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listRecommendersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listRecommendersAsync(array $args = [])
|
||||||
* @method \Aws\Result listRuleBasedMatches(array $args = [])
|
* @method \Aws\Result listRuleBasedMatches(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -7,18 +7,26 @@ use Aws\AwsClient;
|
||||||
* This client is used to interact with the **Amazon Aurora DSQL** service.
|
* This client is used to interact with the **Amazon Aurora DSQL** service.
|
||||||
* @method \Aws\Result createCluster(array $args = [])
|
* @method \Aws\Result createCluster(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createStream(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createStreamAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCluster(array $args = [])
|
* @method \Aws\Result deleteCluster(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteClusterPolicy(array $args = [])
|
* @method \Aws\Result deleteClusterPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteClusterPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteClusterPolicyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteStream(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteStreamAsync(array $args = [])
|
||||||
* @method \Aws\Result getCluster(array $args = [])
|
* @method \Aws\Result getCluster(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getClusterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getClusterAsync(array $args = [])
|
||||||
* @method \Aws\Result getClusterPolicy(array $args = [])
|
* @method \Aws\Result getClusterPolicy(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getClusterPolicyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getClusterPolicyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getStream(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getStreamAsync(array $args = [])
|
||||||
* @method \Aws\Result getVpcEndpointServiceName(array $args = [])
|
* @method \Aws\Result getVpcEndpointServiceName(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getVpcEndpointServiceNameAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getVpcEndpointServiceNameAsync(array $args = [])
|
||||||
* @method \Aws\Result listClusters(array $args = [])
|
* @method \Aws\Result listClusters(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listStreams(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listStreamsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result putClusterPolicy(array $args = [])
|
* @method \Aws\Result putClusterPolicy(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createGroupProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createGroupProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result createListingChangeSet(array $args = [])
|
* @method \Aws\Result createListingChangeSet(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createListingChangeSetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createListingChangeSetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createNotebook(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createNotebookAsync(array $args = [])
|
||||||
* @method \Aws\Result createProject(array $args = [])
|
* @method \Aws\Result createProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result createProjectMembership(array $args = [])
|
* @method \Aws\Result createProjectMembership(array $args = [])
|
||||||
|
|
@ -119,6 +121,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteGlossaryTermAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteGlossaryTermAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteListing(array $args = [])
|
* @method \Aws\Result deleteListing(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteListingAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteListingAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteNotebook(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteNotebookAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteProject(array $args = [])
|
* @method \Aws\Result deleteProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteProjectMembership(array $args = [])
|
* @method \Aws\Result deleteProjectMembership(array $args = [])
|
||||||
|
|
@ -193,6 +197,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getListingAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getListingAsync(array $args = [])
|
||||||
* @method \Aws\Result getMetadataGenerationRun(array $args = [])
|
* @method \Aws\Result getMetadataGenerationRun(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getMetadataGenerationRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMetadataGenerationRunAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getNotebook(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getNotebookAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getNotebookExport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getNotebookExportAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getNotebookRun(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getNotebookRunAsync(array $args = [])
|
||||||
* @method \Aws\Result getProject(array $args = [])
|
* @method \Aws\Result getProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result getProjectProfile(array $args = [])
|
* @method \Aws\Result getProjectProfile(array $args = [])
|
||||||
|
|
@ -253,6 +263,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listLineageNodeHistoryAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listLineageNodeHistoryAsync(array $args = [])
|
||||||
* @method \Aws\Result listMetadataGenerationRuns(array $args = [])
|
* @method \Aws\Result listMetadataGenerationRuns(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listMetadataGenerationRunsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listMetadataGenerationRunsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listNotebookRuns(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listNotebookRunsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listNotebooks(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listNotebooksAsync(array $args = [])
|
||||||
* @method \Aws\Result listNotifications(array $args = [])
|
* @method \Aws\Result listNotifications(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listNotificationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listNotificationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listPolicyGrants(array $args = [])
|
* @method \Aws\Result listPolicyGrants(array $args = [])
|
||||||
|
|
@ -285,6 +299,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise putDataExportConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putDataExportConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result putEnvironmentBlueprintConfiguration(array $args = [])
|
* @method \Aws\Result putEnvironmentBlueprintConfiguration(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise putEnvironmentBlueprintConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putEnvironmentBlueprintConfigurationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result queryGraph(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise queryGraphAsync(array $args = [])
|
||||||
* @method \Aws\Result rejectPredictions(array $args = [])
|
* @method \Aws\Result rejectPredictions(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise rejectPredictionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise rejectPredictionsAsync(array $args = [])
|
||||||
* @method \Aws\Result rejectSubscriptionRequest(array $args = [])
|
* @method \Aws\Result rejectSubscriptionRequest(array $args = [])
|
||||||
|
|
@ -309,6 +325,14 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise startDataSourceRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startDataSourceRunAsync(array $args = [])
|
||||||
* @method \Aws\Result startMetadataGenerationRun(array $args = [])
|
* @method \Aws\Result startMetadataGenerationRun(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startMetadataGenerationRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startMetadataGenerationRunAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startNotebookExport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startNotebookExportAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startNotebookImport(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startNotebookImportAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startNotebookRun(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startNotebookRunAsync(array $args = [])
|
||||||
|
* @method \Aws\Result stopNotebookRun(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise stopNotebookRunAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
|
|
@ -339,6 +363,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateGlossaryTermAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateGlossaryTermAsync(array $args = [])
|
||||||
* @method \Aws\Result updateGroupProfile(array $args = [])
|
* @method \Aws\Result updateGroupProfile(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateGroupProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateGroupProfileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateNotebook(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateNotebookAsync(array $args = [])
|
||||||
* @method \Aws\Result updateProject(array $args = [])
|
* @method \Aws\Result updateProject(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateProjectAsync(array $args = [])
|
||||||
* @method \Aws\Result updateProjectProfile(array $args = [])
|
* @method \Aws\Result updateProjectProfile(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,24 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise assumeQueueRoleForUserAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise assumeQueueRoleForUserAsync(array $args = [])
|
||||||
* @method \Aws\Result assumeQueueRoleForWorker(array $args = [])
|
* @method \Aws\Result assumeQueueRoleForWorker(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise assumeQueueRoleForWorkerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise assumeQueueRoleForWorkerAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetJobAsync(array $args = [])
|
||||||
* @method \Aws\Result batchGetJobEntity(array $args = [])
|
* @method \Aws\Result batchGetJobEntity(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise batchGetJobEntityAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchGetJobEntityAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetSessionAction(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetSessionActionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetStep(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetStepAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetTask(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetTaskAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchGetWorker(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchGetWorkerAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchUpdateJob(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchUpdateJobAsync(array $args = [])
|
||||||
|
* @method \Aws\Result batchUpdateTask(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise batchUpdateTaskAsync(array $args = [])
|
||||||
* @method \Aws\Result copyJobTemplate(array $args = [])
|
* @method \Aws\Result copyJobTemplate(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise copyJobTemplateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise copyJobTemplateAsync(array $args = [])
|
||||||
* @method \Aws\Result createBudget(array $args = [])
|
* @method \Aws\Result createBudget(array $args = [])
|
||||||
|
|
@ -77,6 +93,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteQueueLimitAssociationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteQueueLimitAssociationAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteStorageProfile(array $args = [])
|
* @method \Aws\Result deleteStorageProfile(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteStorageProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteStorageProfileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteVolume(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteVolumeAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteWorker(array $args = [])
|
* @method \Aws\Result deleteWorker(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteWorkerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteWorkerAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociateMemberFromFarm(array $args = [])
|
* @method \Aws\Result disassociateMemberFromFarm(array $args = [])
|
||||||
|
|
@ -101,6 +119,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getLimitAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getLimitAsync(array $args = [])
|
||||||
* @method \Aws\Result getMonitor(array $args = [])
|
* @method \Aws\Result getMonitor(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getMonitorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMonitorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getMonitorSettings(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getMonitorSettingsAsync(array $args = [])
|
||||||
* @method \Aws\Result getQueue(array $args = [])
|
* @method \Aws\Result getQueue(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getQueueAsync(array $args = [])
|
||||||
* @method \Aws\Result getQueueEnvironment(array $args = [])
|
* @method \Aws\Result getQueueEnvironment(array $args = [])
|
||||||
|
|
@ -123,6 +143,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getStorageProfileForQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getStorageProfileForQueueAsync(array $args = [])
|
||||||
* @method \Aws\Result getTask(array $args = [])
|
* @method \Aws\Result getTask(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getTaskAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getTaskAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getVolume(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getVolumeAsync(array $args = [])
|
||||||
* @method \Aws\Result getWorker(array $args = [])
|
* @method \Aws\Result getWorker(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getWorkerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getWorkerAsync(array $args = [])
|
||||||
* @method \Aws\Result listAvailableMeteredProducts(array $args = [])
|
* @method \Aws\Result listAvailableMeteredProducts(array $args = [])
|
||||||
|
|
@ -181,6 +203,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result listTasks(array $args = [])
|
* @method \Aws\Result listTasks(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTasksAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTasksAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listVolumes(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listVolumesAsync(array $args = [])
|
||||||
* @method \Aws\Result listWorkers(array $args = [])
|
* @method \Aws\Result listWorkers(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listWorkersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listWorkersAsync(array $args = [])
|
||||||
* @method \Aws\Result putMeteredProduct(array $args = [])
|
* @method \Aws\Result putMeteredProduct(array $args = [])
|
||||||
|
|
@ -211,6 +235,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateLimitAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateLimitAsync(array $args = [])
|
||||||
* @method \Aws\Result updateMonitor(array $args = [])
|
* @method \Aws\Result updateMonitor(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateMonitorAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateMonitorAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateMonitorSettings(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateMonitorSettingsAsync(array $args = [])
|
||||||
* @method \Aws\Result updateQueue(array $args = [])
|
* @method \Aws\Result updateQueue(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateQueueAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateQueueAsync(array $args = [])
|
||||||
* @method \Aws\Result updateQueueEnvironment(array $args = [])
|
* @method \Aws\Result updateQueueEnvironment(array $args = [])
|
||||||
|
|
|
||||||
123
vendor/aws/aws-sdk-php/src/DevOpsAgent/DevOpsAgentClient.php
vendored
Normal file
123
vendor/aws/aws-sdk-php/src/DevOpsAgent/DevOpsAgentClient.php
vendored
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\DevOpsAgent;
|
||||||
|
|
||||||
|
use Aws\AwsClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This client is used to interact with the **AWS DevOps Agent Service** service.
|
||||||
|
* @method \Aws\Result associateService(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise associateServiceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createAgentSpace(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createAgentSpaceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createAsset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createAssetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createAssetFile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createAssetFileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createBacklogTask(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createBacklogTaskAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createChat(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createChatAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createPrivateConnection(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createPrivateConnectionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteAgentSpace(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteAgentSpaceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteAsset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteAssetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteAssetFile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteAssetFileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deletePrivateConnection(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deletePrivateConnectionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deregisterService(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deregisterServiceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describePrivateConnection(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describePrivateConnectionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result disableOperatorApp(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise disableOperatorAppAsync(array $args = [])
|
||||||
|
* @method \Aws\Result disassociateService(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise disassociateServiceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result enableOperatorApp(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise enableOperatorAppAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAccountUsage(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAccountUsageAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAgentSpace(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAgentSpaceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAsset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAssetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAssetContent(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAssetContentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAssetFile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAssetFileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAssociation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAssociationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getBacklogTask(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getBacklogTaskAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getOperatorApp(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getOperatorAppAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getRecommendation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getRecommendationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getService(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getServiceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAgentSpaces(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAgentSpacesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAssetFiles(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAssetFilesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAssetTypes(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAssetTypesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAssetVersions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAssetVersionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAssets(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAssetsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAssociations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAssociationsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listBacklogTasks(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listBacklogTasksAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listChats(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listChatsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listExecutions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listExecutionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listGoals(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listGoalsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listJournalRecords(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listJournalRecordsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPendingMessages(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPendingMessagesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listPrivateConnections(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listPrivateConnectionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listRecommendations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listRecommendationsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listServices(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listServicesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listWebhooks(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listWebhooksAsync(array $args = [])
|
||||||
|
* @method \Aws\Result registerService(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise registerServiceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result sendMessage(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise sendMessageAsync(array $args = [])
|
||||||
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAgentSpace(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAgentSpaceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAsset(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAssetAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAssetFile(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAssetFileAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAssociation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAssociationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateBacklogTask(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateBacklogTaskAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateGoal(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateGoalAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateOperatorAppIdpConfig(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateOperatorAppIdpConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updatePrivateConnectionCertificate(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updatePrivateConnectionCertificateAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateRecommendation(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateRecommendationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result validateAwsAssociations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise validateAwsAssociationsAsync(array $args = [])
|
||||||
|
*/
|
||||||
|
class DevOpsAgentClient extends AwsClient {}
|
||||||
9
vendor/aws/aws-sdk-php/src/DevOpsAgent/Exception/DevOpsAgentException.php
vendored
Normal file
9
vendor/aws/aws-sdk-php/src/DevOpsAgent/Exception/DevOpsAgentException.php
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\DevOpsAgent\Exception;
|
||||||
|
|
||||||
|
use Aws\Exception\AwsException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an error interacting with the **AWS DevOps Agent Service** service.
|
||||||
|
*/
|
||||||
|
class DevOpsAgentException extends AwsException {}
|
||||||
|
|
@ -7,8 +7,14 @@ use Aws\ClientResolver;
|
||||||
use Aws\Exception\AwsException;
|
use Aws\Exception\AwsException;
|
||||||
use Aws\HandlerList;
|
use Aws\HandlerList;
|
||||||
use Aws\Middleware;
|
use Aws\Middleware;
|
||||||
|
use Aws\Retry\Configuration as RetryConfiguration;
|
||||||
|
use Aws\Retry\ConfigurationInterface as RetryConfigurationInterface;
|
||||||
|
use Aws\Retry\ConfigurationProvider as RetryConfigurationProvider;
|
||||||
|
use Aws\Retry\V3\OptIn as NewRetriesOptIn;
|
||||||
|
use Aws\Retry\V3\RetryMiddleware as RetryV3Middleware;
|
||||||
use Aws\RetryMiddleware;
|
use Aws\RetryMiddleware;
|
||||||
use Aws\RetryMiddlewareV2;
|
use Aws\RetryMiddlewareV2;
|
||||||
|
use GuzzleHttp\Promise\Create;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This client is used to interact with the **Amazon DynamoDB** service.
|
* This client is used to interact with the **Amazon DynamoDB** service.
|
||||||
|
|
@ -130,16 +136,50 @@ use Aws\RetryMiddlewareV2;
|
||||||
*/
|
*/
|
||||||
class DynamoDbClient extends AwsClient
|
class DynamoDbClient extends AwsClient
|
||||||
{
|
{
|
||||||
|
/** @internal Default attempts for the AWS_NEW_RETRIES_2026 path. */
|
||||||
|
private const DYNAMODB_MAX_ATTEMPTS = 4;
|
||||||
|
/** @internal Base backoff in ms for the AWS_NEW_RETRIES_2026 path. */
|
||||||
|
private const DEFAULT_BASE_DELAY_MS = 25;
|
||||||
|
/**
|
||||||
|
* @internal Legacy-mode fallback when an array config does not specify
|
||||||
|
* max_attempts. Only consulted on the AWS_NEW_RETRIES_2026 path.
|
||||||
|
*/
|
||||||
|
public const DEFAULT_LEGACY_MAX_ATTEMPTS = 10;
|
||||||
|
|
||||||
public static function getArguments()
|
public static function getArguments()
|
||||||
{
|
{
|
||||||
$args = parent::getArguments();
|
$args = parent::getArguments();
|
||||||
$args['retries']['default'] = 10;
|
$args['retries']['default'] = NewRetriesOptIn::isEnabled()
|
||||||
|
? [__CLASS__, '_defaultRetries']
|
||||||
|
: self::DEFAULT_LEGACY_MAX_ATTEMPTS;
|
||||||
$args['retries']['fn'] = [__CLASS__, '_applyRetryConfig'];
|
$args['retries']['fn'] = [__CLASS__, '_applyRetryConfig'];
|
||||||
$args['api_provider']['fn'] = [__CLASS__, '_applyApiProvider'];
|
$args['api_provider']['fn'] = [__CLASS__, '_applyApiProvider'];
|
||||||
|
|
||||||
return $args;
|
return $args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal Default retry-config provider for the AWS_NEW_RETRIES_2026
|
||||||
|
* path. Falls through to env/INI before applying the DynamoDB
|
||||||
|
* default of {@see self::DYNAMODB_MAX_ATTEMPTS} attempts in
|
||||||
|
* the specs standard mode.
|
||||||
|
*/
|
||||||
|
public static function _defaultRetries()
|
||||||
|
{
|
||||||
|
return RetryConfigurationProvider::chain(
|
||||||
|
RetryConfigurationProvider::env(),
|
||||||
|
RetryConfigurationProvider::ini(),
|
||||||
|
function () {
|
||||||
|
return Create::promiseFor(
|
||||||
|
new RetryConfiguration(
|
||||||
|
RetryConfigurationProvider::getDefaultMode(),
|
||||||
|
self::DYNAMODB_MAX_ATTEMPTS
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience method for instantiating and registering the DynamoDB
|
* Convenience method for instantiating and registering the DynamoDB
|
||||||
* Session handler with this DynamoDB client object.
|
* Session handler with this DynamoDB client object.
|
||||||
|
|
@ -159,14 +199,38 @@ class DynamoDbClient extends AwsClient
|
||||||
/** @internal */
|
/** @internal */
|
||||||
public static function _applyRetryConfig($value, array &$args, HandlerList $list)
|
public static function _applyRetryConfig($value, array &$args, HandlerList $list)
|
||||||
{
|
{
|
||||||
if ($value) {
|
if (!$value) {
|
||||||
$config = \Aws\Retry\ConfigurationProvider::unwrap($value);
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$config = RetryConfigurationProvider::unwrap($value);
|
||||||
|
|
||||||
if ($config->getMode() === 'legacy') {
|
if ($config->getMode() === 'legacy') {
|
||||||
|
self::appendLegacyModeRetries($value, $config, $args, $list);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NewRetriesOptIn::isEnabled()) {
|
||||||
|
self::appendStandardModeRetriesNew($config, $args, $list);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self::appendStandardModeRetries($config, $args, $list);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function appendLegacyModeRetries(
|
||||||
|
$value,
|
||||||
|
RetryConfigurationInterface $config,
|
||||||
|
array &$args,
|
||||||
|
HandlerList $list
|
||||||
|
): void
|
||||||
|
{
|
||||||
|
$maxRetries = self::resolveLegacyModeMaxRetries($value, $config);
|
||||||
|
|
||||||
$list->appendSign(
|
$list->appendSign(
|
||||||
Middleware::retry(
|
Middleware::retry(
|
||||||
RetryMiddleware::createDefaultDecider(
|
RetryMiddleware::createDefaultDecider(
|
||||||
$config->getMaxAttempts() - 1,
|
$maxRetries,
|
||||||
['error_codes' => ['TransactionInProgressException']]
|
['error_codes' => ['TransactionInProgressException']]
|
||||||
),
|
),
|
||||||
function ($retries) {
|
function ($retries) {
|
||||||
|
|
@ -174,25 +238,64 @@ class DynamoDbClient extends AwsClient
|
||||||
? RetryMiddleware::exponentialDelay($retries) / 2
|
? RetryMiddleware::exponentialDelay($retries) / 2
|
||||||
: 0;
|
: 0;
|
||||||
},
|
},
|
||||||
isset($args['stats']['retries'])
|
isset($args['stats']['retries']) ? (bool) $args['stats']['retries'] : false
|
||||||
? (bool)$args['stats']['retries']
|
|
||||||
: false
|
|
||||||
),
|
),
|
||||||
'retry'
|
'retry'
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
private static function resolveLegacyModeMaxRetries(
|
||||||
|
$value,
|
||||||
|
RetryConfigurationInterface $config
|
||||||
|
): int
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
NewRetriesOptIn::isEnabled()
|
||||||
|
&& is_array($value)
|
||||||
|
&& !isset($value['max_attempts'])
|
||||||
|
) {
|
||||||
|
return self::DEFAULT_LEGACY_MAX_ATTEMPTS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $config->getMaxAttempts() - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function appendStandardModeRetries(
|
||||||
|
RetryConfigurationInterface $config,
|
||||||
|
array &$args,
|
||||||
|
HandlerList $list
|
||||||
|
): void
|
||||||
|
{
|
||||||
$list->appendSign(
|
$list->appendSign(
|
||||||
RetryMiddlewareV2::wrap(
|
RetryMiddlewareV2::wrap(
|
||||||
$config,
|
$config,
|
||||||
[
|
[
|
||||||
'collect_stats' => $args['stats']['retries'],
|
'collect_stats' => $args['stats']['retries'],
|
||||||
'transient_error_codes' => ['TransactionInProgressException']
|
'transient_error_codes' => ['TransactionInProgressException'],
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
'retry'
|
'retry'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private static function appendStandardModeRetriesNew(
|
||||||
|
RetryConfigurationInterface $config,
|
||||||
|
array &$args,
|
||||||
|
HandlerList $list
|
||||||
|
): void
|
||||||
|
{
|
||||||
|
$list->appendSign(
|
||||||
|
RetryV3Middleware::wrap(
|
||||||
|
$config,
|
||||||
|
[
|
||||||
|
'collect_stats' => $args['stats']['retries'],
|
||||||
|
'service' => $args['service'],
|
||||||
|
'base_delay' => self::DEFAULT_BASE_DELAY_MS,
|
||||||
|
'transient_error_codes' => ['TransactionInProgressException'],
|
||||||
|
]
|
||||||
|
),
|
||||||
|
'retry'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @internal */
|
/** @internal */
|
||||||
|
|
|
||||||
|
|
@ -17,22 +17,34 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getDashboardForJobRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getDashboardForJobRunAsync(array $args = [])
|
||||||
* @method \Aws\Result getJobRun(array $args = [])
|
* @method \Aws\Result getJobRun(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getJobRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getJobRunAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getResourceDashboard(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getResourceDashboardAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSessionEndpoint(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSessionEndpointAsync(array $args = [])
|
||||||
* @method \Aws\Result listApplications(array $args = [])
|
* @method \Aws\Result listApplications(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listJobRunAttempts(array $args = [])
|
* @method \Aws\Result listJobRunAttempts(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listJobRunAttemptsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listJobRunAttemptsAsync(array $args = [])
|
||||||
* @method \Aws\Result listJobRuns(array $args = [])
|
* @method \Aws\Result listJobRuns(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listJobRunsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listJobRunsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listSessions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listSessionsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result startApplication(array $args = [])
|
* @method \Aws\Result startApplication(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startApplicationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startApplicationAsync(array $args = [])
|
||||||
* @method \Aws\Result startJobRun(array $args = [])
|
* @method \Aws\Result startJobRun(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startJobRunAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startJobRunAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result stopApplication(array $args = [])
|
* @method \Aws\Result stopApplication(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopApplicationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopApplicationAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result terminateSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise terminateSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateApplication(array $args = [])
|
* @method \Aws\Result updateApplication(array $args = [])
|
||||||
|
|
|
||||||
36
vendor/aws/aws-sdk-php/src/Ec2/Ec2Client.php
vendored
36
vendor/aws/aws-sdk-php/src/Ec2/Ec2Client.php
vendored
|
|
@ -438,6 +438,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise acceptAddressTransferAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise acceptAddressTransferAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result acceptCapacityReservationBillingOwnership(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result acceptCapacityReservationBillingOwnership(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise acceptCapacityReservationBillingOwnershipAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise acceptCapacityReservationBillingOwnershipAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result acceptTransitGatewayClientVpnAttachment(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise acceptTransitGatewayClientVpnAttachmentAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result acceptTransitGatewayMulticastDomainAssociations(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result acceptTransitGatewayMulticastDomainAssociations(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise acceptTransitGatewayMulticastDomainAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise acceptTransitGatewayMulticastDomainAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result acceptTransitGatewayPeeringAttachment(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result acceptTransitGatewayPeeringAttachment(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -510,6 +512,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise createCapacityReservationAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createCapacityReservationAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createCapacityReservationBySplitting(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createCapacityReservationBySplitting(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise createCapacityReservationBySplittingAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createCapacityReservationBySplittingAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result createCapacityReservationCancellationQuote(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createCapacityReservationCancellationQuoteAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createCapacityReservationFleet(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createCapacityReservationFleet(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise createCapacityReservationFleetAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createCapacityReservationFleetAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createCarrierGateway(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createCarrierGateway(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -596,6 +600,10 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise createRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise createRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result createSecondaryNetwork(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createSecondaryNetworkAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result createSecondarySubnet(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createSecondarySubnetAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createSnapshots(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createSnapshots(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise createSnapshotsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise createSnapshotsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result createStoreImageTask(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result createStoreImageTask(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -732,6 +740,10 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result deleteSecondaryNetwork(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteSecondaryNetworkAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result deleteSecondarySubnet(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteSecondarySubnetAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteSubnetCidrReservation(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteSubnetCidrReservation(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteSubnetCidrReservationAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteSubnetCidrReservationAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteTrafficMirrorFilter(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteTrafficMirrorFilter(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -744,6 +756,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteTrafficMirrorTargetAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteTrafficMirrorTargetAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteTransitGateway(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteTransitGateway(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteTransitGatewayAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteTransitGatewayAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result deleteTransitGatewayClientVpnAttachment(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteTransitGatewayClientVpnAttachmentAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteTransitGatewayConnect(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteTransitGatewayConnect(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteTransitGatewayConnectAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise deleteTransitGatewayConnectAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result deleteTransitGatewayConnectPeer(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result deleteTransitGatewayConnectPeer(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -824,6 +838,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeCapacityManagerDataExportsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeCapacityManagerDataExportsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeCapacityReservationBillingRequests(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeCapacityReservationBillingRequests(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationBillingRequestsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationBillingRequestsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result describeCapacityReservationCancellationQuotes(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationCancellationQuotesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeCapacityReservationFleets(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeCapacityReservationFleets(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationFleetsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationFleetsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeCapacityReservationTopology(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeCapacityReservationTopology(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -900,6 +916,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeIpamExternalResourceVerificationTokensAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeIpamExternalResourceVerificationTokensAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeIpamPolicies(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeIpamPolicies(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeIpamPoliciesAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeIpamPoliciesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result describeIpamPoolAllocations(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeIpamPoolAllocationsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeIpamPools(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeIpamPools(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeIpamPoolsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeIpamPoolsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeIpamPrefixListResolverTargets(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeIpamPrefixListResolverTargets(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -964,6 +982,12 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeRouteServerPeersAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeRouteServerPeersAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeRouteServers(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeRouteServers(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeRouteServersAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeRouteServersAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result describeSecondaryInterfaces(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeSecondaryInterfacesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result describeSecondaryNetworks(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeSecondaryNetworksAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result describeSecondarySubnets(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeSecondarySubnetsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeSecurityGroupRules(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeSecurityGroupRules(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise describeSecurityGroupRulesAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise describeSecurityGroupRulesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result describeSecurityGroupVpcAssociations(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result describeSecurityGroupVpcAssociations(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1170,6 +1194,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise getCapacityManagerMetricDataAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getCapacityManagerMetricDataAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getCapacityManagerMetricDimensions(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getCapacityManagerMetricDimensions(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise getCapacityManagerMetricDimensionsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getCapacityManagerMetricDimensionsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result getCapacityManagerMonitoredTagKeys(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getCapacityManagerMonitoredTagKeysAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getCapacityReservationUsage(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getCapacityReservationUsage(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise getCapacityReservationUsageAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getCapacityReservationUsageAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getCoipPoolUsage(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getCoipPoolUsage(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1230,6 +1256,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise getManagedPrefixListAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getManagedPrefixListAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getManagedPrefixListEntries(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getManagedPrefixListEntries(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise getManagedPrefixListEntriesAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getManagedPrefixListEntriesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result getManagedResourceVisibility(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getManagedResourceVisibilityAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getNetworkInsightsAccessScopeAnalysisFindings(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getNetworkInsightsAccessScopeAnalysisFindings(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise getNetworkInsightsAccessScopeAnalysisFindingsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise getNetworkInsightsAccessScopeAnalysisFindingsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result getNetworkInsightsAccessScopeContent(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result getNetworkInsightsAccessScopeContent(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1334,6 +1362,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyIpamPolicyAllocationRulesAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyIpamPolicyAllocationRulesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyIpamPool(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyIpamPool(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyIpamPoolAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyIpamPoolAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result modifyIpamPoolAllocation(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise modifyIpamPoolAllocationAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyIpamPrefixListResolver(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyIpamPrefixListResolver(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyIpamPrefixListResolverAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyIpamPrefixListResolverAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyIpamPrefixListResolverTarget(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyIpamPrefixListResolverTarget(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1350,6 +1380,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyLocalGatewayRouteAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyLocalGatewayRouteAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyManagedPrefixList(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyManagedPrefixList(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyManagedPrefixListAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyManagedPrefixListAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result modifyManagedResourceVisibility(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise modifyManagedResourceVisibilityAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyPrivateDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyPrivateDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise modifyPrivateDnsNameOptionsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise modifyPrivateDnsNameOptionsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result modifyPublicIpDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result modifyPublicIpDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1438,6 +1470,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise registerTransitGatewayMulticastGroupSourcesAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise registerTransitGatewayMulticastGroupSourcesAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result rejectCapacityReservationBillingOwnership(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result rejectCapacityReservationBillingOwnership(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise rejectCapacityReservationBillingOwnershipAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise rejectCapacityReservationBillingOwnershipAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result rejectTransitGatewayClientVpnAttachment(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise rejectTransitGatewayClientVpnAttachmentAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result rejectTransitGatewayMulticastDomainAssociations(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result rejectTransitGatewayMulticastDomainAssociations(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise rejectTransitGatewayMulticastDomainAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise rejectTransitGatewayMulticastDomainAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result rejectTransitGatewayPeeringAttachment(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result rejectTransitGatewayPeeringAttachment(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
@ -1498,6 +1532,8 @@ use Aws\PresignUrlMiddleware;
|
||||||
* @method \GuzzleHttp\Promise\Promise unassignPrivateNatGatewayAddressAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise unassignPrivateNatGatewayAddressAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result unlockSnapshot(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result unlockSnapshot(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise unlockSnapshotAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise unlockSnapshotAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \Aws\Result updateCapacityManagerMonitoredTagKeys(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateCapacityManagerMonitoredTagKeysAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result updateCapacityManagerOrganizationsAccess(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result updateCapacityManagerOrganizationsAccess(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \GuzzleHttp\Promise\Promise updateCapacityManagerOrganizationsAccessAsync(array $args = []) (supported in versions 2016-11-15)
|
* @method \GuzzleHttp\Promise\Promise updateCapacityManagerOrganizationsAccessAsync(array $args = []) (supported in versions 2016-11-15)
|
||||||
* @method \Aws\Result updateInterruptibleCapacityReservationAllocation(array $args = []) (supported in versions 2016-11-15)
|
* @method \Aws\Result updateInterruptibleCapacityReservationAllocation(array $args = []) (supported in versions 2016-11-15)
|
||||||
|
|
|
||||||
26
vendor/aws/aws-sdk-php/src/Ecs/EcsClient.php
vendored
26
vendor/aws/aws-sdk-php/src/Ecs/EcsClient.php
vendored
|
|
@ -6,10 +6,14 @@ use Aws\AwsClient;
|
||||||
/**
|
/**
|
||||||
* This client is used to interact with **Amazon ECS**.
|
* This client is used to interact with **Amazon ECS**.
|
||||||
*
|
*
|
||||||
|
* @method \Aws\Result continueServiceDeployment(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise continueServiceDeploymentAsync(array $args = [])
|
||||||
* @method \Aws\Result createCapacityProvider(array $args = [])
|
* @method \Aws\Result createCapacityProvider(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createCapacityProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createCapacityProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result createCluster(array $args = [])
|
* @method \Aws\Result createCluster(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDaemon(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDaemonAsync(array $args = [])
|
||||||
* @method \Aws\Result createExpressGatewayService(array $args = [])
|
* @method \Aws\Result createExpressGatewayService(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createExpressGatewayServiceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createExpressGatewayServiceAsync(array $args = [])
|
||||||
* @method \Aws\Result createService(array $args = [])
|
* @method \Aws\Result createService(array $args = [])
|
||||||
|
|
@ -24,6 +28,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteCapacityProviderAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteCapacityProviderAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCluster(array $args = [])
|
* @method \Aws\Result deleteCluster(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDaemon(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDaemonAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDaemonTaskDefinition(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDaemonTaskDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteExpressGatewayService(array $args = [])
|
* @method \Aws\Result deleteExpressGatewayService(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteExpressGatewayServiceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteExpressGatewayServiceAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteService(array $args = [])
|
* @method \Aws\Result deleteService(array $args = [])
|
||||||
|
|
@ -42,6 +50,14 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeClustersAsync(array $args = [])
|
||||||
* @method \Aws\Result describeContainerInstances(array $args = [])
|
* @method \Aws\Result describeContainerInstances(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeContainerInstancesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeContainerInstancesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeDaemon(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeDaemonAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeDaemonDeployments(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeDaemonDeploymentsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeDaemonRevisions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeDaemonRevisionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeDaemonTaskDefinition(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeDaemonTaskDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result describeExpressGatewayService(array $args = [])
|
* @method \Aws\Result describeExpressGatewayService(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeExpressGatewayServiceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeExpressGatewayServiceAsync(array $args = [])
|
||||||
* @method \Aws\Result describeServiceDeployments(array $args = [])
|
* @method \Aws\Result describeServiceDeployments(array $args = [])
|
||||||
|
|
@ -70,6 +86,12 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = [])
|
||||||
* @method \Aws\Result listContainerInstances(array $args = [])
|
* @method \Aws\Result listContainerInstances(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listContainerInstancesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listContainerInstancesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDaemonDeployments(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDaemonDeploymentsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDaemonTaskDefinitions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDaemonTaskDefinitionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDaemons(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDaemonsAsync(array $args = [])
|
||||||
* @method \Aws\Result listServiceDeployments(array $args = [])
|
* @method \Aws\Result listServiceDeployments(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listServiceDeploymentsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listServiceDeploymentsAsync(array $args = [])
|
||||||
* @method \Aws\Result listServices(array $args = [])
|
* @method \Aws\Result listServices(array $args = [])
|
||||||
|
|
@ -94,6 +116,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise putClusterCapacityProvidersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putClusterCapacityProvidersAsync(array $args = [])
|
||||||
* @method \Aws\Result registerContainerInstance(array $args = [])
|
* @method \Aws\Result registerContainerInstance(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise registerContainerInstanceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise registerContainerInstanceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result registerDaemonTaskDefinition(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise registerDaemonTaskDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result registerTaskDefinition(array $args = [])
|
* @method \Aws\Result registerTaskDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise registerTaskDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise registerTaskDefinitionAsync(array $args = [])
|
||||||
* @method \Aws\Result runTask(array $args = [])
|
* @method \Aws\Result runTask(array $args = [])
|
||||||
|
|
@ -124,6 +148,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateContainerAgentAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateContainerAgentAsync(array $args = [])
|
||||||
* @method \Aws\Result updateContainerInstancesState(array $args = [])
|
* @method \Aws\Result updateContainerInstancesState(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateContainerInstancesStateAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateContainerInstancesStateAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateDaemon(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateDaemonAsync(array $args = [])
|
||||||
* @method \Aws\Result updateExpressGatewayService(array $args = [])
|
* @method \Aws\Result updateExpressGatewayService(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateExpressGatewayServiceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateExpressGatewayServiceAsync(array $args = [])
|
||||||
* @method \Aws\Result updateService(array $args = [])
|
* @method \Aws\Result updateService(array $args = [])
|
||||||
|
|
|
||||||
41
vendor/aws/aws-sdk-php/src/ElementalInference/ElementalInferenceClient.php
vendored
Normal file
41
vendor/aws/aws-sdk-php/src/ElementalInference/ElementalInferenceClient.php
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\ElementalInference;
|
||||||
|
|
||||||
|
use Aws\AwsClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This client is used to interact with the **AWS Elemental Inference** service.
|
||||||
|
* @method \Aws\Result associateFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise associateFeedAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createDictionary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createDictionaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createFeedAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteDictionary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteDictionaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteFeedAsync(array $args = [])
|
||||||
|
* @method \Aws\Result disassociateFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise disassociateFeedAsync(array $args = [])
|
||||||
|
* @method \Aws\Result exportDictionaryEntries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise exportDictionaryEntriesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDictionary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDictionaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getFeedAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listDictionaries(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listDictionariesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listFeeds(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listFeedsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateDictionary(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateDictionaryAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateFeed(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateFeedAsync(array $args = [])
|
||||||
|
*/
|
||||||
|
class ElementalInferenceClient extends AwsClient {}
|
||||||
9
vendor/aws/aws-sdk-php/src/ElementalInference/Exception/ElementalInferenceException.php
vendored
Normal file
9
vendor/aws/aws-sdk-php/src/ElementalInference/Exception/ElementalInferenceException.php
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\ElementalInference\Exception;
|
||||||
|
|
||||||
|
use Aws\Exception\AwsException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an error interacting with the **AWS Elemental Inference** service.
|
||||||
|
*/
|
||||||
|
class ElementalInferenceException extends AwsException {}
|
||||||
10
vendor/aws/aws-sdk-php/src/Emr/EmrClient.php
vendored
10
vendor/aws/aws-sdk-php/src/Emr/EmrClient.php
vendored
|
|
@ -58,6 +58,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getOnClusterAppUIPresignedURLAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getOnClusterAppUIPresignedURLAsync(array $args = [])
|
||||||
* @method \Aws\Result getPersistentAppUIPresignedURL(array $args = [])
|
* @method \Aws\Result getPersistentAppUIPresignedURL(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getPersistentAppUIPresignedURLAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getPersistentAppUIPresignedURLAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSessionEndpoint(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSessionEndpointAsync(array $args = [])
|
||||||
* @method \Aws\Result getStudioSessionMapping(array $args = [])
|
* @method \Aws\Result getStudioSessionMapping(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getStudioSessionMappingAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getStudioSessionMappingAsync(array $args = [])
|
||||||
* @method \Aws\Result listBootstrapActions(array $args = [])
|
* @method \Aws\Result listBootstrapActions(array $args = [])
|
||||||
|
|
@ -76,6 +80,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listReleaseLabelsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listReleaseLabelsAsync(array $args = [])
|
||||||
* @method \Aws\Result listSecurityConfigurations(array $args = [])
|
* @method \Aws\Result listSecurityConfigurations(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listSecurityConfigurationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listSecurityConfigurationsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listSessions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listSessionsAsync(array $args = [])
|
||||||
* @method \Aws\Result listSteps(array $args = [])
|
* @method \Aws\Result listSteps(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listStepsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listStepsAsync(array $args = [])
|
||||||
* @method \Aws\Result listStudioSessionMappings(array $args = [])
|
* @method \Aws\Result listStudioSessionMappings(array $args = [])
|
||||||
|
|
@ -118,10 +124,14 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise setVisibleToAllUsersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise setVisibleToAllUsersAsync(array $args = [])
|
||||||
* @method \Aws\Result startNotebookExecution(array $args = [])
|
* @method \Aws\Result startNotebookExecution(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise startNotebookExecutionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise startNotebookExecutionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result startSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise startSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result stopNotebookExecution(array $args = [])
|
* @method \Aws\Result stopNotebookExecution(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise stopNotebookExecutionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise stopNotebookExecutionAsync(array $args = [])
|
||||||
* @method \Aws\Result terminateJobFlows(array $args = [])
|
* @method \Aws\Result terminateJobFlows(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise terminateJobFlowsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise terminateJobFlowsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result terminateSession(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise terminateSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result updateStudio(array $args = [])
|
* @method \Aws\Result updateStudio(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateStudioAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateStudioAsync(array $args = [])
|
||||||
* @method \Aws\Result updateStudioSessionMapping(array $args = [])
|
* @method \Aws\Result updateStudioSessionMapping(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class EndpointDiscoveryMiddleware
|
||||||
private static $discoveryCooldown = 60;
|
private static $discoveryCooldown = 60;
|
||||||
|
|
||||||
private $args;
|
private $args;
|
||||||
private $client;
|
private \WeakReference $client;
|
||||||
private $config;
|
private $config;
|
||||||
private $discoveryTimes = [];
|
private $discoveryTimes = [];
|
||||||
private $nextHandler;
|
private $nextHandler;
|
||||||
|
|
@ -32,7 +32,7 @@ class EndpointDiscoveryMiddleware
|
||||||
$args,
|
$args,
|
||||||
$config
|
$config
|
||||||
) {
|
) {
|
||||||
return function (callable $handler) use (
|
return static function (callable $handler) use (
|
||||||
$client,
|
$client,
|
||||||
$args,
|
$args,
|
||||||
$config
|
$config
|
||||||
|
|
@ -53,7 +53,7 @@ class EndpointDiscoveryMiddleware
|
||||||
$config
|
$config
|
||||||
) {
|
) {
|
||||||
$this->nextHandler = $handler;
|
$this->nextHandler = $handler;
|
||||||
$this->client = $client;
|
$this->client = \WeakReference::create($client);
|
||||||
$this->args = $args;
|
$this->args = $args;
|
||||||
$this->service = $client->getApi();
|
$this->service = $client->getApi();
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
|
|
@ -91,7 +91,7 @@ class EndpointDiscoveryMiddleware
|
||||||
$identifiers = $this->getIdentifiers($op);
|
$identifiers = $this->getIdentifiers($op);
|
||||||
|
|
||||||
$cacheKey = $this->getCacheKey(
|
$cacheKey = $this->getCacheKey(
|
||||||
$this->client->getCredentials()->wait(),
|
$this->client->get()->getCredentials()->wait(),
|
||||||
$cmd,
|
$cmd,
|
||||||
$identifiers
|
$identifiers
|
||||||
);
|
);
|
||||||
|
|
@ -178,7 +178,7 @@ class EndpointDiscoveryMiddleware
|
||||||
) {
|
) {
|
||||||
$discCmd = $this->getDiscoveryCommand($cmd, $identifiers);
|
$discCmd = $this->getDiscoveryCommand($cmd, $identifiers);
|
||||||
$this->discoveryTimes[$cacheKey] = time();
|
$this->discoveryTimes[$cacheKey] = time();
|
||||||
$result = $this->client->execute($discCmd);
|
$result = $this->client->get()->execute($discCmd);
|
||||||
|
|
||||||
if (isset($result['Endpoints'])) {
|
if (isset($result['Endpoints'])) {
|
||||||
$endpointData = [];
|
$endpointData = [];
|
||||||
|
|
@ -237,7 +237,7 @@ class EndpointDiscoveryMiddleware
|
||||||
$params['Identifiers'][$identifier] = $cmd[$identifier];
|
$params['Identifiers'][$identifier] = $cmd[$identifier];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$command = $this->client->getCommand($endpointOperation, $params);
|
$command = $this->client->get()->getCommand($endpointOperation, $params);
|
||||||
$command->getHandlerList()->appendBuild(
|
$command->getHandlerList()->appendBuild(
|
||||||
Middleware::mapRequest(function (RequestInterface $r) {
|
Middleware::mapRequest(function (RequestInterface $r) {
|
||||||
return $r->withHeader(
|
return $r->withHeader(
|
||||||
|
|
|
||||||
79
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddEvaluator.php
vendored
Normal file
79
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddEvaluator.php
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aws\EndpointV2\Bdd;
|
||||||
|
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
|
||||||
|
use Aws\Exception\UnresolvedEndpointException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Walks an endpoint BDD to produce a {@see RulesetEndpoint} or throw an
|
||||||
|
* {@see UnresolvedEndpointException}.
|
||||||
|
*
|
||||||
|
* The traversal follows the smithy rules-engine reference algorithm:
|
||||||
|
* each reference is either a node pointer (optionally complemented with a
|
||||||
|
* negative sign), one of the two terminals (`1` / `-1`), or a result pointer
|
||||||
|
* (offset by {@see self::RESULT_OFFSET}). Nodes are laid out as contiguous
|
||||||
|
* triples `[conditionIndex, highRef, lowRef]` inside the ruleset's flat
|
||||||
|
* node array.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BddEvaluator
|
||||||
|
{
|
||||||
|
private const TERMINAL_TRUE = 1;
|
||||||
|
private const TERMINAL_FALSE = -1;
|
||||||
|
private const RESULT_OFFSET = 100_000_000;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
private readonly BddRuleset $ruleset,
|
||||||
|
private readonly BddResultResolver $resultResolver
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves an endpoint from the BDD for the given input parameters.
|
||||||
|
*
|
||||||
|
* @throws UnresolvedEndpointException when resolution reaches the no-match
|
||||||
|
* terminal or an error result rule.
|
||||||
|
*/
|
||||||
|
public function evaluate(array $inputParameters): RulesetEndpoint
|
||||||
|
{
|
||||||
|
$this->ruleset->applyParameterDefaults($inputParameters);
|
||||||
|
|
||||||
|
$nodes = $this->ruleset->getNodes();
|
||||||
|
$conditions = $this->ruleset->getConditions();
|
||||||
|
$library = $this->ruleset->standardLibrary;
|
||||||
|
|
||||||
|
$ref = $this->ruleset->getRoot();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if ($ref >= self::RESULT_OFFSET) {
|
||||||
|
return $this->resultResolver->resolve(
|
||||||
|
$ref - self::RESULT_OFFSET,
|
||||||
|
$inputParameters
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ref === self::TERMINAL_TRUE || $ref === self::TERMINAL_FALSE) {
|
||||||
|
// Throws exception
|
||||||
|
$this->resultResolver->resolveNoMatch($inputParameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
$isComplement = $ref < 0;
|
||||||
|
$base = ($isComplement ? -$ref : $ref) * 3 - 3;
|
||||||
|
|
||||||
|
$condIndex = $nodes[$base];
|
||||||
|
$value = $library->callFunction(
|
||||||
|
$conditions[$condIndex],
|
||||||
|
$inputParameters
|
||||||
|
);
|
||||||
|
|
||||||
|
$condResult = ($value !== null && $value !== false);
|
||||||
|
// Complement edges invert the high/low selection without
|
||||||
|
// duplicating nodes in the BDD.
|
||||||
|
$ref = ($condResult xor $isComplement)
|
||||||
|
? $nodes[$base + 1]
|
||||||
|
: $nodes[$base + 2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
68
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddNodeDecoder.php
vendored
Normal file
68
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddNodeDecoder.php
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aws\EndpointV2\Bdd;
|
||||||
|
|
||||||
|
use Aws\Exception\UnresolvedEndpointException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes the base64 `nodes` string shipped in the endpointBdd trait into a
|
||||||
|
* flat array of signed 32-bit integers. Every node occupies three slots:
|
||||||
|
* `[conditionIndex, highRef, lowRef]`.
|
||||||
|
*
|
||||||
|
* The flat representation is intentional — indexing into an int array is
|
||||||
|
* cheaper per step than materialising a node object for every traversal,
|
||||||
|
* and the evaluator hot loop references thousands of slots for a large BDD.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BddNodeDecoder
|
||||||
|
{
|
||||||
|
private const BYTES_PER_NODE = 12;
|
||||||
|
private const INT_32_MAX = 2147483647;
|
||||||
|
private const INT_32_OFFSET = 4294967296;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes `$encoded` and verifies that the byte count matches
|
||||||
|
* `$expectedNodeCount`. Returns a flat int array of length
|
||||||
|
* `3 * $expectedNodeCount`.
|
||||||
|
*
|
||||||
|
* @throws UnresolvedEndpointException when the payload is not valid base64
|
||||||
|
* or its length does not match the declared node count.
|
||||||
|
*/
|
||||||
|
public static function decode(string $encoded, int $expectedNodeCount): array
|
||||||
|
{
|
||||||
|
$bytes = base64_decode($encoded, true);
|
||||||
|
if ($bytes === false) {
|
||||||
|
throw new UnresolvedEndpointException(
|
||||||
|
'Endpoint BDD nodes are not valid base64.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$expectedBytes = $expectedNodeCount * self::BYTES_PER_NODE;
|
||||||
|
if (strlen($bytes) !== $expectedBytes) {
|
||||||
|
throw new UnresolvedEndpointException(sprintf(
|
||||||
|
'Endpoint BDD node payload is %d bytes but %d were expected'
|
||||||
|
. ' for %d nodes.',
|
||||||
|
strlen($bytes),
|
||||||
|
$expectedBytes,
|
||||||
|
$expectedNodeCount
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($expectedNodeCount === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// unpack() with 'N' returns unsigned 32-bit big-endian ints. We fold
|
||||||
|
// values above INT_32_MAX back into signed space to match the trait.
|
||||||
|
$unsigned = unpack('N*', $bytes);
|
||||||
|
$flat = [];
|
||||||
|
foreach ($unsigned as $value) {
|
||||||
|
$flat[] = $value > self::INT_32_MAX
|
||||||
|
? $value - self::INT_32_OFFSET
|
||||||
|
: $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $flat;
|
||||||
|
}
|
||||||
|
}
|
||||||
140
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddResultResolver.php
vendored
Normal file
140
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddResultResolver.php
vendored
Normal file
|
|
@ -0,0 +1,140 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aws\EndpointV2\Bdd;
|
||||||
|
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetStandardLibrary;
|
||||||
|
use Aws\Exception\UnresolvedEndpointException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns a BDD result reference into a {@see RulesetEndpoint} or throws the
|
||||||
|
* appropriate {@see UnresolvedEndpointException}. The behavior matches the
|
||||||
|
* tree evaluator's endpoint and error rules so downstream middleware cannot
|
||||||
|
* tell which evaluator produced the result.
|
||||||
|
*
|
||||||
|
* Result index `0` is reserved for the implicit no-match rule defined by the
|
||||||
|
* trait. The BDD may also reach a no-match via either terminal reference,
|
||||||
|
* which is handled by {@see resolveNoMatch()}.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BddResultResolver
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private readonly BddRuleset $ruleset
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws UnresolvedEndpointException
|
||||||
|
*/
|
||||||
|
public function resolve(int $resultIndex, array $inputParameters): RulesetEndpoint
|
||||||
|
{
|
||||||
|
if ($resultIndex === 0) {
|
||||||
|
$this->resolveNoMatch($inputParameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// The serialized `results` array omits the implicit no-match rule,
|
||||||
|
// so defined result index N lives at array offset N - 1.
|
||||||
|
$results = $this->ruleset->getResults();
|
||||||
|
$result = $results[$resultIndex - 1] ?? null;
|
||||||
|
|
||||||
|
if ($result === null) {
|
||||||
|
throw new UnresolvedEndpointException(sprintf(
|
||||||
|
'Endpoint BDD referenced unknown result index %d.',
|
||||||
|
$resultIndex
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($result['error'])) {
|
||||||
|
$this->throwError($result, $inputParameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($result['endpoint'])) {
|
||||||
|
throw new UnresolvedEndpointException(
|
||||||
|
'Endpoint BDD result is missing an `endpoint` or `error` block.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->buildEndpoint($result['endpoint'], $inputParameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws UnresolvedEndpointException
|
||||||
|
*/
|
||||||
|
public function resolveNoMatch(array $inputParameters): never
|
||||||
|
{
|
||||||
|
throw new UnresolvedEndpointException(
|
||||||
|
'Unable to resolve an endpoint using the provider arguments: '
|
||||||
|
. json_encode($inputParameters)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws UnresolvedEndpointException
|
||||||
|
*/
|
||||||
|
private function throwError(array $result, array $inputParameters): never
|
||||||
|
{
|
||||||
|
$message = $this->ruleset->standardLibrary->resolveValue(
|
||||||
|
$result['error'],
|
||||||
|
$inputParameters
|
||||||
|
);
|
||||||
|
throw new UnresolvedEndpointException((string) $message);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function buildEndpoint(array $endpoint, array $inputParameters): RulesetEndpoint
|
||||||
|
{
|
||||||
|
$library = $this->ruleset->standardLibrary;
|
||||||
|
|
||||||
|
$url = $library->resolveValue($endpoint['url'], $inputParameters);
|
||||||
|
$properties = isset($endpoint['properties'])
|
||||||
|
? $this->resolveProperties($endpoint['properties'], $inputParameters, $library)
|
||||||
|
: null;
|
||||||
|
$headers = isset($endpoint['headers'])
|
||||||
|
? $this->resolveHeaders($endpoint['headers'], $inputParameters, $library)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
return new RulesetEndpoint($url, $properties, $headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function resolveProperties(
|
||||||
|
$properties,
|
||||||
|
array $inputParameters,
|
||||||
|
RulesetStandardLibrary $library
|
||||||
|
) {
|
||||||
|
if (is_array($properties)) {
|
||||||
|
$resolved = [];
|
||||||
|
foreach ($properties as $key => $value) {
|
||||||
|
$resolved[$key] = $this->resolveProperties(
|
||||||
|
$value,
|
||||||
|
$inputParameters,
|
||||||
|
$library
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $resolved;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inline some of the isTemplate check here to avoid unnecessary resolution attempts on simple strings
|
||||||
|
if (is_string($properties) && str_contains($properties, '{') && $library->isTemplate($properties)) {
|
||||||
|
return $library->resolveTemplateString($properties, $inputParameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function resolveHeaders(
|
||||||
|
array $headers,
|
||||||
|
array $inputParameters,
|
||||||
|
RulesetStandardLibrary $library
|
||||||
|
): array {
|
||||||
|
$resolved = [];
|
||||||
|
foreach ($headers as $name => $values) {
|
||||||
|
$resolvedValues = [];
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$resolvedValues[] = $library->resolveValue($value, $inputParameters);
|
||||||
|
}
|
||||||
|
$resolved[$name] = $resolvedValues;
|
||||||
|
}
|
||||||
|
return $resolved;
|
||||||
|
}
|
||||||
|
}
|
||||||
127
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddRuleset.php
vendored
Normal file
127
vendor/aws/aws-sdk-php/src/EndpointV2/Bdd/BddRuleset.php
vendored
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aws\EndpointV2\Bdd;
|
||||||
|
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetParameter;
|
||||||
|
use Aws\EndpointV2\Ruleset\RulesetStandardLibrary;
|
||||||
|
use Aws\Exception\UnresolvedEndpointException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parsed form of the `smithy.rules#endpointBdd` trait. Reuses
|
||||||
|
* {@see RulesetParameter} so parameter coercion and validation behave
|
||||||
|
* identically to the tree-based ruleset.
|
||||||
|
*
|
||||||
|
* Instances are immutable after construction. A single instance is shared
|
||||||
|
* across all requests for a given service/client pair.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BddRuleset
|
||||||
|
{
|
||||||
|
private const REQUIRED_FIELDS = [
|
||||||
|
'conditions', 'results', 'nodes', 'root', 'nodeCount'
|
||||||
|
];
|
||||||
|
|
||||||
|
/** @var array<string, RulesetParameter> */
|
||||||
|
private array $parameters;
|
||||||
|
|
||||||
|
/** @var array<int, array> */
|
||||||
|
private array $conditions;
|
||||||
|
|
||||||
|
/** @var array<int, array> */
|
||||||
|
private array $results;
|
||||||
|
|
||||||
|
/** @var int[] Flat triples: [condIdx, hi, lo, condIdx, hi, lo, ...] */
|
||||||
|
private array $nodes;
|
||||||
|
|
||||||
|
private int $root;
|
||||||
|
|
||||||
|
public readonly RulesetStandardLibrary $standardLibrary;
|
||||||
|
|
||||||
|
public function __construct(array $definition, array $partitions)
|
||||||
|
{
|
||||||
|
foreach (self::REQUIRED_FIELDS as $key) {
|
||||||
|
if (!array_key_exists($key, $definition)) {
|
||||||
|
throw new UnresolvedEndpointException(
|
||||||
|
"Endpoint BDD definition is missing `{$key}`."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->parameters = $this->buildParameters($definition['parameters'] ?? []);
|
||||||
|
$this->conditions = $definition['conditions'];
|
||||||
|
$this->results = $definition['results'];
|
||||||
|
$this->root = (int) $definition['root'];
|
||||||
|
$nodeCount = $definition['nodeCount'];
|
||||||
|
$this->nodes = BddNodeDecoder::decode(
|
||||||
|
(string) $definition['nodes'],
|
||||||
|
$nodeCount
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->standardLibrary = new RulesetStandardLibrary($partitions);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, RulesetParameter>
|
||||||
|
*/
|
||||||
|
public function getParameters(): array
|
||||||
|
{
|
||||||
|
return $this->parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<int, array>
|
||||||
|
*/
|
||||||
|
public function getConditions(): array
|
||||||
|
{
|
||||||
|
return $this->conditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<int, array>
|
||||||
|
*/
|
||||||
|
public function getResults(): array
|
||||||
|
{
|
||||||
|
return $this->results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int[]
|
||||||
|
*/
|
||||||
|
public function getNodes(): array
|
||||||
|
{
|
||||||
|
return $this->nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRoot(): int
|
||||||
|
{
|
||||||
|
return $this->root;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies parameter defaults and type checks. Mirrors the tree ruleset so
|
||||||
|
* services migrating from one shape to the other see identical input
|
||||||
|
* validation behavior.
|
||||||
|
*/
|
||||||
|
public function applyParameterDefaults(array &$inputParameters): void
|
||||||
|
{
|
||||||
|
foreach ($this->parameters as $name => $param) {
|
||||||
|
$value = $inputParameters[$name] ?? null;
|
||||||
|
|
||||||
|
if (is_null($value) && !is_null($param->getDefault())) {
|
||||||
|
$inputParameters[$name] = $param->getDefault();
|
||||||
|
} elseif (!is_null($value)) {
|
||||||
|
$param->validateInputParam($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function buildParameters(array $parameters): array
|
||||||
|
{
|
||||||
|
$built = [];
|
||||||
|
foreach ($parameters as $name => $definition) {
|
||||||
|
$built[$name] = new RulesetParameter($name, $definition);
|
||||||
|
}
|
||||||
|
return $built;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,17 +2,63 @@
|
||||||
|
|
||||||
namespace Aws\EndpointV2;
|
namespace Aws\EndpointV2;
|
||||||
|
|
||||||
|
use Aws\EndpointV2\Bdd\BddRuleset;
|
||||||
|
use Aws\EndpointV2\Ruleset\Ruleset;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides Endpoint-related artifacts used for endpoint resolution
|
* Provides Endpoint-related artifacts used for endpoint resolution
|
||||||
* and testing.
|
* and testing.
|
||||||
*/
|
*/
|
||||||
class EndpointDefinitionProvider
|
class EndpointDefinitionProvider
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Returns a parsed ruleset for the service — either a {@see BddRuleset}
|
||||||
|
* if a compiled BDD is shipped, or a {@see Ruleset} otherwise. Selection
|
||||||
|
* is driven by which file is packaged, so callers get a typed object
|
||||||
|
* rather than having to inspect the raw array.
|
||||||
|
*
|
||||||
|
* @param $service
|
||||||
|
* @param $apiVersion
|
||||||
|
* @param array $partitions
|
||||||
|
* @param null $baseDir
|
||||||
|
*
|
||||||
|
* @return Ruleset|BddRuleset
|
||||||
|
*/
|
||||||
|
public static function getParsedRuleset(
|
||||||
|
$service,
|
||||||
|
$apiVersion,
|
||||||
|
array $partitions,
|
||||||
|
$baseDir = null
|
||||||
|
): BddRuleset|Ruleset
|
||||||
|
{
|
||||||
|
$bdd = self::getEndpointBdd($service, $apiVersion, $baseDir, false);
|
||||||
|
if ($bdd !== null) {
|
||||||
|
return new BddRuleset($bdd, $partitions);
|
||||||
|
}
|
||||||
|
return new Ruleset(
|
||||||
|
self::getEndpointRuleset($service, $apiVersion, $baseDir),
|
||||||
|
$partitions
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getEndpointRuleset($service, $apiVersion, $baseDir = null)
|
public static function getEndpointRuleset($service, $apiVersion, $baseDir = null)
|
||||||
{
|
{
|
||||||
return self::getData($service, $apiVersion, 'ruleset', $baseDir);
|
return self::getData($service, $apiVersion, 'ruleset', $baseDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the parsed endpoint BDD for a service, or null when
|
||||||
|
* `$throwIfMissing` is false and no BDD file is packaged.
|
||||||
|
*/
|
||||||
|
public static function getEndpointBdd(
|
||||||
|
$service,
|
||||||
|
$apiVersion,
|
||||||
|
$baseDir = null,
|
||||||
|
$throwIfMissing = true
|
||||||
|
) {
|
||||||
|
return self::getData($service, $apiVersion, 'bdd', $baseDir, $throwIfMissing);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getEndpointTests($service, $apiVersion, $baseDir = null)
|
public static function getEndpointTests($service, $apiVersion, $baseDir = null)
|
||||||
{
|
{
|
||||||
return self::getData($service, $apiVersion, 'tests', $baseDir);
|
return self::getData($service, $apiVersion, 'tests', $baseDir);
|
||||||
|
|
@ -30,11 +76,14 @@ class EndpointDefinitionProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getData($service, $apiVersion, $type, $baseDir)
|
private static function getData($service, $apiVersion, $type, $baseDir, $throwIfMissing = true)
|
||||||
{
|
{
|
||||||
$basePath = $baseDir ? $baseDir : __DIR__ . '/../data';
|
$basePath = $baseDir ?: __DIR__ . '/../data';
|
||||||
$serviceDir = $basePath . "/{$service}";
|
$serviceDir = $basePath . "/{$service}";
|
||||||
if (!is_dir($serviceDir)) {
|
if (!is_dir($serviceDir)) {
|
||||||
|
if (!$throwIfMissing) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
throw new \InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
'Invalid service name.'
|
'Invalid service name.'
|
||||||
);
|
);
|
||||||
|
|
@ -46,21 +95,39 @@ class EndpointDefinitionProvider
|
||||||
|
|
||||||
$rulesetPath = $serviceDir . '/' . $apiVersion;
|
$rulesetPath = $serviceDir . '/' . $apiVersion;
|
||||||
if (!is_dir($rulesetPath)) {
|
if (!is_dir($rulesetPath)) {
|
||||||
|
if (!$throwIfMissing) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
throw new \InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
'Invalid api version.'
|
'Invalid api version.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$fileName = $type === 'tests' ? '/endpoint-tests-1' : '/endpoint-rule-set-1';
|
|
||||||
|
$fileName = self::getFileName($type);
|
||||||
|
|
||||||
if (file_exists($rulesetPath . $fileName . '.json.php')) {
|
if (file_exists($rulesetPath . $fileName . '.json.php')) {
|
||||||
return require($rulesetPath . $fileName . '.json.php');
|
return require($rulesetPath . $fileName . '.json.php');
|
||||||
} elseif (file_exists($rulesetPath . $fileName . '.json')) {
|
} elseif (file_exists($rulesetPath . $fileName . '.json')) {
|
||||||
return json_decode(file_get_contents($rulesetPath . $fileName . '.json'), true);
|
return json_decode(file_get_contents($rulesetPath . $fileName . '.json'), true);
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
if (!$throwIfMissing) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
throw new \InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
'Specified ' . $type . ' endpoint file for ' . $service . ' with api version ' . $apiVersion . ' does not exist.'
|
'Specified ' . $type . ' endpoint file for ' . $service
|
||||||
|
. ' with api version ' . $apiVersion . ' does not exist.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function getFileName($type): string
|
||||||
|
{
|
||||||
|
return match ($type) {
|
||||||
|
'tests' => '/endpoint-tests-1',
|
||||||
|
'bdd' => '/endpoint-bdd',
|
||||||
|
default => '/endpoint-rule-set-1',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getLatest($service)
|
private static function getLatest($service)
|
||||||
|
|
|
||||||
|
|
@ -2,32 +2,75 @@
|
||||||
|
|
||||||
namespace Aws\EndpointV2;
|
namespace Aws\EndpointV2;
|
||||||
|
|
||||||
|
use Aws\EndpointV2\Bdd\BddEvaluator;
|
||||||
|
use Aws\EndpointV2\Bdd\BddResultResolver;
|
||||||
|
use Aws\EndpointV2\Bdd\BddRuleset;
|
||||||
use Aws\EndpointV2\Ruleset\Ruleset;
|
use Aws\EndpointV2\Ruleset\Ruleset;
|
||||||
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
|
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
|
||||||
use Aws\Exception\UnresolvedEndpointException;
|
use Aws\Exception\UnresolvedEndpointException;
|
||||||
use Aws\LruArrayCache;
|
use Aws\LruArrayCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a service's Ruleset and client-provided input parameters, provides
|
* Given a service's ruleset and client-provided input parameters, provides
|
||||||
* either an object reflecting the properties of a resolved endpoint,
|
* either an object reflecting the properties of a resolved endpoint,
|
||||||
* or throws an error.
|
* or throws an error.
|
||||||
|
*
|
||||||
|
* Supports both the classic decision tree ruleset (`endpointRuleSet` trait)
|
||||||
|
* and the binary decision diagram ruleset (`endpointBdd` trait). A raw
|
||||||
|
* definition array is always interpreted as a tree ruleset; to use a BDD,
|
||||||
|
* construct a {@see BddRuleset} and hand it in directly.
|
||||||
*/
|
*/
|
||||||
class EndpointProviderV2
|
class EndpointProviderV2
|
||||||
{
|
{
|
||||||
/** @var Ruleset */
|
/** @var Ruleset|null */
|
||||||
private $ruleset;
|
private $ruleset;
|
||||||
|
|
||||||
|
/** @var BddRuleset|null */
|
||||||
|
private $bddRuleset;
|
||||||
|
|
||||||
|
/** @var BddEvaluator|null */
|
||||||
|
private $bddEvaluator;
|
||||||
|
|
||||||
/** @var LruArrayCache */
|
/** @var LruArrayCache */
|
||||||
private $cache;
|
private $cache;
|
||||||
|
|
||||||
public function __construct(array $ruleset, array $partitions)
|
/**
|
||||||
|
* @param array|Ruleset|BddRuleset $ruleset A parsed ruleset instance, or
|
||||||
|
* a raw tree ruleset array from the service model.
|
||||||
|
* @param array $partitions AWS partitions data. Ignored when $ruleset is
|
||||||
|
* already a parsed instance, since the instance carries its own
|
||||||
|
* partition data.
|
||||||
|
*/
|
||||||
|
public function __construct($ruleset, array $partitions)
|
||||||
{
|
{
|
||||||
|
if ($ruleset instanceof BddRuleset) {
|
||||||
|
$this->bddRuleset = $ruleset;
|
||||||
|
$this->bddEvaluator = new BddEvaluator(
|
||||||
|
$ruleset,
|
||||||
|
new BddResultResolver($ruleset)
|
||||||
|
);
|
||||||
|
} elseif ($ruleset instanceof Ruleset) {
|
||||||
|
$this->ruleset = $ruleset;
|
||||||
|
} elseif (is_array($ruleset)) {
|
||||||
$this->ruleset = new Ruleset($ruleset, $partitions);
|
$this->ruleset = new Ruleset($ruleset, $partitions);
|
||||||
|
} else {
|
||||||
|
throw new \InvalidArgumentException(
|
||||||
|
'EndpointProviderV2 expects an array, Ruleset, or BddRuleset'
|
||||||
|
. ' but received ' . (is_object($ruleset)
|
||||||
|
? get_class($ruleset)
|
||||||
|
: gettype($ruleset))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$this->cache = new LruArrayCache(100);
|
$this->cache = new LruArrayCache(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Ruleset
|
* Returns the parsed tree ruleset for services using the legacy
|
||||||
|
* `endpointRuleSet` trait. Returns null when the provider was built from
|
||||||
|
* an `endpointBdd` trait.
|
||||||
|
*
|
||||||
|
* @return Ruleset|null
|
||||||
*/
|
*/
|
||||||
public function getRuleset()
|
public function getRuleset()
|
||||||
{
|
{
|
||||||
|
|
@ -35,8 +78,17 @@ class EndpointProviderV2
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a Ruleset and input parameters, determines the correct endpoint
|
* Returns the parsed BDD ruleset for services using the `endpointBdd`
|
||||||
* or an error to be thrown for a given request.
|
* trait, or null when the provider was built from a tree ruleset.
|
||||||
|
*/
|
||||||
|
public function getBddRuleset(): ?BddRuleset
|
||||||
|
{
|
||||||
|
return $this->bddRuleset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given input parameters, determines the correct endpoint or an error
|
||||||
|
* to be thrown for a given request.
|
||||||
*
|
*
|
||||||
* @return RulesetEndpoint
|
* @return RulesetEndpoint
|
||||||
* @throws UnresolvedEndpointException
|
* @throws UnresolvedEndpointException
|
||||||
|
|
@ -50,13 +102,19 @@ class EndpointProviderV2
|
||||||
return $match;
|
return $match;
|
||||||
}
|
}
|
||||||
|
|
||||||
$endpoint = $this->ruleset->evaluate($inputParameters);
|
$endpoint = $this->bddEvaluator !== null
|
||||||
|
? $this->bddEvaluator->evaluate($inputParameters)
|
||||||
|
: $this->ruleset->evaluate($inputParameters);
|
||||||
|
|
||||||
|
// This condition just applies to endpoint resolution
|
||||||
|
// through the decision tree evaluation process.
|
||||||
if ($endpoint === false) {
|
if ($endpoint === false) {
|
||||||
throw new UnresolvedEndpointException(
|
throw new UnresolvedEndpointException(
|
||||||
'Unable to resolve an endpoint using the provider arguments: '
|
'Unable to resolve an endpoint using the provider arguments: '
|
||||||
. json_encode($inputParameters)
|
. json_encode($inputParameters)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->cache->set($hashedParams, $endpoint);
|
$this->cache->set($hashedParams, $endpoint);
|
||||||
|
|
||||||
return $endpoint;
|
return $endpoint;
|
||||||
|
|
@ -66,4 +124,16 @@ class EndpointProviderV2
|
||||||
{
|
{
|
||||||
return md5(serialize($inputParameters));
|
return md5(serialize($inputParameters));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getActiveParameters(): array
|
||||||
|
{
|
||||||
|
if ($this->bddRuleset !== null) {
|
||||||
|
return $this->bddRuleset->getParameters();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->ruleset->getParameters();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ class EndpointV2Middleware
|
||||||
*/
|
*/
|
||||||
private function resolveArgs(array $commandArgs, Operation $operation): array
|
private function resolveArgs(array $commandArgs, Operation $operation): array
|
||||||
{
|
{
|
||||||
$rulesetParams = $this->endpointProvider->getRuleset()->getParameters();
|
$rulesetParams = $this->endpointProvider->getActiveParameters();
|
||||||
|
|
||||||
if (isset($rulesetParams[self::ACCOUNT_ID_PARAM])
|
if (isset($rulesetParams[self::ACCOUNT_ID_PARAM])
|
||||||
&& isset($rulesetParams[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM])) {
|
&& isset($rulesetParams[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM])) {
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,9 @@ class RulesetStandardLibrary
|
||||||
. 1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]
|
. 1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]
|
||||||
. {1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]
|
. {1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]
|
||||||
. |1{0,1}[0-9]){0,1}[0-9])/';
|
. |1{0,1}[0-9]){0,1}[0-9])/';
|
||||||
const TEMPLATE_ESCAPE_RE = '/{\{\s*(.*?)\s*\}\}/';
|
const TEMPLATE_SEARCH_RE = '/\{\{.*?\}\}|\{[a-zA-Z0-9_#]+\}/';
|
||||||
const TEMPLATE_SEARCH_RE = '/\{[a-zA-Z#]+\}/';
|
const TEMPLATE_PARSE_RE = '/\{\{\s*([^{}]*?)\s*\}\}|\{([a-zA-Z0-9_]+(?:#[a-zA-Z0-9_]+)*)\}/';
|
||||||
const TEMPLATE_PARSE_RE = '#\{((?>[^\{\}]+)|(?R))*\}#x';
|
|
||||||
const HOST_LABEL_RE = '/^(?!-)[a-zA-Z\d-]{1,63}(?<!-)$/';
|
const HOST_LABEL_RE = '/^(?!-)[a-zA-Z\d-]{1,63}(?<!-)$/';
|
||||||
|
|
||||||
private $partitions;
|
private $partitions;
|
||||||
|
|
||||||
public function __construct($partitions)
|
public function __construct($partitions)
|
||||||
|
|
@ -181,11 +179,11 @@ class RulesetStandardLibrary
|
||||||
|
|
||||||
$urlInfo = [];
|
$urlInfo = [];
|
||||||
$urlInfo['scheme'] = $parsed['scheme'];
|
$urlInfo['scheme'] = $parsed['scheme'];
|
||||||
$urlInfo['authority'] = isset($parsed['host']) ? $parsed['host'] : '';
|
$urlInfo['authority'] = $parsed['host'] ?? '';
|
||||||
if (isset($parsed['port'])) {
|
if (isset($parsed['port'])) {
|
||||||
$urlInfo['authority'] = $urlInfo['authority'] . ":" . $parsed['port'];
|
$urlInfo['authority'] = $urlInfo['authority'] . ":" . $parsed['port'];
|
||||||
}
|
}
|
||||||
$urlInfo['path'] = isset($parsed['path']) ? $parsed['path'] : '';
|
$urlInfo['path'] = $parsed['path'] ?? '';
|
||||||
$urlInfo['normalizedPath'] = !empty($parsed['path'])
|
$urlInfo['normalizedPath'] = !empty($parsed['path'])
|
||||||
? rtrim($urlInfo['path'] ?: '', '/' . "/") . '/'
|
? rtrim($urlInfo['path'] ?: '', '/' . "/") . '/'
|
||||||
: '/';
|
: '/';
|
||||||
|
|
@ -229,34 +227,37 @@ class RulesetStandardLibrary
|
||||||
*/
|
*/
|
||||||
public function parseArn($arnString)
|
public function parseArn($arnString)
|
||||||
{
|
{
|
||||||
if (is_null($arnString)
|
if (!is_string($arnString)
|
||||||
|| substr( $arnString, 0, 3 ) !== "arn"
|
|| strncmp($arnString, 'arn', 3) !== 0
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$arn = [];
|
|
||||||
$parts = explode(':', $arnString, 6);
|
$parts = explode(':', $arnString, 6);
|
||||||
if (sizeof($parts) < 6) {
|
if (count($parts) < 6) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$arn['partition'] = isset($parts[1]) ? $parts[1] : null;
|
$partition = $parts[1];
|
||||||
$arn['service'] = isset($parts[2]) ? $parts[2] : null;
|
$service = $parts[2];
|
||||||
$arn['region'] = isset($parts[3]) ? $parts[3] : null;
|
$region = $parts[3];
|
||||||
$arn['accountId'] = isset($parts[4]) ? $parts[4] : null;
|
$accountId = $parts[4];
|
||||||
$arn['resourceId'] = isset($parts[5]) ? $parts[5] : null;
|
$resource = $parts[5];
|
||||||
|
|
||||||
if (empty($arn['partition'])
|
if ($partition === ''
|
||||||
|| empty($arn['service'])
|
|| $service === ''
|
||||||
|| empty($arn['resourceId'])
|
|| $resource === ''
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
$resource = $arn['resourceId'];
|
|
||||||
$arn['resourceId'] = preg_split("/[:\/]/", $resource);
|
|
||||||
|
|
||||||
return $arn;
|
return [
|
||||||
|
'partition' => $partition,
|
||||||
|
'service' => $service,
|
||||||
|
'region' => $region,
|
||||||
|
'accountId' => $accountId,
|
||||||
|
'resourceId' => preg_split("/[:\/]/", $resource),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -284,6 +285,61 @@ class RulesetStandardLibrary
|
||||||
return $partitions['partitions'][0]['outputs'];
|
return $partitions['partitions'][0]['outputs'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first non-null argument, or null if every argument is null.
|
||||||
|
* Mirrors the standard library `coalesce` function and accepts any number
|
||||||
|
* of already-resolved values.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function coalesce(...$values)
|
||||||
|
{
|
||||||
|
foreach ($values as $value) {
|
||||||
|
if (!is_null($value)) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Splits a string on a delimiter up to an optional limit, returning an
|
||||||
|
* array of string parts. Mirrors the smithy `split` function: a `null` or
|
||||||
|
* `0` limit means "no limit", a positive limit caps the number of parts,
|
||||||
|
* and any other input (non-string, empty delimiter, negative limit)
|
||||||
|
* returns null so downstream conditions treat it as "no value".
|
||||||
|
*
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function split($input, $delimiter, $limit = null)
|
||||||
|
{
|
||||||
|
if (!is_string($input) || !is_string($delimiter) || $delimiter === '') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($limit) || $limit === 0) {
|
||||||
|
return explode($delimiter, $input);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_int($limit) || $limit < 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return explode($delimiter, $input, $limit);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Functional if-then-else. Returns `$then` when `$condition` is truthy,
|
||||||
|
* otherwise `$else`. Arguments are resolved eagerly by the caller, which
|
||||||
|
* matches the rules engine semantics for function arguments.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function ite($condition, $then, $else)
|
||||||
|
{
|
||||||
|
return filter_var($condition, FILTER_VALIDATE_BOOLEAN) ? $then : $else;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Evaluates whether a value is a valid bucket name for virtual host
|
* Evaluates whether a value is a valid bucket name for virtual host
|
||||||
* style bucket URLs.
|
* style bucket URLs.
|
||||||
|
|
@ -313,24 +369,85 @@ class RulesetStandardLibrary
|
||||||
|
|
||||||
public function callFunction($funcCondition, &$inputParameters)
|
public function callFunction($funcCondition, &$inputParameters)
|
||||||
{
|
{
|
||||||
$funcArgs = [];
|
$argv = $funcCondition['argv'];
|
||||||
|
$assign = $funcCondition['assign'] ?? null;
|
||||||
|
$fn = $funcCondition['fn'];
|
||||||
|
switch ($fn) {
|
||||||
|
case 'aws.parseArn':
|
||||||
|
$result = $this->parseArn(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters)
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
forEach($funcCondition['argv'] as $arg) {
|
case 'getAttr':
|
||||||
|
$result = $this->getAttr(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters),
|
||||||
|
$argv[1]
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'stringEquals':
|
||||||
|
$result = $this->stringEquals(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters),
|
||||||
|
$this->resolveValue($argv[1], $inputParameters)
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'booleanEquals':
|
||||||
|
$result = $this->booleanEquals(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters),
|
||||||
|
$this->resolveValue($argv[1], $inputParameters)
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'isSet':
|
||||||
|
$arg = $argv[0];
|
||||||
|
$result = isset($arg['ref'])
|
||||||
|
? isset($inputParameters[$arg['ref']])
|
||||||
|
: $this->is_set($this->resolveValue($arg, $inputParameters));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'not':
|
||||||
|
$result = $this->not(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters)
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'substring':
|
||||||
|
$result = $this->substring(
|
||||||
|
$this->resolveValue($argv[0], $inputParameters),
|
||||||
|
$this->resolveValue($argv[1], $inputParameters),
|
||||||
|
$this->resolveValue($argv[2], $inputParameters),
|
||||||
|
isset($argv[3])
|
||||||
|
? $this->resolveValue($argv[3], $inputParameters)
|
||||||
|
: false
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$funcArgs = [];
|
||||||
|
foreach ($argv as $arg) {
|
||||||
$funcArgs[] = $this->resolveValue($arg, $inputParameters);
|
$funcArgs[] = $this->resolveValue($arg, $inputParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
$funcName = str_replace('aws.', '', $funcCondition['fn']);
|
$funcName = str_replace('aws.', '', $fn);
|
||||||
if ($funcName === 'isSet') {
|
if ($funcName === 'isSet') {
|
||||||
$funcName = 'is_set';
|
$funcName = 'is_set';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!method_exists($this, $funcName)) {
|
||||||
|
throw new UnresolvedEndpointException(
|
||||||
|
"Unknown endpoint function `{$fn}`."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$result = call_user_func_array(
|
$result = call_user_func_array(
|
||||||
[RulesetStandardLibrary::class, $funcName],
|
[$this, $funcName],
|
||||||
$funcArgs
|
$funcArgs
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($funcCondition['assign'])) {
|
if ($assign !== null) {
|
||||||
$assign = $funcCondition['assign'];
|
|
||||||
if (isset($inputParameters[$assign])) {
|
if (isset($inputParameters[$assign])) {
|
||||||
throw new UnresolvedEndpointException(
|
throw new UnresolvedEndpointException(
|
||||||
"Assignment `{$assign}` already exists in input parameters" .
|
"Assignment `{$assign}` already exists in input parameters" .
|
||||||
|
|
@ -346,13 +463,20 @@ class RulesetStandardLibrary
|
||||||
{
|
{
|
||||||
//Given a value, check if it's a function, reference or template.
|
//Given a value, check if it's a function, reference or template.
|
||||||
//returns resolved value
|
//returns resolved value
|
||||||
if ($this->isFunc($value)) {
|
if (is_array($value)) {
|
||||||
|
if (isset($value['fn'])) {
|
||||||
return $this->callFunction($value, $inputParameters);
|
return $this->callFunction($value, $inputParameters);
|
||||||
} elseif ($this->isRef($value)) {
|
}
|
||||||
return isset($inputParameters[$value['ref']]) ? $inputParameters[$value['ref']] : null;
|
if (isset($value['ref'])) {
|
||||||
} elseif ($this->isTemplate($value)) {
|
return $inputParameters[$value['ref']] ?? null;
|
||||||
|
}
|
||||||
|
} elseif (is_string($value)
|
||||||
|
&& str_contains($value, '{')
|
||||||
|
&& $this->isTemplate($value)
|
||||||
|
) {
|
||||||
return $this->resolveTemplateString($value, $inputParameters);
|
return $this->resolveTemplateString($value, $inputParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -368,7 +492,9 @@ class RulesetStandardLibrary
|
||||||
|
|
||||||
public function isTemplate($arg)
|
public function isTemplate($arg)
|
||||||
{
|
{
|
||||||
return is_string($arg) && !empty(preg_match(self::TEMPLATE_SEARCH_RE, $arg));
|
return is_string($arg)
|
||||||
|
&& str_contains($arg, '{')
|
||||||
|
&& preg_match(self::TEMPLATE_SEARCH_RE, $arg) === 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resolveTemplateString($value, $inputParameters)
|
public function resolveTemplateString($value, $inputParameters)
|
||||||
|
|
@ -376,14 +502,14 @@ class RulesetStandardLibrary
|
||||||
return preg_replace_callback(
|
return preg_replace_callback(
|
||||||
self::TEMPLATE_PARSE_RE,
|
self::TEMPLATE_PARSE_RE,
|
||||||
function ($match) use ($inputParameters) {
|
function ($match) use ($inputParameters) {
|
||||||
if (preg_match(self::TEMPLATE_ESCAPE_RE, $match[0])) {
|
if (str_starts_with($match[0], '{{')) {
|
||||||
return $match[1];
|
return '{' . $match[1] . '}';
|
||||||
}
|
}
|
||||||
|
|
||||||
$notFoundMessage = 'Resolved value was null. Please check rules and ' .
|
$notFoundMessage = 'Resolved value was null. Please check rules and ' .
|
||||||
'input parameters and try again.';
|
'input parameters and try again.';
|
||||||
|
|
||||||
$parts = explode("#", $match[1]);
|
$parts = explode("#", $match[2]);
|
||||||
if (count($parts) > 1) {
|
if (count($parts) > 1) {
|
||||||
$resolvedValue = $inputParameters;
|
$resolvedValue = $inputParameters;
|
||||||
foreach($parts as $part) {
|
foreach($parts as $part) {
|
||||||
|
|
|
||||||
16
vendor/aws/aws-sdk-php/src/Evs/EvsClient.php
vendored
16
vendor/aws/aws-sdk-php/src/Evs/EvsClient.php
vendored
|
|
@ -7,20 +7,32 @@ use Aws\AwsClient;
|
||||||
* This client is used to interact with the **Amazon Elastic VMware Service** service.
|
* This client is used to interact with the **Amazon Elastic VMware Service** service.
|
||||||
* @method \Aws\Result associateEipToVlan(array $args = [])
|
* @method \Aws\Result associateEipToVlan(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise associateEipToVlanAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise associateEipToVlanAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createEntitlement(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createEntitlementAsync(array $args = [])
|
||||||
* @method \Aws\Result createEnvironment(array $args = [])
|
* @method \Aws\Result createEnvironment(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createEnvironmentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createEnvironmentConnectorAsync(array $args = [])
|
||||||
* @method \Aws\Result createEnvironmentHost(array $args = [])
|
* @method \Aws\Result createEnvironmentHost(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createEnvironmentHostAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createEnvironmentHostAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteEntitlement(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteEntitlementAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteEnvironment(array $args = [])
|
* @method \Aws\Result deleteEnvironment(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteEnvironmentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentConnectorAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteEnvironmentHost(array $args = [])
|
* @method \Aws\Result deleteEnvironmentHost(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentHostAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentHostAsync(array $args = [])
|
||||||
* @method \Aws\Result disassociateEipFromVlan(array $args = [])
|
* @method \Aws\Result disassociateEipFromVlan(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise disassociateEipFromVlanAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise disassociateEipFromVlanAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDepotUrl(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDepotUrlAsync(array $args = [])
|
||||||
* @method \Aws\Result getEnvironment(array $args = [])
|
* @method \Aws\Result getEnvironment(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getEnvironmentAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getEnvironmentAsync(array $args = [])
|
||||||
* @method \Aws\Result getVersions(array $args = [])
|
* @method \Aws\Result getVersions(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getVersionsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getVersionsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listEnvironmentConnectors(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listEnvironmentConnectorsAsync(array $args = [])
|
||||||
* @method \Aws\Result listEnvironmentHosts(array $args = [])
|
* @method \Aws\Result listEnvironmentHosts(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listEnvironmentHostsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listEnvironmentHostsAsync(array $args = [])
|
||||||
* @method \Aws\Result listEnvironmentVlans(array $args = [])
|
* @method \Aws\Result listEnvironmentVlans(array $args = [])
|
||||||
|
|
@ -29,9 +41,13 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise listEnvironmentsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listEnvironmentsAsync(array $args = [])
|
||||||
* @method \Aws\Result listTagsForResource(array $args = [])
|
* @method \Aws\Result listTagsForResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listVmEntitlements(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listVmEntitlementsAsync(array $args = [])
|
||||||
* @method \Aws\Result tagResource(array $args = [])
|
* @method \Aws\Result tagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateEnvironmentConnector(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateEnvironmentConnectorAsync(array $args = [])
|
||||||
*/
|
*/
|
||||||
class EvsClient extends AwsClient {}
|
class EvsClient extends AwsClient {}
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise describeContainerFleetAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeContainerFleetAsync(array $args = [])
|
||||||
* @method \Aws\Result describeContainerGroupDefinition(array $args = [])
|
* @method \Aws\Result describeContainerGroupDefinition(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeContainerGroupDefinitionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeContainerGroupDefinitionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeContainerGroupPortMappings(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeContainerGroupPortMappingsAsync(array $args = [])
|
||||||
* @method \Aws\Result describeEC2InstanceLimits(array $args = [])
|
* @method \Aws\Result describeEC2InstanceLimits(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeEC2InstanceLimitsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeEC2InstanceLimitsAsync(array $args = [])
|
||||||
* @method \Aws\Result describeFleetAttributes(array $args = [])
|
* @method \Aws\Result describeFleetAttributes(array $args = [])
|
||||||
|
|
@ -150,6 +152,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getGameSessionLogUrlAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getGameSessionLogUrlAsync(array $args = [])
|
||||||
* @method \Aws\Result getInstanceAccess(array $args = [])
|
* @method \Aws\Result getInstanceAccess(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getInstanceAccessAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getInstanceAccessAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getPlayerConnectionDetails(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getPlayerConnectionDetailsAsync(array $args = [])
|
||||||
* @method \Aws\Result listAliases(array $args = [])
|
* @method \Aws\Result listAliases(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = [])
|
||||||
* @method \Aws\Result listBuilds(array $args = [])
|
* @method \Aws\Result listBuilds(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -121,8 +121,8 @@ class GlacierClient extends AwsClient
|
||||||
*/
|
*/
|
||||||
private function getChecksumsMiddleware()
|
private function getChecksumsMiddleware()
|
||||||
{
|
{
|
||||||
return function (callable $handler) {
|
return static function (callable $handler) {
|
||||||
return function (
|
return static function (
|
||||||
CommandInterface $command,
|
CommandInterface $command,
|
||||||
?RequestInterface $request = null
|
?RequestInterface $request = null
|
||||||
) use ($handler) {
|
) use ($handler) {
|
||||||
|
|
@ -192,14 +192,15 @@ class GlacierClient extends AwsClient
|
||||||
*/
|
*/
|
||||||
private function getApiVersionMiddleware()
|
private function getApiVersionMiddleware()
|
||||||
{
|
{
|
||||||
return function (callable $handler) {
|
$apiVersion = $this->getApi()->getMetadata('apiVersion');
|
||||||
return function (
|
return static function (callable $handler) use ($apiVersion) {
|
||||||
|
return static function (
|
||||||
CommandInterface $command,
|
CommandInterface $command,
|
||||||
?RequestInterface $request = null
|
?RequestInterface $request = null
|
||||||
) use ($handler) {
|
) use ($handler, $apiVersion) {
|
||||||
return $handler($command, $request->withHeader(
|
return $handler($command, $request->withHeader(
|
||||||
'x-amz-glacier-version',
|
'x-amz-glacier-version',
|
||||||
$this->getApi()->getMetadata('apiVersion')
|
$apiVersion
|
||||||
));
|
));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteColumnStatisticsTaskSettingsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteColumnStatisticsTaskSettingsAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteConnection(array $args = [])
|
* @method \Aws\Result deleteConnection(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteConnectionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteConnectionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteConnectionType(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteConnectionTypeAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCrawler(array $args = [])
|
* @method \Aws\Result deleteCrawler(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteCrawlerAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteCrawlerAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteCustomEntityType(array $args = [])
|
* @method \Aws\Result deleteCustomEntityType(array $args = [])
|
||||||
|
|
@ -221,6 +223,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getCrawlersAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getCrawlersAsync(array $args = [])
|
||||||
* @method \Aws\Result getCustomEntityType(array $args = [])
|
* @method \Aws\Result getCustomEntityType(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getCustomEntityTypeAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getCustomEntityTypeAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getDashboardUrl(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getDashboardUrlAsync(array $args = [])
|
||||||
* @method \Aws\Result getDataCatalogEncryptionSettings(array $args = [])
|
* @method \Aws\Result getDataCatalogEncryptionSettings(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getDataCatalogEncryptionSettingsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getDataCatalogEncryptionSettingsAsync(array $args = [])
|
||||||
* @method \Aws\Result getDataQualityModel(array $args = [])
|
* @method \Aws\Result getDataQualityModel(array $args = [])
|
||||||
|
|
@ -303,6 +307,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getSecurityConfigurationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getSecurityConfigurationsAsync(array $args = [])
|
||||||
* @method \Aws\Result getSession(array $args = [])
|
* @method \Aws\Result getSession(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getSessionAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getSessionEndpoint(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getSessionEndpointAsync(array $args = [])
|
||||||
* @method \Aws\Result getStatement(array $args = [])
|
* @method \Aws\Result getStatement(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getStatementAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getStatementAsync(array $args = [])
|
||||||
* @method \Aws\Result getTable(array $args = [])
|
* @method \Aws\Result getTable(array $args = [])
|
||||||
|
|
@ -411,6 +417,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise putWorkflowRunPropertiesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise putWorkflowRunPropertiesAsync(array $args = [])
|
||||||
* @method \Aws\Result querySchemaVersionMetadata(array $args = [])
|
* @method \Aws\Result querySchemaVersionMetadata(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise querySchemaVersionMetadataAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise querySchemaVersionMetadataAsync(array $args = [])
|
||||||
|
* @method \Aws\Result registerConnectionType(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise registerConnectionTypeAsync(array $args = [])
|
||||||
* @method \Aws\Result registerSchemaVersion(array $args = [])
|
* @method \Aws\Result registerSchemaVersion(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise registerSchemaVersionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise registerSchemaVersionAsync(array $args = [])
|
||||||
* @method \Aws\Result removeSchemaVersionMetadata(array $args = [])
|
* @method \Aws\Result removeSchemaVersionMetadata(array $args = [])
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteMissionProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteMissionProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result describeContact(array $args = [])
|
* @method \Aws\Result describeContact(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeContactAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeContactAsync(array $args = [])
|
||||||
|
* @method \Aws\Result describeContactVersion(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise describeContactVersionAsync(array $args = [])
|
||||||
* @method \Aws\Result describeEphemeris(array $args = [])
|
* @method \Aws\Result describeEphemeris(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise describeEphemerisAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise describeEphemerisAsync(array $args = [])
|
||||||
* @method \Aws\Result getAgentConfiguration(array $args = [])
|
* @method \Aws\Result getAgentConfiguration(array $args = [])
|
||||||
|
|
@ -43,14 +45,20 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getMissionProfileAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getMissionProfileAsync(array $args = [])
|
||||||
* @method \Aws\Result getSatellite(array $args = [])
|
* @method \Aws\Result getSatellite(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getSatelliteAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getSatelliteAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAntennas(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAntennasAsync(array $args = [])
|
||||||
* @method \Aws\Result listConfigs(array $args = [])
|
* @method \Aws\Result listConfigs(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listConfigsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listConfigsAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listContactVersions(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listContactVersionsAsync(array $args = [])
|
||||||
* @method \Aws\Result listContacts(array $args = [])
|
* @method \Aws\Result listContacts(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listContactsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listContactsAsync(array $args = [])
|
||||||
* @method \Aws\Result listDataflowEndpointGroups(array $args = [])
|
* @method \Aws\Result listDataflowEndpointGroups(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listDataflowEndpointGroupsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listDataflowEndpointGroupsAsync(array $args = [])
|
||||||
* @method \Aws\Result listEphemerides(array $args = [])
|
* @method \Aws\Result listEphemerides(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listEphemeridesAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listEphemeridesAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listGroundStationReservations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listGroundStationReservationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listGroundStations(array $args = [])
|
* @method \Aws\Result listGroundStations(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listGroundStationsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listGroundStationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listMissionProfiles(array $args = [])
|
* @method \Aws\Result listMissionProfiles(array $args = [])
|
||||||
|
|
@ -71,6 +79,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise updateAgentStatusAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateAgentStatusAsync(array $args = [])
|
||||||
* @method \Aws\Result updateConfig(array $args = [])
|
* @method \Aws\Result updateConfig(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateConfigAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateConfigAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateContact(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateContactAsync(array $args = [])
|
||||||
* @method \Aws\Result updateEphemeris(array $args = [])
|
* @method \Aws\Result updateEphemeris(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateEphemerisAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateEphemerisAsync(array $args = [])
|
||||||
* @method \Aws\Result updateMissionProfile(array $args = [])
|
* @method \Aws\Result updateMissionProfile(array $args = [])
|
||||||
|
|
|
||||||
12
vendor/aws/aws-sdk-php/src/IVS/IVSClient.php
vendored
12
vendor/aws/aws-sdk-php/src/IVS/IVSClient.php
vendored
|
|
@ -11,6 +11,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise batchGetStreamKeyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchGetStreamKeyAsync(array $args = [])
|
||||||
* @method \Aws\Result batchStartViewerSessionRevocation(array $args = [])
|
* @method \Aws\Result batchStartViewerSessionRevocation(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise batchStartViewerSessionRevocationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise batchStartViewerSessionRevocationAsync(array $args = [])
|
||||||
|
* @method \Aws\Result createAdConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise createAdConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result createChannel(array $args = [])
|
* @method \Aws\Result createChannel(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createChannelAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createChannelAsync(array $args = [])
|
||||||
* @method \Aws\Result createPlaybackRestrictionPolicy(array $args = [])
|
* @method \Aws\Result createPlaybackRestrictionPolicy(array $args = [])
|
||||||
|
|
@ -19,6 +21,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise createRecordingConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createRecordingConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result createStreamKey(array $args = [])
|
* @method \Aws\Result createStreamKey(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise createStreamKeyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise createStreamKeyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result deleteAdConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise deleteAdConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteChannel(array $args = [])
|
* @method \Aws\Result deleteChannel(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteChannelAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteChannelAsync(array $args = [])
|
||||||
* @method \Aws\Result deletePlaybackKeyPair(array $args = [])
|
* @method \Aws\Result deletePlaybackKeyPair(array $args = [])
|
||||||
|
|
@ -29,6 +33,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteRecordingConfigurationAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteRecordingConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result deleteStreamKey(array $args = [])
|
* @method \Aws\Result deleteStreamKey(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise deleteStreamKeyAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise deleteStreamKeyAsync(array $args = [])
|
||||||
|
* @method \Aws\Result getAdConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise getAdConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result getChannel(array $args = [])
|
* @method \Aws\Result getChannel(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise getChannelAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getChannelAsync(array $args = [])
|
||||||
* @method \Aws\Result getPlaybackKeyPair(array $args = [])
|
* @method \Aws\Result getPlaybackKeyPair(array $args = [])
|
||||||
|
|
@ -45,6 +51,10 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise getStreamSessionAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise getStreamSessionAsync(array $args = [])
|
||||||
* @method \Aws\Result importPlaybackKeyPair(array $args = [])
|
* @method \Aws\Result importPlaybackKeyPair(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise importPlaybackKeyPairAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise importPlaybackKeyPairAsync(array $args = [])
|
||||||
|
* @method \Aws\Result insertAdBreak(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise insertAdBreakAsync(array $args = [])
|
||||||
|
* @method \Aws\Result listAdConfigurations(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise listAdConfigurationsAsync(array $args = [])
|
||||||
* @method \Aws\Result listChannels(array $args = [])
|
* @method \Aws\Result listChannels(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise listChannelsAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise listChannelsAsync(array $args = [])
|
||||||
* @method \Aws\Result listPlaybackKeyPairs(array $args = [])
|
* @method \Aws\Result listPlaybackKeyPairs(array $args = [])
|
||||||
|
|
@ -71,6 +81,8 @@ use Aws\AwsClient;
|
||||||
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
|
||||||
* @method \Aws\Result untagResource(array $args = [])
|
* @method \Aws\Result untagResource(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
|
||||||
|
* @method \Aws\Result updateAdConfiguration(array $args = [])
|
||||||
|
* @method \GuzzleHttp\Promise\Promise updateAdConfigurationAsync(array $args = [])
|
||||||
* @method \Aws\Result updateChannel(array $args = [])
|
* @method \Aws\Result updateChannel(array $args = [])
|
||||||
* @method \GuzzleHttp\Promise\Promise updateChannelAsync(array $args = [])
|
* @method \GuzzleHttp\Promise\Promise updateChannelAsync(array $args = [])
|
||||||
* @method \Aws\Result updatePlaybackRestrictionPolicy(array $args = [])
|
* @method \Aws\Result updatePlaybackRestrictionPolicy(array $args = [])
|
||||||
|
|
|
||||||
9
vendor/aws/aws-sdk-php/src/Interconnect/Exception/InterconnectException.php
vendored
Normal file
9
vendor/aws/aws-sdk-php/src/Interconnect/Exception/InterconnectException.php
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
namespace Aws\Interconnect\Exception;
|
||||||
|
|
||||||
|
use Aws\Exception\AwsException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an error interacting with the **Interconnect** service.
|
||||||
|
*/
|
||||||
|
class InterconnectException extends AwsException {}
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue